C# 将两个不同表中的相乘值相加,然后显示在DataGridView列中
我的Access数据库中有三个表C# 将两个不同表中的相乘值相加,然后显示在DataGridView列中,c#,ms-access,datagridview,C#,Ms Access,Datagridview,我的Access数据库中有三个表 Part (tbl name) PartNo UnitPrice Order(tbl name) OrderNo OrderLine (tbl name) OrderNo PartNo Quantity 基本上,我希望对OrderLine.PartNo=Part.PartNo和OrderLine.OrderNo=Order.OrderNo的所有订单行求和(按单价计算数量),并将值放入我创建并添加到数据网格视图中的列中,以便在订单表中动态创建小计 DataG
Part (tbl name)
PartNo
UnitPrice
Order(tbl name)
OrderNo
OrderLine (tbl name)
OrderNo
PartNo
Quantity
基本上,我希望对OrderLine.PartNo=Part.PartNo和OrderLine.OrderNo=Order.OrderNo的所有订单行求和(按单价计算数量),并将值放入我创建并添加到数据网格视图中的列中,以便在订单表中动态创建小计
DataGridViewTextBoxColumn subtotalCol = new DataGridViewTextBoxColumn();
subtotalCol.Name = "SubtotalColumn";
subtotalCol.HeaderText = "Subtotal";
subtotalCol.ReadOnly = true;
dataGridViewPrevOrders.Columns.Add(subtotalCol);
到目前为止,这就是我所处的位置,但我认为我没有走上正确的道路
for (int i = 0; i < dataGridViewPrevOrders.RowCount - 1; i++)
{
connection.Open();
string orderNo = dataGridViewPrevOrders.Rows[i].Cells["OrderNo"].Value.ToString();
command.CommandText = "SELECT SUM(OL.Quantity * P.UnitPrice) FROM OrderLine OL INNER JOIN (SELECT * FROM [Part]) P ON OL.[PartNo] = P.[PartNo] WHERE [OrderNo] = @OrderNo";
command.Parameters.Add(new OleDbParameter("@orderNo", orderNo));
OleDbDataReader reader = command.ExecuteReader();
while (reader.Read())
{
dataGridViewPrevOrders.Rows[i].Cells["SubtotalColumn"].Value = reader["Sub"].ToString();
}
connection.Close();
}
for(int i=0;i
首先:请添加具体问题!这会导致例外吗?什么是不受欢迎的行为?请帮助我们帮助你
乍一看,我只能看到您必须将sql命令更正为:
SELECT SUM(P.UnitPrice * OL.Quantity) AS sumOfOrder FROM Part AS P
INNER JOIN OrderLine AS OL ON P.[PartNo] = OL.[PartNo]
WHERE OL.[OrderNo] = @OrderNo;
提示:关于您的代码,在我看来,您必须在某个地方有一个额外的SQL命令来将订单设置为dataGridViewPrevOrders。然后,您需要为每个订单执行一个额外的SQL命令来计算总和。最好使用一个巧妙的SQL SELECT命令查询数量和订单之和,将这两个查询组合在一起,只在一个循环中进行设置。首先:请添加具体问题!这会导致例外吗?什么是不受欢迎的行为?请帮助我们帮助你 乍一看,我只能看到您必须将sql命令更正为:
SELECT SUM(P.UnitPrice * OL.Quantity) AS sumOfOrder FROM Part AS P
INNER JOIN OrderLine AS OL ON P.[PartNo] = OL.[PartNo]
WHERE OL.[OrderNo] = @OrderNo;
提示:关于您的代码,在我看来,您必须在某个地方有一个额外的SQL命令来将订单设置为dataGridViewPrevOrders。然后,您需要为每个订单执行一个额外的SQL命令来计算总和。最好使用一个聪明的SQL SELECT COMMAND查询数量和订单之和,将这两个查询组合在一起,只在一个循环中进行设置