[英]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.