在项目中很多时候都要用到事务,比如添加一条商品,要把这么商品的关键字插入到关键字表里去
首先执行一和Sql,如果执行失败则马上返回。
否则开始事务执行下面的语句...
int i=new command().executeNonQuery(....)
//如果执行失败则直接返回
if(i<0)
return false....
//开启事务
SqlConnection con = new SqlConnection(SqlHelper.ConnectionString);
con.Open();
SqlTransaction tran = con.BeginTransaction();
try
{
如果执行失败
事务回滚,返回
if(j<0){tran.Rollback(); return false;}
否则继续执行....
最后如都执行成功
//提交事务
tran.Commit();
return true;
}
代码参照:
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
1 object o= SqlHelper.ExecuteScalar(SqlHelper.ConnectionString, CommandType.Text,“insert into ....", new sqlparamter [] ); 2 if (o== null || o== DBNull.Value) 3 { 4 return false; 5 } 6 //启用事物 SqlConnection con = new SqlConnection(SqlHelper.ConnectionString); 7 con.Open(); 8 SqlTransaction tran = con.BeginTransaction(); 9 try 10 { 11 int i = SqlHelper.ExecuteNonQuery(SqlHelper.ConnectionString, CommandType.Text,”update ...", parametr []); 12 if (i < 0)//失败回滚 13 { 14 tran.Rollback(); 15 return false; 16 } 17 SqlParameter[] paramCategory = { new SqlParameter("@ID", id), new SqlParameter("@name", name) }; 18 int j = SqlHelper.ExecuteNonQuery(SqlHelper.ConnectionString, CommandType.Text, "insert into ..",paramCategory); 19 if (j < 0)//失败回滚 20 { 21 tran.Rollback(); 22 return false; 23 } 24 //提交事务 25 tran.Commit(); 26 return true; 27 } 28 catch 29 { 30 tran.Rollback(); 31 return false; 32 } 33 finally 34 { 35 con.Close(); 36 con.Dispose(); 37 }