zoukankan      html  css  js  c++  java
  • 解决ExecuteReader requires the command to have a transaction when the connection assigned to the command is in a pending local transaction.

    ExecuteReader requires the command to have a transaction when the connection assigned to the command is in a pending local transaction.

    同一个connection,在update的command上启动了一个transaction,后面一个查询的command,没有设置transaction属性,所以出了这个exception.

    解决方法:

    将update的command加到select的command上去.

     

    SqlConnection conn = new SqlConnection("");
                SqlCommand updateCmd 
    = new SqlCommand("update", conn);
                updateCmd.Transaction 
    = conn.BeginTransaction();
                
    int rows = updateCmd.ExecuteNonQuery();

                SqlCommand selectCmd 
    = new SqlCommand("select ", conn);
                selectCmd.Transaction 
    = updateCmd.Transaction;//important

                SqlDataReader reader 
    = selectCmd.ExecuteReader();
                
    //.
  • 相关阅读:
    [已解决] Python logging 重复打印日志信息
    scrapy
    Python 元编程
    MySQL性能优化 分区
    SQL Mode
    Golang 接口
    Python partial
    栈、队列(链表实现)
    Golang 位向量
    Java50题——学习以及思考
  • 原文地址:https://www.cnblogs.com/rockniu/p/1197672.html
Copyright © 2011-2022 走看看