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

      

  • 相关阅读:
    java设计模式总结
    【转载】java单例之enum实现方式
    【转载】如何在Java中使用双重检查锁实现单例
    docker指令
    一、SpringBoot入门 HellWorld
    Java IO流的介绍&基本使用
    Java IO流的读写操作(掌握)
    Java8 新特性 Lamdba表达式的一些简单用法
    Jquery使用Ajax发送异步请求,模拟前后台接口开发模式
    收集java基础面试题&答案
  • 原文地址:https://www.cnblogs.com/huangzhen22/p/3264237.html
Copyright © 2011-2022 走看看