在SqlDataReader close 之前conn只能由一个SqlDataReader用

解决方案 »

  1.   

    若要创建 SqlDataReader,必须调用 SqlCommand 对象的 ExecuteReader 方法,而不直接使用构造函数。当正在使用 SqlDataReader 时,关联的 SqlConnection 在忙于服务 SqlDataReader,而且除了关闭以外不能对 SqlConnection 执行其他任何操作。除非调用 SqlDataReader 的 Close 方法,否则会一直处于此状态。例如,在调用 Close 之前,无法检索输出参数。在数据读取过程中由另一个进程或线程对结果集所作的更改可能对于 SqlDataReader 的用户可见。但是,确切的行为与执行时间有关。
      

  2.   

    在每个datareader的后面加上你逻辑上的处理的代码,然后关闭datareader,再用dataadapter进行生成新的datareader,或者为每一个datareader分配一个dataadapter。
      

  3.   

    你可以尝试使用DataSet,用三个DataTable分别保存你三个查询的到的结果
      

  4.   

    不好意思笔误,dataadapter应换作command对象,表示歉意
      

  5.   

    我用两个conn两个command,来分别负责一个datareader还是会出现这个错误