OleDbException超出系统资源

Pau*_*uly 7 c# oledbexception

以下代码执行简单的插入命令.如果连续调用2000次(插入2,000行),则抛出一个带有message ="System Resources Exceeded"的OleDbException.还有什么我应该做的事情来释放资源吗?

using (OleDbConnection conn = new OleDbConnection(connectionString))
using (OleDbCommand cmd = new OleDbCommand(commandText, conn))
{
    conn.Open();
    cmd.ExecuteNonQuery();
}
Run Code Online (Sandbox Code Playgroud)

Fly*_*wat 6

系统资源超出错误不是来自托管代码,它来自你杀死你的数据库(JET?)

你正在开辟许多联系,快速的方式......

一些技巧:

  • 通过不为每个命令打开新连接来避免往返,并使用单个连接执行插入.
  • 确保数据库连接池正常工作(不确定它是否适用于OLEDB连接).
  • 考虑使用更优化的方式插入数据.

你试过这个吗?

using (OleDBConnection conn = new OleDBConnection(connstr))
{
    while (IHaveData)
    {
        using (OldDBCommand cmd = new OldDBCommand())
        {
            cmd.Connection = conn;
            cmd.ExecuteScalar();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)