如何使用vb.net中的select查询在数据库中的所有表中搜索数据?

时间:2015-06-15 01:45:27

标签: mysql vb.net

如何使用vb.net中的select query搜索数据库中所有表中的数据?这是我的代码:

Try
    mysqlconn.Open()

    Dim query As String
    query = "select * from  where (Item_Description LIKE '%" & TextBox11.Text & "%' or Vendor LIKE '%" & TextBox11.Text & "%' OR S_N LIKE '%" & TextBox11.Text & "%' or Tag_num LIKE '%" & TextBox11.Text & "%')"
    command = New MySqlCommand(query, mysqlconn)
    sda.SelectCommand = command
    sda.Fill(dbdataset)
    bsource.DataSource = dbdataset
    DataGridView1.DataSource = bsource
    sda.Update(dbdataset)
    mysqlconn.Close()

Catch ex As Exception

Finally
    mysqlconn.Dispose()
End Try

1 个答案:

答案 0 :(得分:0)

抱歉Ana我认为你不能在from子句中省略表名。如果你真的想要搜索30个不同的表(它们都有相同的列......?),那么你可能需要分别迭代它们中的每一个并自己加入信息

您可以为每个(表名)循环执行操作以从每个表中获取数据。适配器将所有新信息添加到数据表中,以便最后只有1个数据表,其中包含所有30个表的结果。

Dim query As String
Dim dt as new Datatable
For each tablename in (tablenamelist) 
    query = "select * from " & tablename & " where (Item_Description LIKE '%" & TextBox11.Text & "%' or Vendor LIKE '%" & TextBox11.Text & "%' OR S_N LIKE '%" & TextBox11.Text & "%' or Tag_num LIKE '%" & TextBox11.Text & "%')"
    command = New MySqlCommand(query, mysqlconn)
    sda.SelectCommand = command
    sda.Fill(dt)
next

其中tablenamelist是所有数据表名称的列表。这将完成工作,但这里有许多改进。