zoukankan      html  css  js  c++  java
  • mysql 事务测试

    public decimal TransactionTest()
    {
    decimal v = 0;
    using (MySqlConnection con = new MySqlConnection(connectionString))
    {
    con.Open();
    using (MySqlTransaction trans = con.BeginTransaction())
    {
    try
    {
    using (MySqlCommand cmd = new MySqlCommand("select debit_balance from c_account_customer where id=1 for update;", con, trans))
    {
    v = (decimal)cmd.ExecuteScalar();
    }
    using (MySqlCommand cmd = new MySqlCommand("insert into abacus.testvalue (val) values (@db);", con, trans))
    {
    cmd.Parameters.AddWithValue("@db", v);
    cmd.ExecuteNonQuery();
    cmd.Parameters.Clear();
    }
    using (MySqlCommand cmd = new MySqlCommand(" insert into abacus.c_entry_customer(customer_id, item_id, ref_id, direction, amount, operation, operation_id, note) values(1, 1, 1, 1, 1, 1, 1, 1); ", con, trans))
    {
    cmd.ExecuteNonQuery();
    }
    using (MySqlCommand cmd = new MySqlCommand(" insert into abacus.c_entry_customer(customer_id,item_id,ref_id,direction,amount,operation,operation_id,note) values (1,2,1,1,1,1,1,1);", con, trans))
    {
    cmd.ExecuteNonQuery();
    }
    using (MySqlCommand cmd = new MySqlCommand("update abacus.c_account_customer set debit_balance=@db+1 where id=1;", con, trans))
    {
    cmd.Parameters.AddWithValue("@db", v);
    cmd.ExecuteNonQuery();
    cmd.Parameters.Clear();
    }
    trans.Commit();
    }
    catch (Exception ex)
    {
    trans.Rollback();
    }
    finally
    {
    con.Close();
    }
    return v;
    }
    }
    }
  • 相关阅读:
    我的大学学习之路
    拉勾上的一道题目
    python中文处理之encode/decode函数
    几个容易出错的css盒子模型细节
    洗牌算法shuffle
    判断正整数是否对称
    一种快速求fibonacci第n个数的算法
    利用正则表达式作为string.split seprator
    docker部分命令
    idea上传项目到GitHub
  • 原文地址:https://www.cnblogs.com/zhangzhi19861216/p/5123527.html
Copyright © 2011-2022 走看看