前言:
现在你们对“数据库中删除存储过程”大致比较关怀,我们都想要学习一些“数据库中删除存储过程”的相关文章。那么小编同时在网络上搜集了一些关于“数据库中删除存储过程””的相关资讯,希望大家能喜欢,看官们一起来学习一下吧!#妙笔生创作挑战#
在帮助类中添加增删改的存储过程类型的静态方法
/// <summary>/// 执行存储过程的增删改操作/// </summary>/// <param name="sp_name">存储过程名</param>/// <param name="pms">可变参数</param>/// <returns>受影响的行数</returns>public static int SP_ExecuteNonQuery(string sp_name, params SqlParameter[] pms){ //声明连接对象,传入连接字符串 using (SqlConnection con = new SqlConnection(constr)) { //声明执行对象,传入(传入要执行的存储过程名,连接对象) using (SqlCommand cmd = new SqlCommand(sp_name, con)) { //判断:当参数数组不为空时 //将参数数组加入到执行对象中 if (pms != null) { cmd.Parameters.AddRange(pms); } if (con.State == ConnectionState.Closed) { con.Open(); } //修改执行对象的执行类型 //类型1:Text 执行SQL语句(默认类型) //类型2:StoredProcedure 执行存储过程 //类型3:TableDirect 支持OleDB数据库,MSSQL不支持,当前程序中不可用 //修改 执行类型为 存储过程 cmd.CommandType = CommandType.StoredProcedure; //返回执行结果 return cmd.ExecuteNonQuery(); } }}
示例1:通过帮助类的存储过程方法为班级(Class)表插入一条数据
1) 在数据库中创建带插入数据的存储过程
--创建插入语句的存储过程--sp: 表示存储过程--class: 表示对哪个表进行操作--insert 表示插入数据--存储过程名:尽可能见子知义CREATE PROC sp_class_insert@cname VARCHAR(18),@cdesc VARCHAR(18)ASBEGIN INSERT INTO dbo.Class(CName, CDesc) VALUES(@cname,@cdesc)END
2)在程序中调用存储过程: sp_class_insert
2.1 添加对帮助类库的引用
2.2 编写配置文件的信息
2.3 调用插入数据的存储过程
private void btnInsert_Click(object sender, EventArgs e){ //最好加一个编写检测两个文本框都不能为空的方法 //1 为参数赋值 SqlParameter[] ps ={ new SqlParameter("@cname",txtName.Text), new SqlParameter("@cdesc",txtDesc.Text) }; //2 向方法中传入参数("存储过程名",可变参数数组) int r = Helper.SQLHelper.SP_ExecuteNonQuery("sp_class_insert", ps); if (r > 0) { MessageBox.Show("数据插入成功"); } else { MessageBox.Show("数据插入失败"); }}
注意事项:存储过程名与参数名称必须与数据库中的一样,否则报异常
示例2:通过帮助类的存储过程方法软删除班级(Class)表中指定cid的数据
1 在数据库在创建删除数据的存储过程--示例2:软删除班级(Class)表中指定cid的数据CREATE PROC sp_class_isdel@cid INT ASBEGIN--真正删除数据--DELETE FROM dbo.Class WHERE CId=@cid--软删除数据:真正数据还在数据库中UPDATE dbo.Class SET CIsDel=1 WHERE CId=@cidEND2 程序调用存储过程 sp_class_isdelprivate void btnDel_Click(object sender, EventArgs e){ SqlParameter sp = new SqlParameter("@cid",txtCId.Text); int r = Helper.SQLHelper.SP_ExecuteNonQuery("sp_class_isdel", sp); if (r>0) { MessageBox.Show("软删除成功"); }}
示例3:修改cid指定班级编号的班级信息
--1 创建存储过程--修改指定班级编号的班级信息ALTER PROC sp_class_update@cname varchar(18),@cdesc varchar(18),@cid intASBEGIN UPDATE dbo.Class SET CName=@cname,CDesc=@cdesc WHERE CId=@cidEND2 调用存储过程private void btnModify_Click(object sender, EventArgs e){ SqlParameter[] ps = { new SqlParameter("@cname",txtName.Text), new SqlParameter("@cdesc",txtDesc.Text), new SqlParameter("@cid", txtCId.Text) }; int r = Helper.SQLHelper.SP_ExecuteNonQuery("sp_class_update", ps); if (r > 0) { MessageBox.Show("数据更新成功"); }}
示例4:查询出表中的所有数据,自己编写代码实现
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。
标签: #数据库中删除存储过程 #sql删除存储过程的命令