从SQL Server获取列名

克里斯蒂安·爱德华多·里韦德·里昂

我正在尝试获取已存储在SQL Server 2008 R2中的表的列名。

我已经尝试了一切,但是似乎找不到解决方法。

现在这是我在C#中的代码

public string[] getColumnsName()
{
        List<string> listacolumnas=new List<string>();

        using (SqlConnection connection = new SqlConnection(Connection))
        using (SqlCommand command = connection.CreateCommand())
        {
            command.CommandText = "SELECT TOP 0 * FROM Usuarios";
            connection.Open();

            using (var reader = command.ExecuteReader(CommandBehavior.KeyInfo))
            {
                reader.Read();

                var table = reader.GetSchemaTable();

                foreach (DataColumn column in table.Columns)
                {
                    listacolumnas.Add(column.ColumnName);
                }
            }
        }
        return listacolumnas.ToArray();
    }

但这又给了我以下

<string>ColumnName</string>
<string>ColumnOrdinal</string>
<string>ColumnSize</string>
<string>NumericPrecision</string>
<string>NumericScale</string>
<string>IsUnique</string>
<string>IsKey</string>
<string>BaseServerName</string>
<string>BaseCatalogName</string>
<string>BaseColumnName</string>
<string>BaseSchemaName</string>
<string>BaseTableName</string>
<string>DataType</string>
<string>AllowDBNull</string>
<string>ProviderType</string>
<string>IsAliased</string>
<string>IsExpression</string>
<string>IsIdentity</string>
<string>IsAutoIncrement</string>
<string>IsRowVersion</string>
<string>IsHidden</string>
<string>IsLong</string>
<string>IsReadOnly</string>
<string>ProviderSpecificDataType</string>
<string>DataTypeName</string>
<string>XmlSchemaCollectionDatabase</string>
<string>XmlSchemaCollectionOwningSchema</string>
<string>XmlSchemaCollectionName</string>
<string>UdtAssemblyQualifiedName</string>
<string>NonVersionedProviderType</string>
<string>IsColumnSet</string>

有任何想法吗?

它显示<string>标签,因为这是我的Web服务发送数据的方式。

西蒙

您可以使用下面的查询来获取表的列名。下面的查询获取给定名称的用户表的所有列:

select c.name from sys.columns c
inner join sys.tables t 
on t.object_id = c.object_id
and t.name = 'Usuarios' and t.type = 'U'

在您的代码中,它将如下所示:

public string[] getColumnsName()
{
    List<string> listacolumnas=new List<string>();
    using (SqlConnection connection = new SqlConnection(Connection))
        using (SqlCommand command = connection.CreateCommand())
        {
            command.CommandText = "select c.name from sys.columns c inner join sys.tables t on t.object_id = c.object_id and t.name = 'Usuarios' and t.type = 'U'";
            connection.Open();
            using (var reader = command.ExecuteReader())
            {
                while (reader.Read())
                {
                    listacolumnas.Add(reader.GetString(0));
                }
            }
        }
    return listacolumnas.ToArray();
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类常见问题

SQL Server:无效的列名称

来自分类Dev

PL / SQL-从查询中获取列名

来自分类Dev

如何在SQL Server的sql表中获取没有一列的所有列名

来自分类Dev

SQL Server中的歧义列名

来自分类Dev

SQL Server 2012无效的列名称?

来自分类Dev

SQL Server:无效的列名称错误

来自分类Dev

从Hibernate获取动态SQL列名称

来自分类Dev

SQL Server:根据记录的值返回列名

来自分类Dev

在SQL Server中使用空格处理列名

来自分类Dev

如何在SQL Server 2008中获取特定值的列名

来自分类Dev

在SQL Server 2012中,如何从视图,函数或存储过程中获取列名和数据类型?

来自分类Dev

在SQL Server中进行数据透视时获取自定义列名称

来自分类Dev

使用SQL Server的无效列名

来自分类Dev

当表上的列名存在时,SQL Server显示无效的列名

来自分类Dev

SQL Server-无效的列名

来自分类Dev

PL / SQL-从查询中获取列名

来自分类Dev

SQL Server:无效的列名称

来自分类Dev

在SQL Server 2012中获取列名

来自分类Dev

SQL Server以变量作为列名

来自分类Dev

需要获取列名及其类型的SQL查询

来自分类Dev

从SQL表中获取数据和列名

来自分类Dev

SQL Server无效的列名无效的对象名

来自分类Dev

如何在SQL Server 2008中获取特定值的列名

来自分类Dev

如何在SQL Server 2008 R2中获取表的约束列表以及它们各自的列名

来自分类Dev

SQL Server比较同一表的两行的值,并获取不匹配的列名

来自分类Dev

SQL从不同的列名称获取总和

来自分类Dev

如何使用sql server 2008中的查询在一张表中的所有列中获取很少的列名

来自分类Dev

使用 SQL 查询获取列名

来自分类Dev

在 Microsoft SQL Server (c#) 中获取列名

Related 相关文章

热门标签

归档