【问题标题】:Get the output of a PRINT sql in string以字符串形式获取 PRINT sql 的输出
【发布时间】:2014-08-28 09:46:18
【问题描述】:

一个小问题

我正在尝试通过 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;

【问题讨论】:

  • 如果它必须具体是PRINT,我不确定有没有办法。
  • 你能用 SELECT 而不是 PRINT 吗?
  • 它不是专门选择实际上我已经声明了一个获取数据的变量,我需要在c#中

标签: c# sql sql-server tsql


【解决方案1】:

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

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

另请阅读@Corak 链接的question

【讨论】:

    【解决方案2】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-07-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-13
      • 2013-10-15
      • 2016-02-20
      • 2011-10-25
      相关资源
      最近更新 更多