• 如果分配给命令的连接位于本地挂起事务中,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();
    }
    

      

  • 相关阅读:
    IIS7最大上传附件大小配置
    数据表的identity
    服务器×××上的MSDTC不可用解决办法——Orchard(转)
    IOS项目中使用全局变量
    九宫格解锁的实现
    UINavigationControlle类详解
    jar仓库
    django安装
    django入门
    值得阅读的pyhon文章
  • 原文地址:https://www.cnblogs.com/zhangzhu/p/3276307.html
Copyright © 2020-2023  润新知