2

我刚刚遇到了我的代码的问题。它引发了一个异常。这就是代码。

conn = oSubPayItemDescription.GetDbConnection()
md = New OleDbCommand("SELECT [sub_pay_item_quantity].[quantity],[sub_pay_item_unit_rate].[rate] FROM " &
    "[sub_pay_item_quantity],[sub_pay_item_unit_rate] WHERE [sub_pay_item_quantity].[sub item]=[sub_pay_item_unit_rate].[sub item] AND " &
    "[sub_pay_item_quantity].[sub item]='" & subItem & "' AND [sub_pay_item_quantity].[bridge type]='" & bridgeType & "' " &
    "AND [sub_pay_item_quantity].[span]='" & span & "'", conn)

data_reader = cmd.ExecuteReader()

If data_reader.HasRows = True Then
    Do While data_reader.Read()
        payItem = CDbl(data_reader.Item("pay item"))
        subpayItem = CDbl(data_reader.Item("sub pay item"))
        subItem = data_reader.Item("sub item")
        unit = data_reader.Item("unit")
        bridgeType = data_reader.Item("bridge type")
        span = (data_reader.Item("span").ToString())
        quantity = CDbl(data_reader.Item("quantity"))
        rate = CDbl(data_reader.Item("rate"))

        RichTextBox1.AppendText(payItem & vbTab & vbTab & " " & " " & subpayItem & vbTab & vbTab & subItem & vbTab & vbTab & " " & _
            unit & vbTab & vbTab & " " & " " & " " & " " & bridgeType & vbTab & vbTab & " " & span & vbTab & _
            "" & vbTab & " " & quantity & vbTab & rate & vbNewLine)
    Loop
Else
    MsgBox("Unit rate does not exist", vbCritical, "Bridge Construction Cost Estimate")
End If

当它到达指示支付项目的 do while 循环时,它会引发异常。

4

1 回答 1

2

DataReader因此,如文档所示,指定的名称不存在:

IndexOutOfRangeException: 未找到具有指定名称的列

我在您的查询中看不到此列。您只选择quantityrate

于 2013-10-31T08:23:25.810 回答