从数据库表中获取所选列名的Sql命令是什么?

本文关键字:Sql 命令 是什么 数据库 获取 | 更新日期: 2023-09-27 18:02:13

我可以用下面的代码行绑定我的下拉列表。

当前场景:DropDownList与该表的所有列名绑定。

要求:DropDownList只与表的特定列名绑定

如何在客户端SQL查询中实现这一点?

private void BindDropDownLists()
{
    SqlDataSource.ConnectionString = connection;
    SqlDataSource.SelectCommand = "SELECT COLUMN_NAME, DATA_TYPE FROM INFORMATION_SCHEMA.COLUMNS WHERE (TABLE_NAME = 'MyTable')";
**// Only specific columns needed as DDL input.**
**// I Used AND COLUMN_NAME = 'Mycolumnname' it worked but how to hardocore specifc set of column names**
    //DropDownList5.DataSource = SqlDataSource;
    DropDownList5.DataTextField = "COLUMN_NAME";
    DropDownList5.DataValueField = "DATA_TYPE";
    DropDownList5.DataBind();
}

从数据库表中获取所选列名的Sql命令是什么?

这里最可行和正确的选择是在项目中加载XML文件。

分步执行-

  1. 为项目创建一个ConfigXML
  2. 根据您的要求放置您需要的标签并填写数据值。
  3. 在您的页面或公共类中连接ConfigXML文件并为ConfigXML文件中的每个条目设置属性。
  4. 然后你可以通过你的ConfigXML文件传递一组列名。

根据上述方法,您将能够在需要时修改列名并增加或减少名称,而无需修改代码或任何部署。只需更改XML文件就可以了。

现在的工作是一个漫长的过程,但你会发现它对以后的工作有好处。

SQL命令-

可以包含

"....WHERE (TABLE_NAME = 'MyTable') AND COLUMN_NAME IN ("+ ColumnNameListfromXML +")"

XML配置项将是

<FetchColumnName> 
       <ColumnNameList>Column1,Column2,Column3</ColumnNameList>     
</FetchColumnName> 

在查询中指定列

...WHERE (TABLE_NAME = 'MyTable') AND COLUMN_NAME='column1'
or
...WHERE (TABLE_NAME = 'MyTable') AND COLUMN_NAME IN ('column1','column2)
or
...WHERE (TABLE_NAME = 'MyTable') AND COLUMN_NAME LIKE '%column%'

正确答案:

SqlDataSource.SelectCommand = "SELECT COLUMN_NAME, DATA_TYPE FROM INFORMATION_SCHEMA.COLUMNS WHERE (TABLE_NAME = 'VXRESULT' AND COLUMN_NAME IN ('Column1','column2','Column3'))";