c#调用存储过程
来源:互联网 发布:夜奔什么意思网络内涵 编辑:程序博客网 时间:2024/06/03 23:05
一、下面讲C#如何调用写好的存储过程,下面是对数据操作封装几个函数
//执行对表的增删改操作的sql语句
public static int ExecuteCommand(string text)
{
using (SqlConnection conn = new SqlConnection(connectionString))
{
conn.Open();
using (SqlCommand cmd = new SqlCommand(text, conn))
{
int i = cmd.ExecuteNonQuery();
return i;
}
}
}
public static int ExecStoredProcedure(string procName, params SqlParameter[] parameters)
{
int rtn = 0;
using (SqlConnection conn = new SqlConnection(connectionString))
{
conn.Open();
using (SqlCommand cmd = conn.CreateCommand())
{
SqlTransaction st = conn.BeginTransaction();
cmd.Transaction = st;
try
{
cmd.CommandText = procName;
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddRange(parameters);
rtn= cmd.ExecuteNonQuery();
st.Commit();
return rtn;
}
catch(SqlException sqlex)
{
st.Rollback();
throw sqlex;
}
}
}
}
public static int ExecuteStoredProcedure(string procName,
params SqlParameter[] parameters)
{
using (SqlConnection conn = new SqlConnection(connectionString))
{
conn.Open();
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = procName;
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddRange(parameters);
return cmd.ExecuteNonQuery();
}
}
}
二、推荐用第三种方式,用到了事务处理,若只要有一条不通过全部回滚,避免脏数据的产生。也可以在存储过程中使用事务
protected void Button1_Click(object sender, EventArgs e)
{
string mainName = "圆梦组";
string detailName="刘能|赵本山|沈燕|欧阳锋";
string detailAge="23|32|18|19";
int rtn=DBHelper.ExecuteCommand(string.Format("exec dbo.Proc_TestBatchMainDetailIns '{0}','{1}','{2}'", mainName, detailName,detailAge));
}
protected void Button2_Click(object sender, EventArgs e)
{
string mainName = "起航组2";
string detailName="段毅2|乔峰2|杨过2|李莫愁2";
string detailAge="18|28|jj|35";
SqlParameter[] sps = new SqlParameter[] {
new SqlParameter("@mainName",mainName),
new SqlParameter("@detailNameStr",detailName),
new SqlParameter("@detailAgeStr",detailAge)
};
try
{
int rtn = DBHelper.ExecuteStoredProcedure("dbo.Proc_TestBatchMainDetailIns", sps);
}
catch (Exception ex)
{
Response.Write(ex.Message);
}
}
protected void Button3_Click(object sender, EventArgs e)
{
string mainName = "起航组2";
string detailName = "段毅2|乔峰2|杨过2|李莫愁2";
string detailAge = "18|28|jj|35";
SqlParameter[] sps = new SqlParameter[] {
new SqlParameter("@mainName",mainName),
new SqlParameter("@detailNameStr",detailName),
new SqlParameter("@detailAgeStr",detailAge)
};
try
{
int rtn = DBHelper.ExecStoredProcedure("dbo.Proc_TestBatchMainDetailIns", sps);
}
catch (Exception ex)
{
Response.Write(ex.Message);
}
}
protected void Button1_Click(object sender, EventArgs e)
{
string mainName = "圆梦组";
string detailName="刘能|赵本山|沈燕|欧阳锋";
string detailAge="23|32|18|19";
int rtn=DBHelper.ExecuteCommand(string.Format("exec dbo.Proc_TestBatchMainDetailIns '{0}','{1}','{2}'", mainName, detailName,detailAge));
}
protected void Button2_Click(object sender, EventArgs e)
{
string mainName = "起航组2";
string detailName="段毅2|乔峰2|杨过2|李莫愁2";
string detailAge="18|28|jj|35";
SqlParameter[] sps = new SqlParameter[] {
new SqlParameter("@mainName",mainName),
new SqlParameter("@detailNameStr",detailName),
new SqlParameter("@detailAgeStr",detailAge)
};
try
{
int rtn = DBHelper.ExecuteStoredProcedure("dbo.Proc_TestBatchMainDetailIns", sps);
}
catch (Exception ex)
{
Response.Write(ex.Message);
}
}
protected void Button3_Click(object sender, EventArgs e)
{
string mainName = "起航组2";
string detailName = "段毅2|乔峰2|杨过2|李莫愁2";
string detailAge = "18|28|jj|35";
SqlParameter[] sps = new SqlParameter[] {
new SqlParameter("@mainName",mainName),
new SqlParameter("@detailNameStr",detailName),
new SqlParameter("@detailAgeStr",detailAge)
};
try
{
int rtn = DBHelper.ExecStoredProcedure("dbo.Proc_TestBatchMainDetailIns", sps);
}
catch (Exception ex)
{
Response.Write(ex.Message);
}
}
- C#调用存储过程
- C#调用存储过程
- C#调用存储过程
- C#调用存储过程
- C#调用存储过程
- C# 调用存储过程
- c# 调用存储过程
- C#调用存储过程
- c# 调用 存储过程
- C# 调用存储过程
- C#调用存储过程
- C#调用存储过程
- C#调用存储过程
- C#调用存储过程
- C#调用存储过程
- C# 调用存储过程
- C# 调用存储过程
- C# 调用存储过程
- 模型汇总23
- SQL语句中的<>和!=
- POJ 3159 Candies 差分约束系统(这题卡SPFA的队列的双端队列)
- OKHTTP讲义
- H.264再学习 -- H.264视频压缩标准
- c#调用存储过程
- ios pop到navigation栈中的指定控制器
- 第二章 SQL命令参考-BEGIN
- hdu 2242 考研路茫茫——空调教室 【Tarjan缩点+树上DP】 解题报告
- Git上传项目到远程仓库
- 匈牙利算法模板
- ANR理解
- vuex中mapState、mapGetters、mapActions、mapMutations的使用
- 深层次理解MVC