将表格的数据保存到数据库
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
下面是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);
}
}