未处理的“System.InvalidOperationException”类型的异常出现在 system.data.dll 中其他信息:ExecuteReader 需要打开的并且可用的连接。该连接的当前状态是 Closed。

解决方案 »

  1.   

    我照着你的方式试了一遍,第一次读取数据正常,然后把网线拔掉,再次读取数据出错,提示是通信线路出问题:end_of_file communication channel...当再次把网线接上,再取数据,出错,提示没有监听。退出程序,重新来一遍一切正常。
      

  2.   

    "System.Data.SqlClient.SqlException: 常规网络错误。请检查您的网络文档。
       at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream)
       at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
       at RoadSystem.BasicClass.Database.RunProc(String procName, SqlParameter[] prams) in c:\最新软件\roadsystem\basicclass\database.cs:line 29
       at RoadSystem.BasicClass.MasterBill.Addmasterbill(String fldBillNo, String fldUserId, Int32 fldFare, String fldImage, DateTime fldDateTime, String fldVehicleWayId, String fldClassId, String fldVehicleTypeId, String fldVehicleTypePriceID, Boolean fldCancelBill, Boolean fldDownMark) in c:\最新软件\roadsystem\basicclass\masterbill.cs:line 42
       at RoadSystem.frmMain.SaveData() in c:\最新软件\roadsystem\frmmdi.cs:line 1458"
      

  3.   

    我用try...catch()
    来处理异常,当出现异常时,选择重试,是可以再次读取数据,在我这边是可以实现的。
                               try
    {
    this.dsSmartHR1.Tables[0].Clear();
    this.daSmartHR.Fill(this.dsSmartHR1);
    }
    catch(Exception err)
    {
    Debug.Fail(err.Message);
    }
    不知道你的系统出现此类问题时,弹出错误时可否忽略或者重试?
      

  4.   

    to zhehui(小慧):
    这根用不用IP有关吗?能否说说?
    我试过楼主所提的情况,也出现了相同的问题,
    但是我可以通过忽略,重试来恢复重新读取数据。
      

  5.   

    数据适配器的SelectCommand或UpdateCommand或InsertCommand或DeleteCommand属性有一个CommandTimeOut可以设置,你试试看。
      

  6.   

    如,设置:this.daSmartHR.SelectCommand.CommandTimeout=10;//默认一般是30,单位应该是毫秒吧。
      

  7.   

    CommandTimeout获取或设置在终止对执行命令的尝试并生成错误之前的等待时间,单位是秒。
    看来不是这个了。
      

  8.   

    我现在的连接是一个数据连接对应两个不同的数据字符串,打开的时候赋直,问题是我断开的时候,对本机的sqlserver也出错,能不让本机出错也可以