我特林從我的C#應用程序運行SQL腳本,無法獲得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#應用程序端處理這個問題?如果我更改嚴重性級別,它可以工作 –