0
foreach (StockItem item in StockList)
{
    Master master = new Master();
    master.VoucherNo = BillNo;
    master.Voucher = "Sales";
    master.StockName = StockList[0].StockName;
    master.Quantity = StockList[0].Quantity;
    master.Unit = StockList[0].Unit;
    master.Price = StockList[0].UnitPrice;
    master.Amount = StockList[0].Amount;
    dbContext.AddToMasters(master);
    dbContext.SaveChanges();
}
Sale sale = new Sale();
sale.InvoiceNo = BillNo;
sale.Date = BillDate;
sale.Party = Customer;
sale.Amount = (decimal)TotalAmount;
dbContext.AddToSales(sale);
dbContext.SaveChanges();

StockList如果有 n 行,则此代码仅添加所有 n 次的第一行。

代码有什么问题?

4

1 回答 1

2

您正在迭代 StockList,但实际上并未使用迭代变量。

在您使用 StockList[0] 的任何地方,您都应该使用 item。

编辑:这是你的循环应该是这样的:

foreach (StockItem item in StockList)
{
    Master master = new Master();
    master.VoucherNo = BillNo;
    master.Voucher = "Sales";
    master.StockName = item.StockName;
    master.Quantity = item.Quantity;
    master.Unit = item.Unit;
    master.Price = item.UnitPrice;
    master.Amount = item.Amount;
    dbContext.AddToMasters(master);
    dbContext.SaveChanges();
}
于 2012-05-09T16:28:53.590 回答