为什么我的变量不能设置为对象的实例?

时间:2013-01-26 13:24:41

标签: vb.net object instance

该计划是假日出租公司的预订系统(以及其他内容)。我正在屏幕上工作,你可以看到属性并修改它们或添加更多(等)

好的,所以在我的其他情况下工作得很好,但是这个它并不想接受......我希望它有点愚蠢。基本上在整个程序的初始加载中,我用相关信息填充数据表,然后在需要时访问它们,在这种情况下我在表单属性中并且想要访问预订(在FrmBookings中制作)以查看何时该物业接下来预订让客人进入。

Dim Intcounter As Integer = 0
Dim NumberBookingRecords As Integer = BookingsNumRecs

Dim PropertyName As String
Dim PropertyFromBookings As String


Do

    PropertyName = DTProperties(Intcounter)("Property Name").ToString
    PropertyFromBookings = (DTBookings(NumberBookingRecords)("Property").ToString)

    If PropertyName = PropertyFromBookings Then

        lblDateOfArrival.Text = (DTBookings(NumberBookingRecords)("Arrival").ToString)
        Intcounter = Intcounter + 1

    Else

        If Not NumberBookingRecords = 0 Then

            NumberBookingRecords = NumberBookingRecords - 1

        Else

        End If

    End If


Loop Until Intcounter >= intNumPropertyRecs

然而,当我到达PropertyFromBookings = (DTBookings(NumberBookingRecords)("Property").ToString)时 它告诉我它无法设置为对象的实例...无论我尝试从DTBookings访问我得到相同的响应。

这是程序开头时的初始加载形式

Dim FSBookings As New FileStream(strFileNameBookings, FileMode.OpenOrCreate, FileAccess.Read)

Application.DoEvents()

If FileLen(strFileNameBookings) > 0 Then
    DTBookings.ReadXmlSchema(strFileNameBookings)
    DTBookings.ReadXml(strFileNameBookings)
    BookingsNumRecs = DTBookings.Rows.Count
    intCurrRec = 1
Else
End If

FSBookings.Close()
blnStopAuto = True
blnStopAuto = False

1 个答案:

答案 0 :(得分:0)

根据您的代码示例,DTBookings()是函数调用。这里有两种可能性。之一:

  1. 该函数的结果是Nothing,当你尝试使用Nothing时,就像那里有一个实际的对象一样(在这种情况下,当试图查找("Property")索引器时)你会得到那个例外,或者......
  2. (“Property”)索引的结果返回Nothing,在这种情况下,当您尝试调用.ToString()方法时,您将获得该异常。