我想在成功或失敗的情況下獲取消息。所以這兩個條件都應該從消息窗格返回一些東西。如何在.NET應用程序中從SQL Server messagePane獲取消息
這是我正在嘗試使用的代碼,但是這永遠不會調用conn_InfoMessage
。它總是跳過。
using (SqlConnection conn = new SqlConnection(connString))
{
conn.Open();
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = sp.StoredProcedureName;
cmd.Parameters.AddRange(parameters.ToArray());
cmd.CommandType = CommandType.StoredProcedure;
using (SqlDataReader dr = cmd.ExecuteReader())
{
if (dr.HasRows)
{
conn.InfoMessage += new SqlInfoMessageEventHandler(conn_InfoMessage);
pnlResults.Visible = true;
grdResults.DataSource = dr;
grdResults.DataBind();
}
}
lblInfo.Text = myMsg;
pnlInfo.CssClass = "ui-state-active";
}
conn.Close();
}
static void conn_InfoMessage(object sender, SqlInfoMessageEventArgs e)
{
myMsg += "/n" + e.Message ;
}
我添加了上面的代碼,但仍然沒有調用事件處理函數:conn.InfoMessage + = new SqlInfoMessageEventHandler(conn_InfoMessage); conn.FireInfoMessageEventOnUserErrors = true; conn.Open(); – ana
你怎麼知道它不叫?您是設置了一個斷點,還是沒有顯示在標籤上? –
在錯誤或警告期間使用斷點,我可以看到它調用。但是當沒有錯誤或成功時,它只是繞過代碼並轉到下一行。我希望它在存儲執行成功時工作 – ana