在帮助类中添加增删改的存储过程类型的静态方法
/// <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)
AS
BEGIN
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
AS
BEGIN
--真正删除数据
--DELETE FROM dbo.Class WHERE CId=@cid
--软删除数据:真正数据还在数据库中
UPDATE dbo.Class SET CIsDel=1 WHERE CId=@cid
END
2 程序调用存储过程 sp_class_isdel
private 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 int
AS
BEGIN
UPDATE dbo.Class SET CName=@cname,CDesc=@cdesc WHERE CId=@cid
END
2 调用存储过程
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:查询出表中的所有数据,自己编写代码实现
本文暂时没有评论,来添加一个吧(●'◡'●)