C# 从存储的进程获取SQL打印消息
我有一个存储的进程,它将打印消息输出到消息选项卡。 我想抓取这些,并在过程完成后将它们显示给用户 这是我正在尝试的,但它回来时是空的。这也不是因为我正在清理StringBuilder。我将clear移到Open,仍然给出相同的结果C# 从存储的进程获取SQL打印消息,c#,C#,我有一个存储的进程,它将打印消息输出到消息选项卡。 我想抓取这些,并在过程完成后将它们显示给用户 这是我正在尝试的,但它回来时是空的。这也不是因为我正在清理StringBuilder。我将clear移到Open,仍然给出相同的结果 private static void conn_InfoMessage(object sender, SqlInfoMessageEventArgs e) { sqlMessages.AppendLine(e.Message); } private sta
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);
}
}
}
private static void conn_InfoMessage(对象发送方,SqlInfoMessageEventArgs e)
{
如果(例如错误!=null)
{
对于(int i=0;i
可能重复@EkoostikMartin它对我不起作用尽管我不知道这段代码是如何编译的,你能包含完整的类吗?所有方法都提供了