Sql 在Visual basic中使用dataset查询2个表
我需要有关visual basic项目的帮助。我有一个Store.accdb数据库 其中有2张桌子、客户和订单。我希望能够在文本框中输入客户的姓名(或姓名的一部分),然后在单击搜索按钮时在DataGridView中显示姓名。然后在一个单独的DataGridView上,当用户单击display按钮时,我想从我的第一个DataGridView中显示所选客户的订单 编辑:这是两个表的外观 客户表=custNum、custName、custAddress、custPhone 订单表=订单编号、订单项、客户编号、价格、数量Sql 在Visual basic中使用dataset查询2个表,sql,vb.net,dataset,Sql,Vb.net,Dataset,我需要有关visual basic项目的帮助。我有一个Store.accdb数据库 其中有2张桌子、客户和订单。我希望能够在文本框中输入客户的姓名(或姓名的一部分),然后在单击搜索按钮时在DataGridView中显示姓名。然后在一个单独的DataGridView上,当用户单击display按钮时,我想从我的第一个DataGridView中显示所选客户的订单 编辑:这是两个表的外观 客户表=custNum、custName、custAddress、custPhone 订单表=订单编号、订单项、客
con.ConnectionString = dbProvider & dbSource
Try
con.Open()
sql = "SELECT custName FROM tblCustomers WHERE custName LIKE '%" & tbSearch.Text.ToUpper & "%'"
ds = New DataSet
da = New OleDb.OleDbDataAdapter(sql, con)
da.Fill(ds, "CustomerDataset")
gridCustomers.DataSource = ds
gridCustomers.DataMember = "CustomerDataSet"
con.Close()
Catch ex As Exception
MessageBox.Show("Could not establish a connection", "Database Error")
End Try
这段代码运行良好,它填充了我的客户datagridview。每当我只输入客户名称的一部分时,就会得到多行。如果我在文本框中输入'sm',它将显示名称中带有'sm'的所有客户。单击“显示”按钮时,如何在第二个datagridview中显示所选客户(来自第一个datagridview)的订单?我希望我说的有道理,英语不是我的第一语言,所以请耐心听我说
谢谢 你必须参加很多比赛。 从
datagridview
中选择客户时,必须使用datagridview的selectedIndexChange
事件(假设您有按钮在datagridview
中进行选择)
您必须在
datagridview的selectedIndexChange
事件中使用相同的过程
con.ConnectionString = dbProvider & dbSource
Try
con.Open()
sql = "SELECT * FROM tblorders WHERE custName ='" & gridSelectedValue & "'"
//Assuming you have custName column in order table
ds = New DataSet
da = New OleDb.OleDbDataAdapter(sql, con)
da.Fill(ds, "OrderDataset")
gridCustomers.DataSource = ds
gridCustomers.DataMember = "OrderDataset"
con.Close()
Catch ex As Exception
MessageBox.Show(ex.message)
End Try
编辑如果顺序中没有custName,那么在DataGridView的查询中应该有CustNum 步骤1-更改有效的查询。不要只选择客户名称,而是选择客户id或该表的主键 第2步-显示数据时,添加带有查询字符串的锚定标记,该查询字符串链接到显示订单的新页面。html应该如下所示:
<a href="orders.aspx?customer_id=1">Fred</a>
在orders.aspx中,调用一个查询,返回customer_id=1的所有订单
哦,是的,顺便说一下,在将所有表单和url变量发送到数据库之前,请将它们转换为参数。实际上,您只需要在两个表之间定义一个“外键”,您可以通过本文了解如何: 阅读“添加数据表关系”部分
如果您使用Access创建了db,则必须使用相同的东西。如果您使用的是SQL,情况也是一样。我的订单表中没有custName。这是两个表的外观:Customers表=custNum、custName、custAddress、custPhone订单表=orderNum、orderItem、custNum、price、qty