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

时间:2014-05-08 05:45:54

标签: c# asp.net sql-server sqldatasource

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

当前场景: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();
}

3 个答案:

答案 0 :(得分:1)

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

逐步执行 -

  1. 为您的项目创建ConfigXML
  2. 根据您的要求放置您需要的标签并填写数据值。
  3. 在您的页面或公共类中,连接ConfigXML文件并为ConfigXML文件中的每个条目设置属性。
  4. 然后,您可以通过ConfigXML文件传递一组列名。
  5. 根据上述方法,您可以根据需要修改列名称并增加或减少名称,而无需修改代码或任何部署。只需更改XML文件即可完成工作。

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

    SQL命令 -

    可以包含

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

    XML配置条目

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

答案 1 :(得分:0)

在查询中指定列

...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%'

答案 2 :(得分:0)

正确解决方案:

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