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

      

  • 相关阅读:
    读写锁操作(ReaderWriterLockSlim)
    VirtualBox的小秘密:命令行
    云的始祖概念,认识Linux瘦客户机
    Flash ActionScript 3.0 通过asp.net 访问 数据库
    js刷新iframe框架的几种情况分析
    Mozilla两款火狐插件包含恶意代码被紧急喊停
    asp.net中DataBinder.Eval的用法总结
    实现firebird的Embedded模式(.net 3.5)
    Flash Player 9 支持H.264视频和aac音频(附官方代码)
    右下角浮动广告代码DEMO
  • 原文地址:https://www.cnblogs.com/huangzhen22/p/3264237.html
Copyright © 2011-2022 走看看