C# 读取大型.accdb文件引发异常“;现有连接被远程主机强制关闭;
我调试了一些旧的ASP.NET应用程序,它们试图读取一个巨大的.accdb文件(大约550000行)。代码如下:C# 读取大型.accdb文件引发异常“;现有连接被远程主机强制关闭;,c#,asp.net,.net,ms-access,C#,Asp.net,.net,Ms Access,我调试了一些旧的ASP.NET应用程序,它们试图读取一个巨大的.accdb文件(大约550000行)。代码如下: OleDbConnection sourceConnection = new OleDbConnection( "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + destinationFile); OleDbDataAdapter sourceAdapter = new OleDbDataAd
OleDbConnection sourceConnection = new OleDbConnection(
"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + destinationFile);
OleDbDataAdapter sourceAdapter = new OleDbDataAdapter("select * from [" + tableName + "]", sourceConnection);
DataSet sourceDataSet = new DataSet();
try
{
sourceConnection.Open();
sourceAdapter.AcceptChangesDuringFill = false;
sourceAdapter.Fill(sourceDataSet, tableName);
}
catch (Exception ex)
{
_trace.TraceEvent(TraceEventType.Error, 0, ex.Message);
}
finally
{
sourceConnection.Close();
}
在某个时刻,我遇到了一个例外:
“无法从传输连接读取数据:远程主机强制关闭了现有连接”
有人知道它可能是什么以及如何修复它吗?
据我所知,重写SQL查询以按小块检索数据是最好的选择。我只需使用access内置的升迁向导将其全部放入SQL Express数据库,并更改连接字符串 请注意,不要这样做:
"select * from [" + tableName + "]"
将其改为参数化查询
"select * from [" + tableName + "]"