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

    事务->:事务是恢复和并发控制的基本单位

                  ->事务具有四个特性:原子性、隔离性、一致性、持久性。这四个特性通常称为ACID

           Begin transaction/tran   --开始事务

           Commit transaction/tran  --提交事务

           Rollback transaction/tran  --回滚事务

    Select * from userinfo with(nolock)       --表示在查询的时候不加共享锁

    一个简单的小案例

    using (SqlConnection conn = new SqlConnection(connStr))

                {

                    conn.Open();

                    //开始事务

                    SqlTransaction ts = conn.BeginTransaction();

                    try

                    {

                        string sql = "insert into BuyRecord(UID,PID,BRNum,BRTime) values(@uid,@pid,@num,@time)";

                        SqlCommand cmd = new SqlCommand(sql, conn);

                        cmd.Transaction = ts;

                        cmd.Parameters.AddWithValue("@uid", brm.UID);

                        cmd.Parameters.AddWithValue("@pid", brm.PID);

                        cmd.Parameters.AddWithValue("@num", brm.BRNum);

                        cmd.Parameters.AddWithValue("@time", DateTime.Now);

                        cmd.ExecuteNonQuery();

                        string uptsql = " update ProductInfo set ProductNum=ProductNum-@buyNum where ProductID=@id";

                        cmd.CommandText = uptsql;

                        cmd.Parameters.AddWithValue("@buyNum", brm.BRNum);

                        cmd.Parameters.AddWithValue("@id", brm.PID);

                        cmd.ExecuteNonQuery();

     

                        ts.Commit();

                        return 1;

                    }

                    catch (Exception)

                    {

                        ts.Rollback();

                        return -1;

                        throw;

                    }

  • 相关阅读:
    [转载]spring使用PropertyPlaceholderConfigurer加载properties文件处理中文乱码
    [转载]使用@value注解注入properties配置信息
    [JAVA]使用HttpURLConnection下载文件
    [转载]在Java代码运行时获取当前和调用者的行号,方法名,类名,文件名
    [转载]linux下使用tar命令
    暂时解决java.lang.IllegalStateException: It is invalid to call isReady() when the response has not been put into non-blocking mode *
    oracle使用imp导入数据覆盖(overwirte)原有表数据
    线性基
    Matching Problem 暴力
    Alternative Accounts 贪心匹配
  • 原文地址:https://www.cnblogs.com/tony-brook/p/7803300.html
Copyright © 2011-2022 走看看