我是C#和SQL的新手。
如屏幕截图所示,我试图从多个表中过滤数据并将其插入DataDridView。 我有3张桌子:
订单。
ORDER_DETAILS
产品。
我想过滤order_Id 2(Sam),我想根据他的order_ID显示他在DataGridView中订购的内容。我想显示他的数据如下:
根据我的代码,我知道如何显示“Order_details”表,但我不知道如何将Sam的订单详细信息显示到DataGridView中。我想要从3个表中提取Sam的数据并在DataGridView中显示它。 请帮我解决这个问题。谢谢
private void button1_Click(object sender, EventArgs e)
{ // display Order_details table into DataGridView
SqlConnection con = new SqlConnection("Data Source=PCN11-TOSH;Initial Catalog=mydb;Integrated Security=True");
con.Open();
SqlCommand cm = new SqlCommand("SELECT *FROM Order_details");
cm.Connection = con;
SqlDataAdapter da = new SqlDataAdapter(cm);
DataTable dt = new DataTable();
da.Fill(dt);
con.Close();
dataGridView1.DataSource = dt;
}
答案 0 :(得分:1)
您需要使用join
然后select data
database
和bind
来使用它。
select Distinct o.customer_name,od.qty,p.product_name,p.price from orders o
inner join order_details od on o.orderid=od.orderid
inner join products p on p.productid=od.product_id
where o.order_id=1
答案 1 :(得分:1)
哦,我并不羞于给出作业答案。这是一个SQL问题,而不是C#问题。如果你想用代码来解决这个问题,我实现了一个ORM并使用LINQ将数据整形到网格中。由于您的原始问题仅涉及SqlAdapter,因此答案在于查询。
private void button1_Click(object sender, EventArgs e)
{ // display Order_details table into DataGridView
SqlConnection con = new SqlConnection("Data Source=PCN11-TOSH;Initial Catalog=mydb;Integrated Security=True");
con.Open();
SqlCommand cm = new SqlCommand(@"SELECT o.customer_name, p.product_name, d.Qty, p.price FROM Orders
JOIN order_details d ON d.order_ID = o.order_ID
JOIN products p ON p.product_ID = d.product_ID");
cm.Connection = con;
SqlDataAdapter da = new SqlDataAdapter(cm);
DataTable dt = new DataTable();
da.Fill(dt);
con.Close();
dataGridView1.DataSource = dt;