0
나는 hava 액세스 DB를, 내 함수 (C# .net) 중 하나를 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();
}
}
데이터베이스 연결을 닫아야합니다. –