从数据库表中获取所选列名的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();
}
这里最可行和正确的选择是在项目中加载XML文件。
分步执行-
- 为项目创建一个ConfigXML
- 根据您的要求放置您需要的标签并填写数据值。 在您的页面或公共类中连接ConfigXML文件并为ConfigXML文件中的每个条目设置属性。
- 然后你可以通过你的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'))";