【发布时间】:2015-09-10 23:11:33
【问题描述】:
我正在寻找关于如何检索列名的 SO,我尝试了一些解决方案,但是当我使用这种方法时,例如,我收到了这些列名,而不是我的实际列名(ID、状态、标题等.):
- TABLE_CATALOG
- TABLE_SCHEMA
- TABLE_NAME
-
TABLE_TYPE
using (SqlConnection connection = new SqlConnection(this.ConnectionString)) { System.Data.SqlClient.SqlConnectionStringBuilder builder = new System.Data.SqlClient.SqlConnectionStringBuilder(); builder.ConnectionString = this.ConnectionString; string server = builder.DataSource; string database = builder.InitialCatalog; connection.Open(); DataTable schema = connection.GetSchema("Tables"); Tables = new List<Table>(); foreach (DataRow row in schema.Rows) { /* Add Table */ Table t = new Table(); string tableName = row[2].ToString(); t.Name = tableName; /* Add columns */ //DataTable dtCols = connection.GetSchema("Columns", new[] { "StarTrackerDB", null, "dbo.Tickets" }); t.Columns = new List<Column>(); foreach (DataColumn column in row.Table.Columns) { Column c = new Column(); c.Name = column.ColumnName; t.Columns.Add(c); } Tables.Add(t); } }
编辑:
我想在 C# 中检索它,即不在我的代码中执行 SQL 查询字符串。
EDIT2
当前输出:
- TABLE_CATALOG
- TABLE_SCHEMA
- TABLE_NAME
- TABLE_TYPE
预期输出:
- 身份证
- 状态
- 标题
等等。表中的列名。 string tableName 设置正确。
【问题讨论】:
-
发布输出(实际和期望)会有很大帮助
-
它在描述中有所说明,但在这里再次出现:“我收到这些列名,而不是我的实际列名(ID、状态、标题等):[输出]”我会尝试改写如果很难理解的话。
-
您正在寻找元数据。也许这会让你开始stackoverflow.com/questions/22053829/…
标签: c# sql-server ado.net