Получите Query/CommandText, который вызвал SQLException

У меня есть регистратор, который записывает информацию об исключении для нашего в приложениях дома.

Когда мы регистрируем исключения SQL, было бы супер полезно, если бы мы видели фактический запрос, который вызвал исключение.

Существует ли способ, которым мы можем достигнуть этого?

12
задан Reinstate Monica 3 June 2010 в 10:01
поделиться

1 ответ

Исключение SqlException не имеет ссылки на SqlCommand, вызвавшее исключение. В вашем регистраторе нет способа сделать это. Что можно сделать, так это поймать исключение SqlException в методе, который выполняет SqlCommand и обернуть его в более описательное исключение. Пример:

using (var command = new SqlCommand(connection, "dbo.MyProc"))
{
    try
    {
        command.Execute();
    }
    catch (DbException ex)
    {
        throw new InvalidOperationException(ex.Message + " - " + command.Text, ex);
    }
}

Таким образом можно записать это более выразительное исключение.

17
ответ дан 2 December 2019 в 19:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: