jan*_*jan 4 c# text sql-server-2005
我正在使用SqlCommand在SqlServer2005数据库上执行sql语句.(我也试过DbCommand.)
如果我在SQL Server Management Studio中执行此sql,我可以发送"结果到文本".我想在我的C#代码中捕获这个文本.
我的sql在print语句旁边还包含不同的select语句:
PRINT 'We are here'
SELECT Name FROM Table1
-- do some logic
SELECT Name, Country FROM Table1
PRINT 'We are done'
Run Code Online (Sandbox Code Playgroud)
(" Strange sql "我听到你说.我知道,但这就是我们长期维护脚本的样子.)
我可以使用SqlConnection.InfoMessage单独捕获PRINT语句.
但是SqlDataReader似乎不支持2个select语句,两者都使用不同的FieldCount.
我担心我会遇到Process.Start和sql server命令行sqlcmd并读取输出,但我正在寻找更多的API'ish.
提前致谢!
SqlDataReader应该工作.使用该Read方法遍历第一个选择的行,并NextResult移动到第二个选择的结果.像这样:
do {
while (dataReader.Read()) {
//... process one row
}
} while (dataReader.NextResult()) //go to the results of the next SELECT
Run Code Online (Sandbox Code Playgroud)