zoukankan      html  css  js  c++  java
  • 数据库事务处理代码

    SQL事务的写法例子
    BEGIN TRANSACTION DeleteSupv
        
    --SQL语句 
        IF @@error<>0 
     
    BEGIN  
            
    ROLLBACK TRAN DeleteSupv  
      
    GOTO on_error
     
    END 
        
    --SQL语句 
        IF @@error<>0 
     
    BEGIN  
            
    ROLLBACK TRAN DeleteSupv  
      
    GOTO on_error
     
    END 
    COMMIT TRAN DeleteSupv

    RETURN 1
    on_error:
        
    print 'Error occured' 

    C# 执行SQL事务实例代码

    public void RunSqlTransaction(string myConnString) 
    {
        SqlConnection myConnection 
    = new SqlConnection(myConnString);
        myConnection.Open();

        SqlCommand myCommand 
    = myConnection.CreateCommand();
        SqlTransaction myTrans;

        
    // Start a local transaction
        myTrans = myConnection.BeginTransaction();
        
    // Must assign both transaction object and connection
        
    // to Command object for a pending local transaction
        myCommand.Connection = myConnection;
        myCommand.Transaction 
    = myTrans;

        
    try
        {
          myCommand.CommandText 
    = "Insert into Region (RegionID, RegionDescription) VALUES (100, ´Description´)";
          myCommand.ExecuteNonQuery();
          myCommand.CommandText 
    = "Insert into Region (RegionID, RegionDescription) VALUES (101, ´Description´)";
          myCommand.ExecuteNonQuery();
          myTrans.Commit();
          Console.WriteLine(
    "Both records are written to database.");
        }
        
    catch(Exception e)
        {
          
    try
          {
            myTrans.Rollback();
          }
          
    catch (SqlException ex)
          {
            
    if (myTrans.Connection != null)
            {
              Console.WriteLine(
    "An exception of type " + ex.GetType() +
                                
    " was encountered while attempting to roll back the transaction.");
            }
          }
        
          Console.WriteLine(
    "An exception of type " + e.GetType() +
                            
    " was encountered while inserting the data.");
          Console.WriteLine(
    "Neither record was written to database.");
        }
        
    finally 
        {
          myConnection.Close();
        }



     

  • 相关阅读:
    Postgresql修改序列方法 select setval('dataset_id_seq',1,false);
    再谈Elasticsearch全文搜索:你不知道的query_string、match、term、match_phrase的区别
    crosstab(unknown, unknown) does not exist
    Elasticsearch High Level Rest Client 发起请求的过程分析
    提取经过Jar2Exe编译加密的源代码 教程1
    Unity 协程与线程
    box unboxing(装箱 拆箱) C#编程指南
    C++基础笔记(四)C++内存管理
    C++ 箭头-> 双冒号:: 点号.操作符区别
    ref out 方法参数
  • 原文地址:https://www.cnblogs.com/ringwang/p/1575209.html
Copyright © 2011-2022 走看看