sql - 使用 .NET 从 SQL 过程返回多列

标签 sql sql-server vb.net stored-procedures

我正在使用this vb.net 代码文件来调用过程来获取日期(除其他外)。当我在 SQL 2005 Server Management Studio 中执行此过程时,我得到大约 10 列。然而,当我执行这段代码时,数据集似乎只有一个索引值,也许我误解了什么。当我改变这个时

ds.Tables(0).Rows.Count.ToString

ds.Tables(1).Rows.Count.ToString  <---changing the index value to 1 
(or higher)

我没有得到任何信息。所以我的问题是;

DataSet 是否包含其他列,只是没有像数组一样索引?我想要做的是选择要过滤掉哪些列,并将其余列转换为 JSON 格式的字符串。任何有关如何实现这一目标的建议也将不胜感激

最佳答案

您正在谈论数据“列”,但您的代码片段正在处理数据表(结果集)。

即 如果你的存储过程做了这样的事情:

SELECT Column1, Column2, Column3
FROM YourTable
WHERE ID = 123

那么您的数据集中将有 1 个 DataTable,因为返回 1 个结果集:ds.Tables(0)。这将包含 3 列:ds.Tables(0).Columns(n),其中 n 为 0 到 2。

关于sql - 使用 .NET 从 SQL 过程返回多列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2307338/

相关文章:

SQL - SELECT 子句中的递归条件

java - Hql查询优化-返回索引id或整个对象

sql - 加入两个子查询或一个查询与一个子查询 SQL Server 2008

sql-server - 将标识列复制到另一个表中

c++ - 解密导致 Rijndael 和 256 block 大小的乱码

.net - 我可以在面向 .NET 3.5 SP1 的同时使用 .NET 4 功能吗?

mysql - 如何将当前行的值传递到 SQL 中的子查询中?

mysql - 表列转行mysql查询

mysql - 查询问题未知列状态

sql - 如何将单元格中的 CSV 值转换为行并取消透视?