C# Asp.Net MVC多表新增
欧亚汽车维修企业管理系统模块(我负责的部分):
(1)系统管理:包含了权限的登录
(2)维修:包括业务受理(预约维修、一般维修、保险业务、公务业务)、检 验报告(都是在一般维修界面的切换选项卡里)
(3)零件:包含零件入库(采购入库、订货入库、其他入库、出库退货(销售或者领料回来退回来入库))、订货(为订货入库而用)、零件出库(销售出库、领料出库)、。
(4)财务管理:一般结算、收款登记、付款登记
(5)档案管理:零件目录、车辆客户、供应商、工具、司机档案
下面演示一个多表新增的功能(选取零件销售出库的新增)
控制器的代码:加载进去的时候就将出库单号显示出来:
public ActionResult SaleLeave(){try{S_EnterStoreType listEntertype = (from tbEntertype in myModel.S_EnterStoreTypewhere tbEntertype.EnterStoreTypeID == 4select tbEntertype).Single();string strEnterStoreType = listEntertype.EnterStoreType;Session["EnterStoreType"] = strEnterStoreType;int intEnterStoreTypeID = listEntertype.EnterStoreTypeID;Session["EnterStoreTypeID"] = intEnterStoreTypeID;ViewBag.EnterStoreType = strEnterStoreType;string strUserNuber = Session["UserNuber"].ToString();int strUserID = Convert.ToInt32(Session["UserID"]);string ChuKuDanHao = "CK";string XiaoShouDanHao = "FP";R_MaxNumbers MaxDanHao = (from tbDanHao in myModel.R_MaxNumbersselect tbDanHao).SingleOrDefault();string strMaxDanJuShu = MaxDanHao.LeaveStoreBillNumber.ToString().Trim();int intMaxDanJuShu = Convert.ToInt32(strMaxDanJuShu) + 1;string MaxDanJuShu = intMaxDanJuShu.ToString().Trim();string Month = DateTime.Now.Month.ToString().Length == 1 ?"0" + DateTime.Now.Month.ToString(): DateTime.Now.Month.ToString();string Day = DateTime.Now.Day.ToString().Length == 1 ?"0" + DateTime.Now.Day.ToString(): DateTime.Now.Day.ToString();XiaoShouDanHao += (DateTime.Now.Year.ToString()+ Month + Day);ChuKuDanHao += (DateTime.Now.Year.ToString()+ Month + Day);for (int i = MaxDanJuShu.Length; i < 4; i++){MaxDanJuShu = "0" + MaxDanJuShu;}XiaoShouDanHao += MaxDanJuShu;ChuKuDanHao += MaxDanJuShu;Session["LeaveStoreBillNumber"] = intMaxDanJuShu;ViewBag.XiaoShouDanHao = XiaoShouDanHao;ViewBag.ChuKuDanHao = ChuKuDanHao;ViewBag.UserNuber = strUserNuber;}catch (Exception){//无法获取session 重定向到登录界面 重新登录return Redirect("/Main/Login");}return View();}
新增的代码:(出库的数据新增一条然后库存的数量就相应地减少)
public ActionResult InsertXiaoShou(B_ComeStore BcomeStore,B_ComeStoreDetail BComeDetail){string strMsg = "fail";int ComeStoreId;int UserID = Convert.ToInt32(Session["UserID"]);int PartID = Convert.ToInt32(Session["PartsID"]);int CustomerID = Convert.ToInt32(Session["CustomerID"]);int LeaveNumber = Convert.ToInt32(Session["LeaveStoreBillNumber"]);decimal ShuLiang = Convert.ToDecimal(Session["EnterAcount"]);int EnterDetailId = Convert.ToInt32(Session["EnterStoreDetailID"]);try{if (BcomeStore.ComeStoreID > 0 && BComeDetail.ComeStoreDetailID > 0){myModel.Entry(BcomeStore).State = System.Data.Entity.EntityState.Modified;myModel.Entry(BComeDetail).State = System.Data.Entity.EntityState.Modified;}else{BcomeStore.UserID = UserID;BcomeStore.CustomerID = CustomerID;myModel.B_ComeStore.Add(BcomeStore);if (BcomeStore.Audit != true && BcomeStore.Gathering != true){BcomeStore.Audit = false;BcomeStore.Gathering = false;}if (myModel.SaveChanges() > 0){ComeStoreId = BcomeStore.ComeStoreID;BComeDetail.ComeStoreID = ComeStoreId;BComeDetail.PartsID = PartID;myModel.B_ComeStoreDetail.Add(BComeDetail);}R_MaxNumbers MaxDanHao = (from tbHeTong in myModel.R_MaxNumbersselect tbHeTong).SingleOrDefault();MaxDanHao.LeaveStoreBillNumber = LeaveNumber;myModel.Entry(MaxDanHao).State = System.Data.Entity.EntityState.Modified;if (myModel.SaveChanges() > 0){B_EnterStoreDetailTable priceEnt = (from tbEnter in myModel.B_EnterStoreDetailTablewhere tbEnter.EnterStoreDetailID == EnterDetailIdselect tbEnter).SingleOrDefault();ShuLiang = (decimal)priceEnt.EnterAcount;priceEnt.EnterAcount = priceEnt.EnterAcount - BComeDetail.Acount;myModel.Entry(priceEnt).State = System.Data.Entity.EntityState.Modified;}}myModel.SaveChanges();strMsg = "success";}catch(Exception e){Console.WriteLine(e);}return Json(strMsg,JsonRequestBehavior.AllowGet);}
页面是用form表单写的
js的代码:
function SaveLeave() {var CustomerReferred = $('#SaleLeaveForm [name="CustomerReferred"]').val();//客户简称var Audit = $('#SaleLeaveForm [name="Audit"]').prop('checked');//审核否var Gathering = $('#SaleLeaveForm [name="Gathering"]').prop('checked');//收款否if (CustomerReferred != null && Audit != null && Gathering != null){var layerIndex = layer.load(0);//显示加载层$("#SaleLeaveForm").ajaxSubmit(function (data) {layer.close(layerIndex);//关闭加载层layer.alert(data, { title: '提示' });if (data == "success") {alert("出库新增成功")}});}}
出库单号、发票代码、发票号码都是第一段的代码加载页面的时候就自动生成这些单号
最后,做项目的心得:
欧亚汽车维修管理系统是我第二次做的练习项目,我觉得这一次的项目比第一次做鹏成医院管理的那一个进步一些,逻辑思维得到提升
我们这个阶段开发中遇到的问题基本都是一些很基础的问题,比如说我们使用的layer这个控件,引用这个控件比以前的自己编写分页的代码,这个方便很多,因为很多内容这个控件都已经封装好了的,
但是查询的时候必须要添加多一句倒叙(orderby tbCome.ComeStoreID descending)这一句代码才会正常查询出来,一开始我不懂,弄了很久,也是通过做这个项目我才知道,虽然上课的期间敲过代码,但是都不记得,所以做项目真的对我们成长很重要,更加进一步逼着自己去理解去学习这个代码的作用,去运用这个功能的代码在自己的项目上。引用这个控件的一个最大的难点就是在于表格的编辑之后进行数据获取的新增保存,这个功能困惑了我很久,经过和同桌讨论都得不出结果,后来就在网上搜索datatables-editable这一个插件实现了表格的编辑以及新增保存修改的功能,从这件事我得出了一个结论能够自己考虑的问题要尽量自己解决,解决不了找同学讨论,刚好我的同桌他的逻辑思维比较强一些,还有解决的方法经验也丰富一些,所以我就常常找我的同桌讨论,这样我们都能得到提高,最后都解决不了我们再找老师帮忙。编辑代码的过程中最重要的细心还要多思考,从多个角度去看问题,遇到错误不要慌张,一步步地分析问题。之前我遇到一个和简单的问题,就是在新增传输物理地址的错误,找了两节课都找不出来,就是action="/Finance/PaymentRegister/InsertPayment",第一次action这个接口弹出来的是uiactions这个,只是删掉了前两个字母导致的错误,一直没有意识到时这个错误,找错误的时候先分析是不是已进入界面就报错,不是就继续找进一步的代码,后来发现新增的时候不跳入这个地址,后来找到这个地址才发现是action写错了。
当出库,退货数量的改变也是卡了我很久,一开始想不明白出库要怎么样编程新增一条数据的时候入库的数量就相对应的减少,后来灵感一来,运用之前WCF学过的计算的代码加减不就得了嘛?后来通过这种方法就把功能实现了。在编辑的代码的过程中多站在客户的角度去思考,以及我们生活中去购买车或者修车的过程是怎么样走的?这样的界面,这样的功能是否合理,是否简单易懂?如果在编写代码的过程中能够这样多考虑,自己的代码变得更加严谨一些。
最后很感谢学校提供了做练习项目这样一个平台,严格要求我们去学习。很感谢同桌对我耐心的指导,
老师的耐心教导。通过这个项目,我对代码又更加地熟悉了,希望下一次的学习我能通过这一次的项目更加有目的性地去学习。
C# Asp.Net MVC多表新增相关推荐
- ASP.NET MVC学习资料 新增几个开源项目
ASP.NET MVC学习资料 新增几个开源项目 ASP.NET MVC MSDN API: System.Web.Mvc Namespace (暂无中文版): http://msdn.micro ...
- ASP.NET MVC保持表单数据状态的方法:input辅助器+模型绑定
ASP.NET使用ViewState保持网页的状态,服务器端控件也默认使用该对象保持状态.该技术的主要弊端是服务器需要发送大量的状态数据给客户端.ASP.NET MVC没有采用服务器端控件技术,也就不 ...
- 第四章 ASP.NET MVC (表单和HTML辅助方法)
一.表单的两大属性特性 (1.)action属性特性 action用以告知web浏览器信息发往哪里,所以action值指定的是一个URL,这里的URL可以是相对路径,也可以是绝对路径 (2.)meth ...
- ASP.NET MVC 3.0学习系列文章--Razor and ASP.NET MVC 3.0
系列文章 ASP.NET MVC 3.0学习系列文章-序 Razor and ASP.NET MVC 3.0 ASP.NET MVC 3.0学习系列文章-Controllers in ASP.NET ...
- ASP.NET MVC 2.0 AsyncController(转)
ASP.NET MVC 2.0 新增 非同步控制器 (AsyncController) 的開發方式,若是你的網站流量大但是大部分的運算資源是落在與 CPU 無關的運算上時,例如 SQL Server. ...
- ASP.NET MVC 表单提交教程
在前面的两篇文章总,我们分别做了一个简单的ASP.NET MVC的例子和进行数据的绑定,在本文中,将通过ASP.NET MVC Framework实现表单的提交,你可以看到,在这里有多种方法来获取表单 ...
- [翻译-ASP.NET MVC]Contact Manager开发之旅迭代3 - 验证表单
本翻译系列为asp.net mvc官方实例教程.在这个系列中,Stephen Walther将演示如何通过ASP.NET MVC framework结合单元测试.TDD.Ajax.软件设计原则及设计模 ...
- Scott的ASP.net MVC框架系列文章之四:处理表单数据(2)
前几周我发表了一系列文章介绍我们正在研究的ASP.NET MVC框架.ASP.NET MVC框架为你提供了一种新的开发Web应用程序的途径,这种途径可以让应用程序变得更加层次清晰,而且更加有利于对代码 ...
- asp.net mvc jqgrid 同一个页面查询不同的表,jqgrid显示不同表的表头和数据并且分页...
基于我上一篇文章<a href="http://www.cnblogs.com/alasai/p/4765756.html">asp.net mvc excel导入&l ...
最新文章
- matlab实验是啥,matlab实验心得体会
- iMeta期刊12名编委入选科睿唯安2021年度高被引学者
- 《Java程序设计》实验报告——Java的对象与类
- 多线程与高并发(三):JUC包下新的同步机制:CAS,AtomicInteger,AtomicLong,ReentrantLock,CountDownLatch,ReadWriteLock等
- hadoop 环境搭建
- python列表添加元素到中间_python在列表的元素中间插入空行
- microsoft azure
- 爬虫项目:大麦网分析
- 实战:RBAC(基于角色的权限控制)-2021.11.28
- Leetcode——237. 删除链表中的节点(Java)
- 数十位院士/大咖亮相,近千人到场交流,物联网人年终必聚的产业盛会来了!...
- 医疗图像论文笔记二:《Learning to recognize Abnormalities in Chest X-Rays with Location-Aware Dense Networks》
- 得了胆囊息肉对人体的危害大不大?
- HyperLogLog 使用及其算法原理详细讲解
- 【Prometheus 自主无人机平台 】无人机蜂群拦截系统作战构想与关键技术论文解读
- MySQL入门学习的第一节(SQL语句)
- C语言在开发中的应用博文汇总贴
- python 一个简陋的web服务器
- 人工智能走过了怎样的70年?
- 回溯法求解旅行商问题
热门文章
- Kurento实战之四:应用开发指南
- wifi 6路由器如何增强穿墙能力
- http协议修改js或html,web前端面试题对答篇:HTTP fetch发送2次请求的原因?
- oracle 注册程序,Oracle 12c New Feature: Listener注册进程LREG
- 利用爬虫技术构建Nifty Gateway的NFT数据分析平台
- 南航计算机学院王立松教授,张道强 - 南京航空航天大学 - 计算机科学与技术学院/人工智能学院...
- Java 创建对象的 6 种方式,总有一种适合你
- linux内核mount过程超复杂的do_mount()、do_loopback()、attach_recursive_mnt()、propagate_mnt()函数详解
- Node.js实现下载文件
- ORACLE解锁record is locked by another user