zoukankan      html  css  js  c++  java
  • 如果分配给命令的连接位于本地挂起事务中,ExecuteNonQuery 要求命令拥有事务。命令的 Transaction 属性尚未初始化

    DbConnection dbc = database.CreateConnection();
    DbTransaction dbtt = null;
    try
    {
    dbc.Open();
    dbtt = dbc.BeginTransaction();
    DbCommand storedProcCommand = this.database.GetStoredProcCommand("sp_cc_Category_Create");
    
    storedProcCommand.Connection = dbc;//确定了command和dbc的关系,确定关系以后要使用这个dbc开始的事务即dbtt
    storedProcCommand.Transaction = dbtt;//这里就指定了使用的事务
    storedProcCommand.ExecuteNonQuery();  //这里不要忘记或者写错
    
    //假如又创建了一个command也是使用的这个链接,也要使用这个事务,还要注意执行
    
    DbCommand storedProcCommandnew = this.database.GetStoredProcCommand("sp_cc_Category_update");
    
    storedProcCommandnew .Connection = dbc;//同上
    storedProcCommandnew .Transaction = dbtt;//同上
    
    //storedProcCommand .ExecuteNonQuery();  //如果错写成上面的commond会报同样的错误
    storedProcCommandnew .ExecuteNonQuery();  //这里如果是复制过来的不要写错哦,
    
    dbtt.Commit();
    
    }
    catch
    {
    dbtt.Rollback();
    }
    finally
    {
    if (dbc.State == ConnectionState.Open)
    dbc.Close();
    }
    

      

  • 相关阅读:
    CF827D Best Edge Weight
    克鲁斯卡尔重构树总结
    模拟赛 提米树 题解 (DP+思维)
    luogu P4781 【模板】拉格朗日插值
    luogu P5826 【模板】子序列自动机
    子序列自动机
    luogu P1368 工艺 /【模板】最小表示法
    最小表示法
    SP1812 LCS2
    FZOJ 3602 T2
  • 原文地址:https://www.cnblogs.com/zhangzhu/p/3276307.html
Copyright © 2011-2022 走看看