2013-05-17 3 views
-1

내가 원하는 것을 표시하고 싶지만 한 행만 표시합니다. 그것을 해결하는 방법은 PLZ? 저는 첫 번째 행 데이터 만 가져옵니다.하지만 두 번째 라운드에서 do를 실행하면 루프를 건너 뛰고 프로세스가 종료됩니다.VB.net에서 MySQL 데이터베이스의 여러 행을 쿼리 할 수 ​​없습니다.

 
    ListView1.Items.Clear() 


     SQLstring = "SELECT * From record WHERE member_code like '" & u1 & "' " 


     SQLConnection.Open() 
     SQLcommand = New MySqlCommand(SQLstring, SQLConnection) 
     SQLdatareader = SQLcommand.ExecuteReader() 

     Do While SQLdatareader.Read() 
      a = (SQLdatareader.Item("book_code").ToString()) 
      b = (SQLdatareader.Item("member_code").ToString()) 
      c = (SQLdatareader.Item("book_status").ToString()) 
      d = (SQLdatareader.Item("Borrow_date").ToString()) 
      f = (SQLdatareader.Item("Due_date").ToString()) 


      SQLdatareader.Close() 
      SQLcommand.Dispose() 
      SQLConnection.Close() 

      SQLstring = "SELECT * From book WHERE book_code like '" & a & "' " 
      SQLConnection.Open() 
      SQLcommand = New MySqlCommand(SQLstring, SQLConnection) 
      SQLdatareader = SQLcommand.ExecuteReader() 
      Do While SQLdatareader.Read() 
       g = (SQLdatareader.Item("book_name").ToString()) 
       h = (SQLdatareader.Item("book_writer").ToString()) 
       i = (SQLdatareader.Item("book_year").ToString()) 
      Loop 




      Dim SQLlist As ListViewItem = ListView1.Items.Add(g) 
      SQLlist.SubItems.Add(h) 
      SQLlist.SubItems.Add(i) 
      SQLlist.SubItems.Add(d) 
      SQLlist.SubItems.Add(f) 
      If dtNow > f Then 
       Dim fine_amount = f.Subtract(dtNow) 
       SQLlist.SubItems.Add(fine_amount) 

      Else 
       SQLlist.SubItems.Add("0") 
      End If 


     Loop 
     SQLdatareader.Close() 
     SQLcommand.Dispose() 
     SQLConnection.Close() 

    End Sub 

답변

0

당신은 아마 그래서, 당신의 LIKE 절 주위 어딘가에 %를 갖고 싶어 : 당신의 U1 변수로 시작하는 member_code 모든 행을 반환

SQLstring = "SELECT * From record WHERE member_code like '" & u1 & "%' " 

. 거기에 %가없는 변수가있는 경우에는 해당 member_code와 정확히 일치하는 행만 반환됩니다.

또한 질문과 관련이 없지만 Google "Bobby Tables"및 "SQL Injection"과 관련 없습니다.

관련 문제