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

      

  • 相关阅读:
    1、编写一个简单的C++程序
    96. Unique Binary Search Trees
    python 操作redis
    json.loads的一个很有意思的现象
    No changes detected
    leetcode 127 wordladder
    django uwsgi websocket踩坑
    you need to build uWSGI with SSL support to use the websocket handshake api function !!!
    pyinstaller 出现str error
    数据库的读现象
  • 原文地址:https://www.cnblogs.com/huangzhen22/p/3264237.html
Copyright © 2011-2022 走看看