C# SqlDataReader仅返回SqlCommand中的第一个选择
我正在使用来在SqlServer2005数据库上执行sql语句。(我也试过了。) 如果我在SQLServerManagementStudio中执行此sql,我可以将“结果发送到文本”。 我想在我的C#代码中捕获此文本 和是相关的问题,但不相同: “我的sql”在“打印”语句旁边还包含不同的select语句:C# SqlDataReader仅返回SqlCommand中的第一个选择,c#,sql-server-2005,text,C#,Sql Server 2005,Text,我正在使用来在SqlServer2005数据库上执行sql语句。(我也试过了。) 如果我在SQLServerManagementStudio中执行此sql,我可以将“结果发送到文本”。 我想在我的C#代码中捕获此文本 和是相关的问题,但不相同: “我的sql”在“打印”语句旁边还包含不同的select语句: PRINT 'We are here' SELECT Name FROM Table1 -- do some logic SELECT Name, Country FROM Table1 P
PRINT 'We are here'
SELECT Name FROM Table1
-- do some logic
SELECT Name, Country FROM Table1
PRINT 'We are done'
(“奇怪的sql”我听你说。我知道,但这就是我们长期使用的维护脚本的样子。)
我可以使用SqlConnection.InfoMessage单独捕获打印语句
但是SqlDataReader似乎不支持两个select语句,这两个语句都具有不同的FieldCount
恐怕我被Process.Start和sql server命令行sqlcmd卡住了,无法读取输出,但我正在寻找更像API的东西
提前谢谢 您必须调用DataReader才能获得第二组结果。SqlDataReader应该可以工作。使用
Read
方法浏览第一次选择的行,并使用NextResult
移动到第二次选择的结果。像这样:
do {
while (dataReader.Read()) {
//... process one row
}
} while (dataReader.NextResult()) //go to the results of the next SELECT