zoukankan      html  css  js  c++  java
  • 在程序中启用事务

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

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

      

  • 相关阅读:
    Nexus 3048的NX-OS升级方法
    ASA防火墙忘记密码之后的恢复步骤
    关闭AnyConnect登录安全警告窗口
    使用vASA842配置ASDM645
    SSL 证书格式普及,PEM、CER、JKS、PKCS12
    Python基础练习
    理解管理信息系统
    各大搜索引擎蜘蛛的UserAgent
    iOS应用程序内购/内付费
    iOS开发解决:iOS8.1中UIBarButtonItem的setTitleTextAttributes对Disabled颜色设置无效问题
  • 原文地址:https://www.cnblogs.com/huangzhen22/p/3264237.html
Copyright © 2011-2022 走看看