開發工具與關鍵技術:VS2015,ASP.NET MVC
撰寫時間:2019年 7 月 17 日
控制器用string類型接收視圖傳來的參數,先把資料分割并存入string數組,

接着用foreach來批量新增一對多的資料
先把strgoodsId轉換為int類型
接着新增第一張表
接着嵌套for循環用來儲存另一張表
在foreach外面定義變量a用來作為for循環的循環條件
foreach每循環一次a++
以此,for循環就可以做到循環一次隻儲存一次
完整代碼:
string[] strgoodsId = GoodsID.Split(';');//分割商品ID
string[] GoodsSLs = GoodsSL.Split(';');//分割商品數量
string[] GoodsDiscounts = GoodsDiscount.Split(';');//分割折扣
string[] GoodsDiscountMoneys = GoodsDiscountMoney.Split(';');//分割商品折後單價
string[] GoodsMoneys = GoodsMoney.Split(';');//分割金額
string[] GoodsRemarks = GoodsRemark.Split(';');//分割備注
int a = 0;//for循環用的次數
foreach (var goodsID in strgoodsId)//周遊循環商品ID
{
int goodsId = Convert.ToInt32(goodsID);
rSaleGoodsMiddle.GoodsID = goodsId;
rSaleGoodsMiddle.SaleOrderID = bSaleOrder.SaleOrderID;
myModel.R_SaleGoodsMiddle.Add(rSaleGoodsMiddle);
for (int i = a; i <= a; i++)
{
bSaleOrderDetail.SaleOrderID = bSaleOrder.SaleOrderID; //銷售訂單ID
bSaleOrderDetail.GoodsID = goodsId;//商品ID
bSaleOrderDetail.SaleOrderDetailQuantity = GoodsSLs[i].ToString();//商品數量
bSaleOrderDetail.SaleOrderDetailAbatement = GoodsDiscounts[i].ToString();//折扣
bSaleOrderDetail.SaleOrderDetailAbatementPrice = GoodsDiscountMoneys[i].ToString();//折後單價
bSaleOrderDetail.SaleOrderDetailMoney = GoodsMoneys[i].ToString();//金額
bSaleOrderDetail.SaleOrderDetailRemark = GoodsRemarks[i].ToString();//備注
myModel.B_SaleOrderDetail.Add(bSaleOrderDetail);
}
a++;//for循環用的次數
myModel.SaveChanges();
}