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,很方便.

  • 相关阅读:
    selinux 设置的彻底理解 并要 熟练经常的使用
    关于linux下自定义的 alias文件和自定义函数库的通用写法(只适合自己的)
    linux下关于mysql的命令的用法
    彻底地/ 终于地, 解决 关于apache 权限的问题了:: 修改 DocumentRoot后的 403错误: have no permission to access / on this server
    php的内核组成模块和运行原理
    彻底了解 suid, sgid ,sticky权限
    php编程疑难解决-1
    再次安装fedora23的一些遗留问题的解决
    word如何替换行首?
    php高级开发参考地址
  • 原文地址:https://www.cnblogs.com/QingKing/p/3913463.html
Copyright © 2011-2022 走看看