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();
    }
    

      

  • 相关阅读:
    使用Docker在本地搭建Hadoop分布式集群
    微博推荐 第三个map 源码
    对象
    http无状态(stateless)
    理解http的无连接
    http响应报文之首部行
    http响应报文之状态行
    http响应报文
    http请求报文之首部行
    http请求之请求数据
  • 原文地址:https://www.cnblogs.com/zhangzhu/p/3276307.html
Copyright © 2011-2022 走看看