1
我在我的Access数据库中的三个表总和乘以两个不同表中的值,然后在DataGridView的列显示
Part (tbl name)
PartNo
UnitPrice
Order(tbl name)
OrderNo
OrderLine (tbl name)
OrderNo
PartNo
Quantity
基本上我要总结所有OrderLines(由单价数量),其中OrderLine.PartNo =部件.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();
}