0

我从表中读取数据时遇到问题。这是我的编码示例

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      

但它仍然无法从表中读取数据

4

1 回答 1

1

那是因为你总是错过第一行。

看这里

 dr.Read()               //Gets the first row
    If dr.HasRows Then
        While dr.Read()  //Gets the second row onwards

你总是跳过第一行。

不需要初始读取。你可以直接从

 While dr.Read()

只有当有行时,控制才会进入循环内部。

于 2013-03-04T04:11:06.023 回答