如何在VB.NET中使用不同的DB表填充两个组合框

时间:2014-10-18 14:38:52

标签: mysql vb.net combobox

我试图从两个不同的数据库表填充2 ComboBox es,但我的代码似乎不起作用,我该怎么办?

代码:

Dim st As String = "server=localhost;user id=root;database=db;password=root"
    Dim con As New MySqlConnection(st)
    con.Open()
    Dim se As String = "select * FROM tbl1 as t1, tbl2 as t2 WHERE t1.col=t2.col"
    Dim cmd As New MySqlCommand(se, con)
    Dim dr As MySqlDataReader = cmd.ExecuteReader()
    While dr.Read()

        ComboBox1.Items.Add(dr("col1"))
        ComboBox2.Items.Add(dr("col1"))
    End While
    con.Close()

1 个答案:

答案 0 :(得分:0)

您的代码使用已弃用的旧式连接语法在第一个表和第二个表之间创建JOIN。你从该命令得到一个结果,没有两个表。请查看old style JOINs中使用的语法以及JOIN表的正确方法。

但是,如果您希望使用来自两个不同表的数据设置组合,而不执行两个不同的命令,则可以编写

Dim st = "server=localhost;user id=root;database=db;password=root"
Dim cmdText = "select colFromTbl1 FROM tbl1; SELECT colFromTbl2 from tbl2"
Using con = New MySqlConnection(st)
Using cmd = New MySqlCommand(con, cmdText)
    con.Open()
    Using dr = cmd.ExecuteReader()
      While dr.Read()
         ComboBox1.Items.Add(dr("colFromTbl1"))
      End While
      dr.NextResult()
      While dr.Read()
         ComboBox2.Items.Add(dr("colFromTbl2"))
      End While
    End Using
End Using
End Using