龙空技术网

SQL - 应用程序调用增删改存储过程的方法 176

源丁编程 636

前言:

现在你们对“数据库中删除存储过程”大致比较关怀,我们都想要学习一些“数据库中删除存储过程”的相关文章。那么小编同时在网络上搜集了一些关于“数据库中删除存储过程””的相关资讯,希望大家能喜欢,看官们一起来学习一下吧!

#妙笔生创作挑战#

在帮助类中添加增删改的存储过程类型的静态方法

/// <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删除存储过程的命令