以字符串形式获取PRINT sql的输出

时间:2014-08-28 09:46:18

标签: c# sql sql-server tsql

一个小问题

我正在尝试通过c#运行数据库查询。 我正在尝试在DB上打印一些我希望从C#

返回的字符串
string altertable1 = "print 'scfs'";
SqlCommand altertable = new SqlCommand(createtablecommand, connection);

string x = altertable.(function which return the printed query result);

所以我想要的是 x 值将是 scfs ;

2 个答案:

答案 0 :(得分:1)

我不认为有一种简单的方法来捕获PRINT命令的输出,因为它不会返回通过SqlDataReader对象可读的任何行。

我会考虑一种解决方案,它将查询的输出消息存储到只有一个#outputMessages列的临时表(例如varchar)中。当您的查询执行完成后,我将仅使用#outputMessages捕获存储在SELECT * FROM #outputMessages表中的输出消息。 完成输出消息捕获过程后,只需删除临时表。

另请阅读@Corak链接的question

答案 1 :(得分:0)

所以我以不同的方式做到了 我声明了一个变量,并在该变量中获取我的print语句数据而不是打印变量,我在最后一部分中选择了该变量。

现在对于C#,我使用altertable.ExecuteScalar将第一行作为字符串返回,所以对我来说这就是我需要的。

string altertable1 =" print' scfs'&#34 ;; SqlCommand altertable = new SqlCommand(createtablecommand,connection);

string x = altertable。(返回打印查询结果的函数);