簡體   English   中英

當我在查詢分析器中運行查詢時,它返回一行,但是當我在VB.NET中使用同一查詢時,則不返回任何行

[英]When I run the query in query analyzer, it returns one row but when I use the same query in VB.NET, no rows are returned

這是代碼:

 Function getData(ByVal id As String)
    Dim reader As SqlClient.SqlDataReader
    Dim statement As String
    Dim count As Integer
    Dim temp As Integer

    statement = "SELECT * FROM General WHERE accountid='" + id + "'"
    Conn.Open()
    Comm = New SqlClient.SqlCommand(statement, Conn)
    reader = Comm.ExecuteReader()
    count = reader.FieldCount

    Dim Data(count) As String
    If reader.HasRows Then

        For temp = 0 To count
            Data(temp) = (reader.Item(temp))
        Next temp
    Else
        Console.WriteLine("No rows found.")
    End If

    reader.Close()
    Conn.Close()

    Return Data
End Function

當我運行代碼時, HasRows字段為true,但reader.Item(temp)給出錯誤

沒有數據時,嘗試讀取無效。

您需要一個While reader.Read()循環。 讀取器從行索引-1開始; Read()將前進到第一行(好,取它),然后就可以對其進行處理了。

這就是您的HasRows返回true但無法檢索字段的原因-您尚未位於第一行。

您可能需要執行以下操作:

If reader.HasRows Then
  While reader.Read()
    For temp = 0 To count
        Data(temp) = (reader.Item(temp))
    Next temp
  End While
Else
    Console.WriteLine("No rows found.")
End If

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM