发布评论
评论(5)
可以把要操作的sql语句存在一个泛型中,传到写好的函数中,直接调用呀
public bool ExecuteTran(List<string> sqls, params SqlParameter[] pms)
{
try
{
using (SqlConnection thisConnect = new SqlConnection(connectString))
{
thisConnect.Open();
SqlCommand cmd = new SqlCommand();
if (pms != null)
{
foreach (SqlParameter pm in pms)
{
if (pm != null)
{
cmd.Parameters.Add(pm);
}
}
}
//开始事务
SqlTransaction tran = thisConnect.BeginTransaction();
cmd.Transaction = tran;//把这个 命令上执行的操作都加入tran事务
cmd.Connection = thisConnect;
try
{
foreach (string sql in sqls)
{
//遍历执行sql
cmd.CommandText = sql;
cmd.ExecuteNonQuery();
}
//..执行没出错
tran.Commit();
return true;
}
catch
{
tran.Rollback();
return false;
}
finally
{
thisConnect.Close();
}
}
}
catch (SqlException el)
{
throw el;
}
}
~没有更多了~
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
事务里面最好不要嵌套令一个事务。你可以直接调用存储过程,存储过程使用事物提交。
using (SqlConnection con = new SqlConnection(SqlHelper.ConnectionString))
{
con.Open();
using (SqlTransaction trans = con.BeginTransaction())
{
try
{
SqlParameter[] parameter ={
new SqlParameter("@",SqlDbType.NVarChar,20),
new SqlParameter("@",SqlDbType.DateTime),
new SqlParameter("@",SqlDbType.DateTime)
};
parameter[0].Value =;
parameter[1].Value =;
parameter[2].Value =;
ds = SqlHelper.ExecuteDataset(trans, CommandType.StoredProcedure, "#", parameter);
}
catch (Exception ex)
{
}
}
}