程序帝国四大操作之单表新增

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

单表新增

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

大家好,据我们所了解,身为程序员,平时经常操作的四大操作是查询,新增,修改,删除这四大功能!之前就有写了一篇四大功能-“单表查询”,而现在我最近新学了一个四大功能-“单表新增”的代码操作,因为怕忘记,把学到知识点全部整理了一边,记录一下我的个人学习生涯的经历,虽然简单,但整理不易!

一、下面我们首先在控制器里面设置名称,后面再设置相应的表和参数,然后在通过ReturnJson这个封装的方法对returnJson进行实例化,最后还要用它接收数据返回到页面,它返回的数据,在设置try捕捉错误,在用if判断是否为空并且保存数据是否已经存在。
通过建一个变量来接收它返回的数据,然后通过新建一个表,来接收myModels实体返回来的数据,新建表里面其中的一个字段的ID要与页面传上来的数据相等并以此为条件,并且新建表里面的名称要与页面传上来的名称相等,然后在查询新建表,在返回数据。
在这里插入图片描述
二、再通过if判断返回来的数据是否为0,如果不为0,就提示用户,这个数据和以前重复,因为它后面附属的数据,所以不能新增,如果为0,就进行下一步操作,然后对要进行数据新增的表进行新增操作。然后在进行一个判断,如果新增的数据大于0,就新增成功,小于0就新增失败,最后在数据库里面进行保存。
在这里插入图片描述
三、然后我们在创建视图这边HTMl页面,写如下方代码设置打开新增模态框,方法名称必须和新增按钮的类保持一致,不然你的时候就打不开,显示不了任何数据。

//打开新增模态框
function openInsert() {
	//重置表单
	$('#formInsetAcademe input[type="reset"]').click();
	//打开模态框
	$("#modalXiZeng").modal('show');
}

四、写完打开模态框后,我们继续写保存新增的代码,首先方法名称必须和相应的类名保持一致,然后在获取input输入数据,在进行一个判断,然后在通过post向控制器提出请求,在返回到控制器那边进行新增,通过一个判断,确定是否填写完整,在进行保存,如果保存成功就刷新表格,并提示保存成功。

    functionsavaInsert() {
        //获取input输入数据
        var Number= $("#XNumber").val();
        varWarehuoseName = $("#XWarehuoseName").val();
        varPrincipal = $("#XPrincipal").val();
        var Phone =$("#XPhone").val();
        var Remark= $("#XRemark").val();
        //判断
        if (Number!= ''&& Number != undefined
           && WarehuoseName != '' &&WarehuoseName != undefined
           && Principal != '' &&Principal != undefined
           && Phone != '' && Phone !=undefined
           && Remark != '' && Remark!= undefined){
           $.post("/KucunGuanli/Warehouse/InsertWarehuose", {
               Number: Number,
               WarehuoseName: WarehuoseName,
               Principal: Principal,                   
               Phone: Phone,
               Remark: Remark
               }, 
                function (returnJson) {
               if (returnJson.State == true) {
                //关闭模态框                      
                $("#modalXiZeng").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 论坛

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