[英]Get SQL print messages from stored proc
我有一个存储过程,可将打印消息输出到消息选项卡。 我想抓住这些并将它们在处理完成后再显示给用户。
这是我正在尝试的方法,但它又变空了。 这也不是因为我正在清除StringBuilder。 我将清除操作移至“打开”状态,但仍给出相同的结果。
private static void conn_InfoMessage(object sender, SqlInfoMessageEventArgs e)
{
sqlMessages.AppendLine(e.Message);
}
private static void Open()
{
if (conn.State.Equals(ConnectionState.Closed))
{
conn.InfoMessage += conn_InfoMessage;
conn.Open();
}
}
private static void Close()
{
if (conn.State.Equals(ConnectionState.Open))
{
conn.InfoMessage -= conn_InfoMessage;
sqlMessages.Clear();
conn.Close();
}
}
public static string RemoveContacts(int customerCode)
{
try
{
Open();
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "s_RemoveAllCustomerContacts";
cmd.Parameters.AddWithValue("@customerCode", customerCode);
cmd.ExecuteNonQuery();
return sqlMessages.ToString();
}
}
catch (SqlException ex)
{
throw new ArgumentException(ex.Message);
}
finally
{
Close();
}
}
好的,所以我想出了答案,不得不使用以下内容
private static void conn_InfoMessage(object sender, SqlInfoMessageEventArgs e)
{
if (e.Errors != null)
{
for (int i = 0; i < e.Errors.Count; i++)
{
sqlMessages.AppendLine(e.Errors[i].Message);
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.