我在从表中读取数据时遇到问题。这是我编码的样本
Dim SqlQry As String = "SELECT Distinct(RechargeAmt) from KioskItem where TelcoID='" & TelcoID & "'"
Dim SqlCmd As New SqlCommand(SqlQry, Conn)
Dim dr As SqlDataReader = SqlCmd.ExecuteReader
dr.Read()
If dr.HasRows Then
While dr.Read()
Dim SqlQry As String = "SELECT Distinct(RechargeAmt) from KioskItem where TelcoID='" & TelcoID & "'"
Dim SqlCmd As New SqlCommand(SqlQry, Conn)
Dim dr As SqlDataReader = SqlCmd.ExecuteReader
dr.Read()
If dr.HasRows Then
While dr.Read()
RechargeAmt = dr(0)
a = a & RechargeAmt & ";"
End While
End If
If a = 0 Then
Return RechargeAmt
Else
Return a
End If
我的问题是,如果数据有多行,将数据保存到字符串中没有问题,但是当表中的数据只有一行时,它无法读取数据。我试试这个
If dr.HasRows Then
RechargeAmt = dr(0)
While dr.Read()
a = a & RechargeAmt & ";"
End While
End If
If a = 0 Then
Return RechargeAmt
Else
Return a
End If
但仍然无法从表中读取数据
答案 0 :(得分:1)
那是因为你总是错过第一行。
见这里
dr.Read() //Gets the first row
If dr.HasRows Then
While dr.Read() //Gets the second row onwards
你总是跳过第一行。
不需要初始读取。你可以直接用
开始 While dr.Read()
仅当存在行时,控制才会进入循环。