Я Тринг запустить SQL скрипт из моего C# приложенияНе удается получить сообщение об ошибке SQL
string sql = File.ReadAllText(sqlFile);
string[] QueryArray= sql.Split(new string[] { "GO" }, StringSplitOptions.RemoveEmptyEntries);
foreach (string query in QueryArray)
{
cmd = new SqlCommand(query, Connection);
cmd.ExecuteNonQuery();
}
Тогда мой сценарий содержит RAISERROR заявление
RAISERROR ('Cannot procees' , 20, 1) WITH LOG
При попытке открыть это сообщение об ошибке образуют мой C#, это не произойдет. Сообщение об ошибке возвращается мне:
A transport-level error has occurred when receiving results from the server. (provider: Shared Memory Provider, error: 0 - No process is on the other end of the pipe.)
Где я поступил не так. Что мне нужно сделать, чтобы получить ошибку, возвращаемую raiserror
Ваш 'RAISERROR' определяет тяжесть 20, что делает SQL Server завершает текущий процесс ...... использовать что-то между 11 и 19 вместо этого! Тогда ваш процесс останется на месте, и вы сможете получить содержимое своей ошибки с SQL Server –
Я предполагаю, что OP даже не правильно открыл соединение с базой данных. – dcaswell
@ marc_s- Но волшебным образом я смог получить ошибку случайным образом. Но очень редко. Это возможно. Без изменения уровня серьезности, есть ли способ справиться с этим со стороны моего приложения C#? Если я изменю уровень серьезности, он работает –