簡體   English   中英

數據表列名稱

[英]Datatable column names

我正在開發一個執行大量SQL查詢的應用程序。 目前,我試圖用SQL查詢的結果填充組合框,在該組合框中,我使用以下代碼獲取數據庫中的所有表名:

tablesComboBox.DataSource = dataLayer.Query("SELECT * FROM INFORMATION_SCHEMA.TABLES");
tablesComboBox.DisplayMember = "TABLES";

public DataTable Query(string sql)
        {
            var result = new DataTable();
            using (var connection = GetConnection())
            using (var command = new SqlCommand(sql, connection))
            {
                connection.Open();
                result.Load(command.ExecuteReader(CommandBehavior.CloseConnection));
            }
            return result;
        }

我的問題是我無法填充組合框,因為我不知道返回的數據表的列名,也無法弄清楚如何訪問它。 “表格”不起作用。 我敢肯定有一個簡單的答案,但目前無所適從。

要獲取表的列名,請使用

SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS where TABLE_NAME='your table'

我認為您不需要數據表名稱。 您只需要表的列名。 嘗試這個。

tablesComboBox.DisplayMember = "TABLE_NAME";

ps優化您的代碼,您可以真正做到這一點,僅獲取表名:

SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME <> 'sysdiagrams'

您上面的查詢返回的列的詳細信息可以從此鏈接中讀取

但是,如果僅對表名感興趣,則應在上面的查詢中添加條件

 DataTable t = myQuery(@"SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES 
                        WHERE TABLE_TYPE = 'BASE TABLE'");

當然,DisplayMember屬性應設置為

 tablesComboBox.DisplayMember = "TABLE_NAME";

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM