1

SELECT如果我们不知道 column_names,我们如何处理该语句

如果我有以下查询,我的经验很少

 SELECT * FROM emp 

我会做

    While sqlReader.Read()
        Dim name as string = sqlReader.Item("emp_name")
    End While

问题

但是如果我不知道我得到的数字和列名有什么 方法可以处理这个 方法告诉我们选择了 x 个列及其名称

然后将其作为字符串列表返回,我不知道这是否重要,但我将其作为 Web 服务执行

4

3 回答 3

3

您可以使用 的FieldCount属性System.Data.SqlClient.SqlDataReader来获取字段的数量。然后,您可以使用该GetName属性来获取字段名称。

Dim Names as New list(of String) 
For i as integer = 0 to sqlReader.FieldCount -1 
    Names.Add(sqlReader.GetName(i))
Next

http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqldatareader.aspx

于 2012-11-02T14:53:31.493 回答
2

SqlDataReader类具有FieldCount属性来告诉您有多少列,以及GetName方法来告诉您它们的名称。

于 2012-11-02T14:52:00.267 回答
1

如果您使用的是 Sql Server,则可以查询 sys.columns 视图。

SELECT name FROM sys.columns WHERE object_id = OBJECT_ID('tablename');

在您的示例中,表名将是“emp”。

如果您使用不同的数据库,您可以尝试 INFORMATION_SCHEMA.COLUMNS 视图,它返回类似的信息。

于 2012-11-02T14:52:42.667 回答