【发布时间】:2017-07-24 04:14:01
【问题描述】:
我正在使用 c# windows 窗体应用程序。我有一个包含许多表的数据库。每个表都有几列。我需要用所选表的列名填充组合框。
【问题讨论】:
标签: c# sql-server
我正在使用 c# windows 窗体应用程序。我有一个包含许多表的数据库。每个表都有几列。我需要用所选表的列名填充组合框。
【问题讨论】:
标签: c# sql-server
在 SQL Server 2005 及更高版本上执行此操作的正确方法(您没有明确指定您使用的版本)是检查系统目录视图,该视图位于 sys 架构中:
SELECT
name
FROM
sys.columns
WHERE
object_id = object_id('YourTableNameHere')
ORDER BY
name
sys.columns 目录视图为您提供了有关表列的大量信息 - 表由 object_id 列标识,这是相关表的内部 ID。
【讨论】:
这应该会给你表格列表
SELECT name
FROM dbo.sysobjects
WHERE xtype = 'U'
这应该为您提供每个表的列信息
select *
from INFORMATION_SCHEMA.COLUMNS
where TABLE_NAME = 'yourTable'
【讨论】:
以下是从 sql server 查询列名的方法。其他数据库与此类似。 http://blog.sqlauthority.com/2008/08/05/sql-server-2005-get-field-name-and-type-of-database-table/
至于将项目放入组合框,您可以在 msdn 上的此链接 http://msdn.microsoft.com/en-us/library/aa983551(VS.71).aspx 上找到大量相关信息
享受吧!
【讨论】:
您可以使用此代码
string sqlquery="select column_name FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'student' ORDER BY ORDINAL_POSITION";
DataFind.Open();
cmd = new SqlCommand(sqlquery, DataFind);
SqlDataReader DR = cmd.ExecuteReader();
while (DR.Read())
{
comboBox1.Items.Add(DR[0]);
}
DataFind.Close();
【讨论】: