我想在成功或失败的情况下获取消息。所以这两个条件都应该从消息窗格返回一些东西。如何在.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