将表格的数据保存到数据库

将表格的数据保存到数据库

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

下面是js代码,先将表格外的数据获取到,然后用getJSon提交到控制器,保存到数据库

var StockId;
        function savebill(Num) {
            var txbSupplyConsultID=$("#txbSupplyConsultID").val();
            var userId=$("#HandlePerson").val();
            var documentsNum=$("#txbBusiNo").val();
            var remark=$("#txbRemark").val();
            var restExpenses=$("#otherfee").val();
            var ClearingAccount=$("#ClearingAccount").val();
            var txbpayamt=$("#txbpayamt").val();
            var SelectWarehouse=$("#SelectWarehouse").val();
            var fileStudentImage=$("#PaperReceipts").val();
            if (restExpenses==""||restExpenses==undefined) {
                restExpenses=0;
            }
            var ste = $("#tabdetail").find(".Operation");
            var lengthCount = ste.length;
            var dataLength=0;
            for (var i = 0; i < lengthCount; i++) {
                var serialNumber=$("#tabdetail").find(".Operation").find(".SerialNumber").eq(i).val();
                if (serialNumber==""||serialNumber==undefined) {
                    continue;
                }
                dataLength++;
            }
            if (dataLength==0) {
                layer.alert("请选择商品",{icon:0,title:"提示"});
                return;
            }
            for (var i = 0; i < dataLength; i++) {
                var referenceStockPrices=$("#tabdetail").find(".Operation").find(".ReferenceStockPrice").eq(i).val();
                if(referenceStockPrices ==""||referenceStockPrices==undefined){
                    layer.alert("单价不能为空",{icon:0,title:"提示"});
                    return;
                }
            }
            if (txbSupplyConsultID>0) {
                if (SelectWarehouse>0) {
                    if (userId>0&&documentsNum!=""&&txbpayamt!="") {
                        $.getJSON("SaveStockSingle?SupplyConsultID="+txbSupplyConsultID+"&UserID="+userId+"&DocumentsNum="+documentsNum+"&Remark="+remark+"&RestExpenses="+restExpenses+"&ClearingAccountID="+ClearingAccount+"&ActuallyPaidMoney="+txbpayamt+"&WarehouseID="+SelectWarehouse+"&fileStudentImage="+fileStudentImage,function (msg) {
                            if(msg > 0 || msg != false){
                                StockId=msg;
                                InsertDetail(StockId);
                            }
                            else {
                                layer.alert("新增失败",{icon:1,title:"提示"});
                            }
                        })
                    }
                    else {
                        layer.alert("请填写完整信息",{icon:0,title:"提示"});
                    }
                }
                else {
                    layer.alert("请选择仓库",{icon:0,title:"提示"});
                }
            }
            else {
                layer.alert("请选择供应商",{icon:0,title:"提示"});
            }
        }

下面是控制器代码,这是在视图里传过来的数据,然后保存到数据库,这时会产生一个新的ID,再将这个新的ID传到视图

public ActionResult SaveStockSingle(int SupplyConsultID, int UserID, string DocumentsNum, string Remark, decimal RestExpenses, int ClearingAccountID, decimal ActuallyPaidMoney, int WarehouseID, HttpPostedFileBase fileStudentImage)
        {
            var stockId = 0;
            try
            {
                if (Remark == "")
                {
                    Remark = null;
                }
                PW_Stock pwStock = new PW_Stock();
                pwStock.SupplyConsultID = SupplyConsultID;
                pwStock.UserID = UserID;
                pwStock.BusinessDate = DateTime.Now;
                pwStock.DocumentsNum = DocumentsNum;
                pwStock.Remark = Remark;
                pwStock.RestExpenses = RestExpenses;
                pwStock.ClearingAccountID = ClearingAccountID;
                pwStock.MakeDate = DateTime.Now;
                pwStock.StateID = 1;
                pwStock.ActuallyPaidMoney = ActuallyPaidMoney;
                pwStock.WarehouseID = WarehouseID;
                byte[] imgFile = null;
                if (fileStudentImage != null && fileStudentImage.ContentLength > 0)
                {
                    imgFile = new byte[fileStudentImage.ContentLength];
                    fileStudentImage.InputStream.Read(imgFile, 0, fileStudentImage.ContentLength);
                }
                pwStock.PaperReceipts = imgFile;
                myModels.PW_Stock.Add(pwStock);
                if (myModels.SaveChanges() > 0)
                {
                    stockId += pwStock.StockID;
                }
                myModels.SaveChanges();
                StayEnterLibraryInsert(SupplyConsultID, WarehouseID, UserID, Remark);
                return Json(stockId, JsonRequestBehavior.AllowGet);
            }
            catch (Exception)
            {
                return Json(false, JsonRequestBehavior.AllowGet);
            }
        }

在这里接收控制器传过来的ID,再通过循环方式遍历表格的每一行数据,在循环过程中,每循环一次就提交一次,然后将这些得到的数据传到控制器

function InsertDetail(StockId) {
            var ste = $("#tabdetail").find(".Operation");
            var lengthCount = ste.length;
            var dataLength=0;
            for (var i = 0; i < lengthCount; i++) {
                var j= i+1;
                var serialNumber=$("#tabdetail").find(".Operation").find(".SerialNumber").eq(i).val();
                if (serialNumber==""||serialNumber==undefined) {
                    continue;
                }
                dataLength++;
            }
            var degree=true;
            for (var i = 0; i < dataLength; i++) {
                var commodityId= $("#tabdetail").find(".Operation").find(".CommodityID").eq(i).val();
                var quantity=$("#tabdetail").find(".Operation").find(".Quantity").eq(i).val();
                var referenceStockPrice=$("#tabdetail").find(".Operation").find(".ReferenceStockPrice").eq(i).val();
                var remark=$("#tabdetail").find(".Operation").find(".Remark").eq(i).val();
                $.getJSON("SaveStockDetail?StockID="+StockId+"&CommodityID="+commodityId+"&Quantity="+quantity+"&UnitPrice="+referenceStockPrice+"&Remark="+remark,function (msg) {
                    if(msg=="success"){
                        if (degree==true) {
                            degree=false;
                            layer.alert("新增成功",{icon:1,title:"提示"});
                            window.setTimeout('window.location.href="/WisdomPipeCargo/StockSingle/StockSingleHistory"',1500);
                        }
                    }
                    else {
                        layer.alert("新增失败",{icon:1,title:"提示"});
                    }
                })
            }
        }

 

最后将这些数据保存到数据库

public ActionResult SaveStockDetail(int StockID, int CommodityID, int Quantity, decimal UnitPrice, string Remark)
        {
            if (Remark == "")
            {
                Remark = null;
            }
            string strMsg = "fail";
            try
            {
                PW_StockDetail pwStockDetail = new PW_StockDetail();

                pwStockDetail.StockID = StockID;
                pwStockDetail.CommodityID = CommodityID;
                pwStockDetail.Quantity = Quantity;
                pwStockDetail.UnitPrice = UnitPrice;
                pwStockDetail.Remark = Remark;

                myModels.PW_StockDetail.Add(pwStockDetail);
                myModels.SaveChanges();
                strMsg = "success";
                StayEnterLibraryDetailInsert(CommodityID, Quantity, Remark);
                return Json(strMsg, JsonRequestBehavior.AllowGet);
            }
            catch (Exception)
            {
                return Json(strMsg, JsonRequestBehavior.AllowGet);
            }
        }

 

猜你喜欢

转载自blog.csdn.net/qq_42881311/article/details/87899836