这是我的代码:
private const string CONNECTION_STRING
= "Driver={Microsoft dBase Driver (*.dbf)};"
+ "collatingsequence=ASCII;"
+ "defaultdir={0};"
+ "driverid=277;"
+ "maxbuffersize={1};"
+ "pagetimeout={2}";
string connString = string.Format(CONNECTION_STRING, filePath, MAX_BUFFER_SIZE, PAGE_TIMEOUT);
using (var _conn = new System.Data.Odbc.OdbcConnection(connString))
{
_conn.Open();
using (var _comm = _conn.CreateCommand())
{
_comm.CommandText = QUERY_STRING;
_comm.CommandType = CommandType.Text;
using (var rdr = _comm.ExecuteReader())
{
while (rdr.Read())
{
/*Do something*/
}
}
}
}
我收到的错误消息是 SQL 执行错误。执行的 SQL 语句:SELECT * FROM MyTable 错误源 odbcjt32.dll 错误消息 错误 [HY001][Microsoft][ODBC dBase Driver] 超出系统资源。
在查询之前和之后打开了几个 Gig 的 RAM 和 HD。这总是在第一次通过时有效,但在所有连续通过时都失败。
在 Win 7 64 和 .NET 4.0 中运行。
当我收到错误时,我最终重新启动以清除它。虽然我还没有尝试过只进行 GC 刷新。