zoukankan      html  css  js  c++  java
  • C# 事务

    在执行sql语句或存储过程时,为了避免执行出错,对数据库进行错误修改。为sql语句加上事务,出错时回滚。

    两种方法:

    一:在C# 代码中加事务例如

    public static int UpdatePassWord(UserModel userModel)
           {
               int num = 0;
               OleDbConnection Conn = DBHelper.Connection;
               OleDbCommand Comm = new OleDbCommand("", Conn);
               OleDbTransaction trans = Conn.BeginTransaction();
               Comm.Transaction = trans;
               try
               {
                   string sql = "UPDATE Users1 SET [PassWord]=@PassWord where LoginName = @LoginName";
    
                   OleDbParameter[] paras ={
                                           
                                         new OleDbParameter("@password",Translate.Encrypt(userModel.PassWord)),
                                         new OleDbParameter("@loginname",Translate.Encrypt(userModel.LoginName)),
                                        };
                   //int num = DBHelper.ExecuteCommand(sql, pares);
                   //return num;
                   Comm.CommandText = sql;
                   Comm.Parameters.AddRange(paras);
                   num = Comm.ExecuteNonQuery();
                   if (num == 0)
                       throw new Exception("保存出错,稍后重试");
                   trans.Commit();
               }
               catch (Exception ex)
               {
                   trans.Rollback();
                   num = 0;
               }
               finally
               {
                   Conn.Close();
               }
               return num;
           }

    二:在存储过程中加事物,例如

    set ANSI_NULLS ON
    set QUOTED_IDENTIFIER ON
    GO
    
    
    ALTER PROCEDURE [dbo].[PosKind_Add]
    (
    @kind varchar(100),
    @number varchar(50),
    @ShowOrder int
    )
     AS
    declare @CurrentError int
    begin transaction
    
    insert into PosKind(kind,number,ShowOrder)Values(@kind,@number,@ShowOrder)
    
    
    select @CurrentError = @@Error
    if @CurrentError != 0
    begin
    rollback transaction
    goto ErrorHead
    end
    commit transaction
    
    ErrorHead:
    
    return 
  • 相关阅读:
    web框架和Django框架的初识
    外键的变种,单表的查询,多表的查询
    数据库的安装与初识
    响应式设计中几个class区别
    Velocity+Java较全教程
    Web开发基础
    AutoCompleteTextView不能使用的问题
    Http中Cookie与Set-Cookie头
    Java Web 乱码
    Karel运行环境配置
  • 原文地址:https://www.cnblogs.com/chiyueqi/p/2914176.html
Copyright © 2011-2022 走看看