程序帝国四大操作之单表修改

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_44484894/article/details/96473171

单表修改

开发工具与关键技术:VisualStudio  
撰写时间:7月16号  
作者:  曾子千  

大家好,据我们所了解的,身为程序员,经常性的四大操作是查询,新增,修改,删除这四大功能!之前就我写了两篇四大功能的单表使用-“单表查询”“单表新增”,而在最近我新学了一个四大功能-“单表修改”的代码操作,也是因为怕忘记,所以把学到的修改知识点全部整理了一边,分享一下!

首先在控制器里面自定义一个方法名称,在后面设置要查询的表和相应的参数,然后通如果不为空则进行下一步操作,然后建一个表接收myModels实体返回来的数据,新建表里面其中一个字段的ID要与页面上传来的数据相等以此为条件,并且,tbNoticeType这个表中的名字相等于sysNoticeType表中的名字,在查询新建表,然后在返回数据

public ActionResult UpdateWarehuose(B_Warehuose swarehuose)
    {
        ReturnJson returnJson = new ReturnJson();
        try {
             //检查修改仓库信息是否冲突(仓库负责人和电话)
 		int zeng = (from tbWarehuose in
		myModels.B_Warehuose
       		 where tbWarehuose.WarehuoseID!=swarehuose.WarehuoseID
       		 && ( tbWarehuose.Principal == swarehuose.Principal.Trim() ||
                        tbWarehuose.Phone== swarehuose.Phone.Trim())
                        select tbWarehuose).Count();
                        
        if (zeng == 0)
                {//执行修改
               myModels.Entry(swarehuose).State = EntityState.Modified;
                if (myModels.SaveChanges() > 0)
                {
                    returnJson.State = true;
                    returnJson.Text = "修改成功!";
                }
                else
                {
                    returnJson.State = false;
                    returnJson.Text = "修改失败!";
                }
           }
           else
            {   
                returnJson.State = false;
                returnJson.Text = "和其他的重复!";
            }
        }

        catch (Exception e)

        {
            Console.WriteLine(e);

            returnJson.State = false;

            returnJson.Text = "数据异常!";
        }
        return Json(returnJson, JsonRequestBehavior.AllowGet);
    }

返回来的数据是否为0,,查出来的结果是不是为0,如果不为0,就提示用户,这个数据已经存在,因为它后面附属的数据,所以不能修改,如果为0,就进行下一步操作,然后对要进行数据修改的表进行修改,对要进行修改的数据进行修改操作,然后在进行一个判断,最后在保存数据到数据库里面,如果修改的数据大于0就修改成功,就返回状态,等于true,然后在返回文本提示用户保存成功,小于0则修改失败。则返回状态,等于false,在返回文本提示用户数据异常。

//打开修改模态框
    function updateNotice(WarehuoseID) {
        //重置表单
      $('#formWarehuose input[type="reset"]').click();
        //回填数据
      $.post("/KucunGuanli/Warehouse/SelectWarehuoseId",
       {WarehuoseID: WarehuoseID }, function (data) {
  loadDatatoForm("formWarehuose", data);//根据json对象填充form表单
}, "json");
 //弹出模态框
 $("#modalUpdateAcademe").modal('show');
    }

然后在创建的视图这边构建页面,设置方法名称,在设置一个参数接收控制器那边传递过来的数据,然后在重置表单,再通过post向控制器提出请求,然后在返回到控制器那边进行修改操作,在根据json对象填充form表单,最后在设置layer窗体,修改完后返回到页面第一页。

//保存修改
    function savaUpdate() {
        //获取页面数据
        var WarehuoseID = $("#WarehuoseID").val();
        var Number = $("#UNumber").val();
        var WarehuoseName = $("#UWarehuoseName").val();
        var Principal = $("#UPrincipal").val();
        var Phone = $("#UPhone").val();
        var Remark = $("#URemark").val();
        //判断
        if (WarehuoseID != '' &&WarehuoseID != undefined && !isNaN(WarehuoseID)
            && Number != '' && Number!= undefined
            && WarehuoseName != '' &&WarehuoseName != undefined
            && Principal != '' &&Principal != undefined
            && Phone != '' && Phone !=undefined
            && Remark != '' && Remark!= undefined) {
            //异步提交数据
            $.post("/KucunGuanli/Warehouse/UpdateWarehuose",
                {
                    WarehuoseID:WarehuoseID,
                    Number: Number,
                    WarehuoseName:
		    WarehuoseName,
                    Principal: Principal,
                    Phone: Phone,
                    Remark: Remark
                },
                function (returnJson) {
                    if (returnJson.State== true) {
                        //关闭模态框
                        $("#modalUpdateAcademe").modal('hide');
                        //刷新table
                        tabWarehuose =
			layuiTable.reload('tabWarehuose');

                    }
		layer.alert(returnJson.Text);
                }, "json");
        }
        else {
            //提示
            layer.alert('请填写完整', {
	    title: '提示', icon: 0 });
        }
    }
展开阅读全文

[讨论]单表操作类。

08-26

[code=C#]//常用名称空间rnusing System;rnusing System.Collections.Generic;rnusing System.Text;rnusing System.Data;rnusing System.Data.SqlClient;rn rn//Class rnnamespace ggrn rn //表名添加前缀做类名rn public class thinUserrn rn rn //字段名 其中id是自增列rn public const string FIELD_ID="ID";rn public const string FIELD_NAME="Name";rn rn //添加、修改、删除sqlrn public const string SQL_UserInsert ="INSERT INTO aa (Name) VALUES (@Name);SELECT SCOPE_IDENTITY() ";rn public const string SQL_UserUpdate ="UPDATE aa SET Name = @Name WHERE ID = @ID";rn public const string SQL_UserDelete ="DELETE FROM aa WHERE ID = @ID";rn rn //调用级联删除的SQL,此处需要自行维护rn public const string SQL_UserDeleteCascade = "";、rnrn //变量,没有采用属性方式,而是直接用public,可以改成属性方式访问rn public int m_ID;rn public string m_Name = "";rn rnrn public partial class RunTimern rn public bool UpdateUser(thinUser needUpdateUser, bool blnUpdate, out string msg)rn rn SqlCommand sqlcmd = GetUserCommand(needUpdateUser, blnUpdate);rn bool result = ExecCommand(sqlcmd, out msg, blnUpdate);rn //新增操作并且操作成功rn if (!blnUpdate && result)rn rn needUpdateUser.m_ID = Convert.ToInt32(msg);rn rn return result;rn rnrn public bool UpdateUser(thinUser needUpdateUser, bool blnUpdate, out string msg, IDbTransaction sqlTran)rn rn SqlCommand sqlcmd = GetUserCommand(needUpdateUser, blnUpdate);rn sqlcmd.Transaction = sqlTran as SqlTransaction;rn bool result = ExecCommand(sqlcmd, out msg, blnUpdate);rn //新增操作并且操作成功rn if (!blnUpdate && result)rn rn needUpdateUser.m_ID = Convert.ToInt32(msg);rn rn return result;rn rnrn private SqlCommand GetUserCommand(thinUser needUpdateUser, bool blnUpdate)rn rn //获取更新Division的SQL语句rn string strUpdate = string.Empty;rn //根据状态获取SQL语句rn if (blnUpdate)rn strUpdate = thinUser.SQL_UserUpdate;//更新SQLrn elsern strUpdate = thinUser.SQL_UserInsert;//删除SQLrn //构造命令对像rn SqlCommand sqlcmd = new SqlCommand(strUpdate);rn //名称参数rn sqlcmd.Parameters.Add(new SqlParameter("@" + thinUser.FIELD_NAME, needUpdateUser.m_Name));rnrn //更新操作时需要添加ID参数,主键rn if (blnUpdate)rn rn sqlcmd.Parameters.Add(new SqlParameter("@" + thinUser.FIELD_ID, needUpdateUser.m_ID));rn rn return sqlcmd;rn rnrn private SqlCommand GetUserDeleteCommand(thinUser needDelUser)rn rn //获取删除Division的SQL语句rn string strDelete = string.Empty;rn strDelete = thinUser.SQL_UserDelete;//删除SQLrn //判断该数据类型是否被传感器类型引用rn //comm.Comm.ToDecimalif (rn //构造命令对像rn SqlCommand sqlcmd = new SqlCommand(strDelete);rn sqlcmd.Parameters.Add(new SqlParameter("@" + thinUser.FIELD_ID, needDelUser.m_ID));rn return sqlcmd;rn rnrn public bool DeleteUser(thinUser needDelUser, out string msg)rn rn SqlCommand sqlcmd = GetUserDeleteCommand(needDelUser);rn return ExecCommand(sqlcmd, out msg, false);rn rnrn public bool DeleteUser(thinUser needDelUser, out string msg, IDbTransaction sqlTran)rn rn SqlCommand sqlcmd = GetUserDeleteCommand(needDelUser);rn sqlcmd.Transaction = sqlTran as SqlTransaction;rn return ExecCommand(sqlcmd, out msg, false);rn rnrn public bool DeleteUserCascade(thinUser needDelUser, out string msg)rn rn if (thinUser.SQL_UserDeleteCascade.Length == 0)rn rn msg = "";rn return true;rn rn elsern rn SqlCommand sqlcmd = GetUserDeleteCommand(needDelUser);rn sqlcmd.CommandText = thinUser.SQL_UserDeleteCascade;//删除SQLrn return ExecCommand(sqlcmd, out msg, false);rn rn rnrn public bool DeleteUserCascade(thinUser needDelUser, out string msg, IDbTransaction sqlTran)rn rn if (thinUser.SQL_UserDeleteCascade.Length == 0)rn rn msg = "";rn return true;rn rn elsern rn SqlCommand sqlcmd = GetUserDeleteCommand(needDelUser);rn sqlcmd.CommandText = thinUser.SQL_UserDeleteCascade;//删除SQLrn sqlcmd.Transaction = sqlTran as SqlTransaction;rn return ExecCommand(sqlcmd, out msg, false);rn rn rnrn rn [/code]rnrn=====解释说明rn代码是自己写的生成工具写的,用于操作一张表的,表主要用于sql server的自增表,自增列通常为id或者fid,我这里是按照id来算,如果实际应用中可以指定其他列,主要是一个新增的主键返回问题。rnrn第一部分为为表的影射,以及根据字段自动生成update、insert、delete、以及deletecascase用于级联删除操作。rn本来应该将new和update分开的,结果只有在传入参数的时候判断一下,合并了。每个update和delete方法都有重载idbtransaction的,用于控制事务ExecCommand,主要就是执行命令。,如果传入的sqlcmd不包含事务信息,则打开数据连结,否则使用事务信息的连接, 事务的话在调用之前new一个传入,是IDBTranScation类型rnrn各位觉得这个类怎么样?欢迎讨论rn 论坛

没有更多推荐了,返回首页