![](/img/trans.png)
[英]How to get output from SQL Server Insert Command with more than one row using C# ADO.Net?
[英]How to get raw output from SQL command in C#
我有以下功能:
private IDataReader ExecuteReader(OdbcCommand command) {
var connection = new OdbcConnection(MyConnectionStringVar);
command.Connection = connection;
command.Connection.Open();
command.CommandTimeout = 0;
return command.ExecuteReader(CommandBehavior.CloseConnection);
}
我可以这样使用它:
var query = "SELECT * FROM TableName";
using (var command = new OdbcCommand(query))
{
using (var reader = ExecuteReader(command))
{
while (reader.Read())
{
// get the value of ColumnName for the
// current row in the result set:
// reader["ColumnName"];
}
}
}
无论如何,我可以从我的select语句中得到所有返回的原始转储吗?
我希望能够使用DESCRIBE
或类似的命令来获取其他信息,但我不想更改一堆代码只是为了每次都从正确的列名中读取。 有时像SELECT *
,我不知道列名是什么。
(我处于“暗中编码”的情况,而服务器却没有太多的权限。由于以前的开发人员已经安装了SQL Manager for DB2 ,因此无法使用SQL Manager for DB2 ,并且免费试用期已结束)
您可以使用reader.GetValues(...)
将记录中的所有值都放入一个object[]
。
var valueArray = new object[reader.FieldCount];
reader.GetValues(valueArray);
看一下InfoMessage事件。 它可能会发送您所需的信息,因为我没有DB2,所以我可以进行测试。
顺便说一句,由于您再也没有SQL Manager,因此可以在网上找到其他免费的SQL工具。
编辑:我误会了。 我以为您想要像从PRINT语句和一些系统命令中获得的输出。 DarkFalcon的答案是正确的……您可以做一个简单的for循环和输出阅读器[i]。 您可能希望查看列的数据类型以帮助格式化输出,但是您可以轻松地遍历所有内容。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.