SubSonic - нужно ли / как явно закрывать соединение с базой данных? - PullRequest
0 голосов
/ 02 марта 2010

Традиционно при использовании команды DbCommand для извлечения данных из sproc рекомендуется использовать что-то вроде следующего:

DbCommand cmdDbCommand...
dbGetData = DatabaseFactory.CreateDatabase("MyDatabase");
cmdDbCommand = dbGetData.GetStoredProcCommand("MySproc");
.
.
.
try
{
...
}
catch (System.Exception ex)
{
    if (cmdDbCommandcmdDbCommand != null)
    {
        if (cmdDbCommand.Connection.State == ConnectionState.Open)
        {
            cmdDbCommand.Connection.Close();
            cmdDbCommand.Dispose();
        }
    }
}

Теперь, учитывая следующий тип вызова SubSonic:

try
{
    StoredProcedure sp = SPs.GetSprocData(someID, result, errorMessage);
    dsResults = sp.GetDataSet();

    intResGetUserDetails = (int)sp.OutputValues[0];
    errorMessage = (string)sp.OutputValues[1];
}
catch (System.Exception ex)
{
...
}

Как я могу явно убедиться, что соединение с базой данных было закрыто?

1 Ответ

1 голос
/ 06 марта 2010

Соединение закрывается после завершения sproc. Это встроено в Sobsonic 2.

...