Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VB.NET NullReferenceException,“;对象引用未设置为对象的实例;当它看起来是_Vb.net - Fatal编程技术网

VB.NET NullReferenceException,“;对象引用未设置为对象的实例;当它看起来是

VB.NET NullReferenceException,“;对象引用未设置为对象的实例;当它看起来是,vb.net,Vb.net,正如标题所示,我得到一个NullReferenceException,它表示“对象引用未设置为对象的实例”。这是我正在开发的一个遗留WinForms应用程序,请记住代码的结构不是我要做的。我试图在对记录集进行更改之前和之后对其进行比较。我在尝试复制旧记录集时遇到了问题 下面是我用来填充模块中旧数据副本的代码: Public Function Prevdata(ByRef table As ADODB.Recordset) As ADODB.Recordset Dim i As Integ

正如标题所示,我得到一个NullReferenceException,它表示“对象引用未设置为对象的实例”。这是我正在开发的一个遗留WinForms应用程序,请记住代码的结构不是我要做的。我试图在对记录集进行更改之前和之后对其进行比较。我在尝试复制旧记录集时遇到了问题

下面是我用来填充模块中旧数据副本的代码:

Public Function Prevdata(ByRef table As ADODB.Recordset) As ADODB.Recordset
    Dim i As Integer
    Dim pData As New ADODB.Recordset

    table.MoveFirst()

    If Not table.BOF And table.EOF Then
        While Not table.EOF
            For i = 0 To table.Fields.Count - 1
                pData.AddNew()
                pData(table.Fields(i)).Value = table.Fields(i).Value
            Next

            pData.Update()
            table.MoveNext()

        End While
    End If
    PrevData = pData
End Function
这是我在其中一个表格中的代码。这些只是文件顶部的其他变量声明。GetData只是简单地创建一个记录集:

Public pData As ADODB.Recordset = GetData(tableName)
Public pDataC As ADODB.Recordset = PrevData(pData)

我在PrevData中引用“表”的任何位置都会得到模块中的错误。非常感谢您的帮助。

pData是一个没有任何字段的记录集。所以pData(table.Fields(i))总是会失败。@HansPassant,但我得到的错误是“table”不是对象引用。错误首先在table.MoveFirst()处触发。因此,您有多个错误,这种情况会发生。看起来您必须调试GetData(),它没有返回任何内容。像这样的字段初始值设定非常危险,在构造函数完成之前运行。@HansPassant我知道GetData是有效的,因为隔离它,我可以打印记录。这就是为什么我感到困惑。我可以访问pData,但pDataC有问题。