Используя SqlCommand для выполнения запроса без запроса, можете ли вы получить текст, обычно отправленный в "Сообщения"?

При использовании SqlCommand для выполнения не-запроса (например, восстановления базы данных) можно ли программно получить текст, который обычно будет опубликован на вкладке "Сообщения", если вы используете Management Studio? И если да, то как?

Ответы

Ответ 1

Да, на объекте SqlCommand, называемом SqlInfoMessage, есть событие, которое можно подключить:

SqlConnection _con = new SqlConnection("server=.;database=Northwindintegrated Security=SSPI;");

_con.InfoMessage += new SqlInfoMessageEventHandler(_con_InfoMessage);

Обработчик событий будет выглядеть следующим образом:

static void _con_InfoMessage(object sender, SqlInfoMessageEventArgs e)
{
    string myMsg = e.Message;            
}

"e.Message" - это сообщение, распечатанное в окне сообщений в SQL Server Mgmt Studio.

Марк