zoukankan      html  css  js  c++  java
  • 事务

      

    1、创建事务的结构

    SqlConnection   sqlConnection   =   new   SqlConnection();  
      ...初始化连接  
      //   开启事务  
      SqlTransaction   sqlTransaction   =   sqlConnection.BeginTransaction();  
      //   将事务应用于Command  
      SqlCommand   sqlCommand   =   new   SqlCommand();  
      sqlCommand.Connection   =   sqlConnection;   
      sqlCommand.Transaction   =   sqlTransaction;     
      try  
      {  
      //   利用sqlcommand进行数据操作  
      ...  
      //   成功提交  
      sqlTransaction.Commit();  
      }  
      catch(Exception   ex)  
      {  
      //   出错回滚  
      sqlTransaction.Rollback();  
      }  

    2、简单例子

                      {   
                              DataTable   dt   =   new   DataTable();   
                              System.Data.SqlClient.SqlConnection   cnn   =   new   System.Data.SqlClient.SqlConnection("连接字符串");  
                              System.Data.SqlClient.SqlCommand   cm   =   new   System.Data.SqlClient.SqlCommand();  
                              cm.Connection   =   cnn;  
                              cnn.Open();  
                              System.Data.SqlClient.SqlTransaction   trans   =   cnn.BeginTransaction();  
                              try  
                              {  
                                      foreach(DataRow   dr   in   dt.Rows)  
                                      {  
                                              cm.CommandText   =   "update   [表]   set   [数量]   =   @amount   where   productID   =   @productID";  
                                              cm.Parameters.Add("@amount",SqlDbType.Int);  
                                              cm.Parameters["@amount"].Value   =   Convert.ToInt32(dr["amount"]);  
                                              cm.Parameters.Add("@productID",SqlDbType.VarChar);  
                                              cm.Parameters["@productID"].Value   =   dr["productID"].ToString();  
                                              cm.ExecuteNonQuery();  
                                      }  
                                      trans.Commit();  
                              }  
                              catch  
                              {  
                                      trans.Rollback();  
                              }  
                              finally  
                              {  
                                      cnn.Close();  
                                      trans.Dispose();  
                                      cnn.Dispose();  
                              }  
                      }

    3、SQl server中的事务例子

    begin transaction
    save transaction A

    insert into demo values('BB','B term')
    rollback TRANSACTION A

    create table demo2(name varchar(10),age int)
    insert into demo2(name,age) values('lis',1)
    rollback transaction

      insert into demo values('BB','B term')

     commit TRANSACTION A

     commit TRANSACTION  

    4、注意

      1。事务必须在连接打开后BeginTransaction();

      2.事务添加到SqlCommand(sqlCommand.Transaction   =   sqlTransaction;   )

      3、其他数据库对应做相应调整

      4、可以用微软提供的一个dll,很方便.

     
  • 相关阅读:
    将.net core api 部署成windows服务
    根据2个经纬度点,计算这2个经纬度点之间的距离(通过经度纬度得到距离)
    .NET 基础知识 单文件部署和可执行文件 剪裁独立部署和可执行文件
    通过 InnoSetup 美化安装界面
    拼凑一个ABP VNext管理后台拼凑一个ABP VNext管理后台
    互联网软件的安装包界面设计Inno setup
    weinre  远程实时调试手机上的Web页面 JAVASCRIPT远程调试
    asp.net core web应用以服务的方式安装运行
    用 vue2 和 webpack 快速建构 NW.js 项目
    谷歌插件抓包 similarweb抓包
  • 原文地址:https://www.cnblogs.com/kingangWang/p/2280347.html
Copyright © 2011-2022 走看看