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: 指定された名前の列が見つかりませんでした

クエリにこの列が表示されません。とのみquantityを選択していrateます。

于 2013-10-31T08:23:25.810 に答える