在程序访问数据并发比较大时(有大量更新和查询操作进行),当用户数比较大时,总是报已有相关DataReader必须关掉的提示,我已经把所有用到DataReaer的地方全改成DataTable了,还是如此,急啊...

解决方案 »

  1.   

    关了,很多更新操作是通过 Datatable.GetChanges() 来更新的,会不会和这个有问题?
      

  2.   

    System.InvalidOperationException: 已有打开的与此连接相关联的 DataReader,必须首先将它关闭。Server stack trace: 
       at System.Data.SqlClient.SqlCommand.ValidateCommand(String method, Boolean executing)
       at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream)
       at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior)
       at System.Data.SqlClient.SqlCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior)
       at System.Data.Common.DbDataAdapter.FillFromCommand(Object data, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
       at System.Data.Common.DbDataAdapter.Fill(DataTable dataTable, IDbCommand command, CommandBehavior behavior)
       at System.Data.Common.DbDataAdapter.Fill(DataTable dataTable)
      

  3.   

    DataTable dt = new DataTable(tableName);
    SqlDataAdapter adp = new SqlDataAdapter(sSQL,_conn);
    adp.Fill(dt);
    adp.Dispose();
      

  4.   

    已有打开的与此连接相关联的 DataReader---再次使用同一个Connection之前,必须使用这个connection的DataReader关闭。
    DbDataReader.Close()函数。
      

  5.   

    自己都说是笨鸟了,你有没有看我的代码,里面根本没有DataRader