0
私はhavaアクセスDB、私の関数(C#.net)の1つは、トランザクションでSQLを4000回以上実行する必要があります。長期実行クエリによってリソースが消費されないようにするにはどうすればよいですか?
実行後、DBファイルが排他的に開いているようです。 * .ldbファイルが存在し、そのファイルが長時間そこにとどまっているためです。
これは、リソースを間違って廃棄することによって引き起こされますか?
private int AmendUniqueData(Trans trn)
{
int reslt = 0;
foreach (DataRow dr in _dt.Rows)
{
OleDbParameter[] _params = {
new OleDbParameter("@templateId",dr["Id"].ToString()),
new OleDbParameter("@templateNumber",dr["templateNumber"].ToString())
};
string sqlUpdateUnique = "UPDATE " + dr["proformaNo"].ToString().Substring(0,2) + "_unique SET templateId = @templateId WHERE [email protected]";
reslt = OleDBHelper.ExecSqlWithTran(sqlUpdateUnique, trn, _params);
if (reslt < 0)
{
throw new Exception(dr["id"].ToString());
}
}
return reslt;
}
トランザクション:
using (Trans trn = new Trans())
{
try
{
int reslt=AmendUniqueData(trn);
trn.Commit();
return reslt;
}
catch
{
trn.RollBack();
throw;
}
finally
{
trn.Colse();
}
}
データベース接続を閉じていることを確認してください。 –