Как предотвратить использование ресурсов длительными запросами? - PullRequest
0 голосов
/ 19 марта 2012

У меня есть доступ к БД, одна из моих функций (C # .net) должна выполнить SQL-запрос более 4000 раз с транзакцией.

Кажется, что после выполнения файл БД остается открытым исключительно.потому что существует файл * .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 templateNumber=@templateNumber";

        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();
        }
    }

1 Ответ

0 голосов
/ 02 апреля 2012

забудьте закрыть соединение с базой данных.

...