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           

私の問題は、データに複数の行がある場合、データを文字列に保存しても問題ありませんが、テーブル内のデータに行が 1 つしかない場合、データを読み取ることができないことです。私はこれを試します

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 に答える