在程序中启用事务

在项目中很多时候都要用到事务,比如添加一条商品,要把这么商品的关键字插入到关键字表里去

首先执行一和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;

}

代码参照:

 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             }
View Code

  

原文地址:https://www.cnblogs.com/huangzhen22/p/3264237.html