开发工具与关键技术: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();
}