是否可以从中的T-SQL存储过程捕获打印输出.网

我有很多使用打印作为errorMessaging方式的遗留进程.例如,是否可以从下面的过程访问输出‘Word’?

-- The PROC
CREATE PROC usp_PrintWord AS
    PRINT 'word'
// Some C# Code to would like to pull out 'word'
SqlCommand cmd = new SqlCommand("usp_printWord", TheConnection);
cmd.CommandType = CommandType.StoredProcedure;
// string ProcPrint = ???

推荐答案

可以通过向连接上的InfoMessage事件添加事件处理程序来实现这一点.

myConnection.InfoMessage += new SqlInfoMessageEventHandler(myConnection_InfoMessage);

void myConnection_InfoMessage(object sender, SqlInfoMessageEventArgs e)
{
    myStringBuilderDefinedAsClassVariable.AppendLine(e.Message);
}

.net相关问答推荐

实体框架核心:Azure容器应用程序的执行超时已过期

StackExchange.Redis和NRedisStack包有什么不同?

.Net MAUI Android 无法与 API localhost 对话

我在哪里可以获得线程安全的 CollectionView?

如何从控制台应用程序中的 Task.WaitAll() 获取返回值?

C#6.0 字符串插值本地化

value 的默认参数必须是编译时间常数?

实例化具有运行时确定类型的对象

带有输入字段的消息框

如何将时间设置为当天的午夜?

.NET 的 String.Normalize 有什么作用?

为什么发布和调试模式下的代码行为不同?

何时何地使用 GetType() 或 typeof()?

用 double 替换 int 时的 Visual Studio 长编译

在关闭警告中访问 foreach 变量

让 String.Replace 只打整个单词的方法

错误 NU1605 检测到包降级

DLL 中有什么以及它是如何工作的?

从字节数组中读取 C# 中的 C/C++ 数据 struct

.NET Remoting 真的被弃用了吗?