2010-07-16 47 views
0

请帮忙,我该如何做一个while循环等效于这个for循环。这样我就可以读取mysql数据库表中的一行,并将其显示在vb.net的组合框中。vb.net中的数据阅读器

我使用此代码,但它绝对不是有用的,如果有3名或更多的项目被列在说:

Dim i As Integer 
     Dim rdr As Odbc.OdbcDataReader 
     rdr = con.readfrom_drug_type_table() 
    For i = 0 To 1 
     If rdr.HasRows = True Then 
      rdr.Read() 

      ComboBox2.Items.Add(rdr("Drug_type")) 
     End If 
    Next i 

我想读的Drug_type行 请帮助所有的数据感谢

回答

2

如果你想只读第一行并非只是使用

If rdr.Read() Then 
    ComboBox2.Items.Add(rdr("Drug_type")) 
End If 

更新

Try 
    myConnection = New SqlConnection("server=localhost;uid=sa;pwd=;database=pubs") 
    'you need to provide password for sql server 
    myConnection.Open() 
    myCommand = New SqlCommand("Select * from discounts", myConnection) 
    dr = myCommand.ExecuteReader 

     While dr.Read() 
      WriteLine(dr(0)) 
      WriteLine(dr(1)) 
      WriteLine(dr(2)) 
      WriteLine(dr(3)) 
      WriteLine(dr(4)) 
      ' writing to console 
     End While 
Catch 
End Try 
dr.Close() 
myConnection.Close() 
+0

我想读从Drug_type行的所有数据现在 – user225269 2010-07-16 08:32:35

+0

检查updaetd答案 – 2010-07-16 09:02:50

+0

谢谢,但不起作用,看来你只能复制和从其他地方粘贴它。正如你可以看到我使用odbc连接到mysql数据库。我不使用mysql connector.net – user225269 2010-07-16 10:17:15

1

@pranay 您不需要嵌套循环。

Try 
    myConnection = New SqlConnection("server=localhost;uid=sa;pwd=;database=pubs") 
    myConnection.Open() 
    myCommand = New SqlCommand("Select * from discounts", myConnection) 
    dr = myCommand.ExecuteReader() 
    While dr.Read() 
     WriteLine(dr(0)) 
     WriteLine(dr(1)) 
     WriteLine(dr(2)) 
     WriteLine(dr(3)) 
     WriteLine(dr(4)) 
    End While 
    dr.Close() 
Finally 
    myConnection.Close() 
End Try