2013-03-04 1 views
0

У меня проблема с чтением данных из таблицы. Это образец моего кодированияне удалось прочитать данные из более чем 1 строки

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   

Моя проблема, если данные имеют более одной строки, он не имеет никаких проблем с сохранением данных в строку, но когда мои данные в таблице есть только один rowm, это неспособный прочитать данные. я попробовать это

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  

, но он все еще не может прочитать данные из таблицы

ответ

1

Это происходит потому, что вы всегда не хватает в первом ряду.

Смотрите здесь

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

Вы всегда пропуская первую строку.

Начальное чтение не требуется. Вы можете начать прямо с

While dr.Read() 

Управление будет проходить внутри цикла, только если бы были строки.