[英]dataadapter.fill command randomly returns 0 rows under heavy load when connection pooling is enabled
我們在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;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.