Asp.net 启用连接池时,dataadapter.fill命令在重载情况下随机返回0行

Asp.net 启用连接池时,dataadapter.fill命令在重载情况下随机返回0行,asp.net,ado.net,Asp.net,Ado.net,我们在ASP.NET应用程序中遇到了ADO.NET命令的问题,我们没有把它归结到这一点 不会返回任何错误,但dataadapter.fill命令只返回0行 这只会在查询正常执行的部分时间(绝大多数时间)发生。 我们知道SQL server使用SQL profiler没有返回错误,查询应该返回重新运行dataadapter的结果。fill确实返回一些行,并且这些行始终存在于数据库中 这似乎只有在打开ado.net连接池并且服务器处于重载状态时才会发生 我们正在使用SqlClient连接/命令对象并

我们在ASP.NET应用程序中遇到了ADO.NET命令的问题,我们没有把它归结到这一点

不会返回任何错误,但dataadapter.fill命令只返回0行

这只会在查询正常执行的部分时间(绝大多数时间)发生。 我们知道SQL server使用SQL profiler没有返回错误,查询应该返回重新运行dataadapter的结果。fill确实返回一些行,并且这些行始终存在于数据库中 这似乎只有在打开ado.net连接池并且服务器处于重载状态时才会发生


我们正在使用SqlClient连接/命令对象并连接到SQL Server数据库。到目前为止,我们在SQL 2005和SQL 2008中看到了这种行为。select语句是否返回多个结果集?如果是,则您可能希望使用:

using(DbDataAdapter dataAdapter = _providerFactory.CreateDataAdapter())
{
  dataAdapter.TableMappings.AddRange(tableMappings);
  dataAdapter.SelectCommand = selectCommand;

  // This is crucial for HasChanges() to return the correct value
  dataAdapter.AcceptChangesDuringFill = false;

  MyTypedDataSet dataSet = new MyTypedDataSet();
  dataSet.EnforceConstraints = false;
  dataAdapter.Fill(dataSet);
  bool hasData = dataSet.HasChanges();
  return hasData;
}