如何使用 C# 在 datagridview 控件中显示某些表架构列?

Posted

技术标签:

【中文标题】如何使用 C# 在 datagridview 控件中显示某些表架构列?【英文标题】:How to display certain table schema columns in a datagridview control using C#? 【发布时间】:2015-06-24 14:26:41 【问题描述】:

我有一种方法可以将 MS Access 表的整个架构显示到 datagridview 控件中。我如何才能在 datagridview 中仅显示列名和数据类型架构列。我正在使用的方法如下。谢谢你的建议。

private void ButtonFieldHelp_Click(object sender, EventArgs e)

    char ch = '"';

    dbConn = new OleDbConnection();
    dbCmd = new OleDbCommand();
    DataTable data; 
    OleDbDataReader reader; 

    dbConn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + ch + this.stringData + ch;
    dbConn.Open();
    dbCmd.Connection = dbConn;
    dbCmd.CommandText = "SELECT * FROM " + this.comboBox.SelectedItem.ToString();
    reader = dbCmd.ExecuteReader(); 

    foreach (DataRow tableField in data.Rows)
    
        foreach (DataColumn tableProperty in data.Columns)
        
            dataGridView.DataSource = data;
        
    
    this.txtRecords.Text = data.Rows.Count.ToString();

    reader.Close();
    dbConn.Close();

【问题讨论】:

【参考方案1】:

这里是您的代码修改为使用 OleDbDataAdapter 按您的需要工作:

 private void ButtonFieldHelp_Click(object sender, EventArgs e)
    
        char ch = '"';

        var dbConn = new OleDbConnection();
        var dbCmd = new OleDbCommand();
        DataTable data = new DataTable();
        OleDbDataReader reader;

        dbConn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + ch + this.stringData + ch;
        dbConn.Open();
        dbCmd.Connection = dbConn;
        dbCmd.CommandText = "SELECT * FROM " + this.comboBox.SelectedItem.ToString();
        //reader = dbCmd.ExecuteReader();

        OleDbDataAdapter adapter = new OleDbDataAdapter(dbCmd);
        adapter.Fill(data);


        var dataTable = new DataTable();
        dataTable.Columns.Add("ColumnName");
        dataTable.Columns.Add("ColumnType");

        foreach (DataColumn column in data.Columns)
        
            dataTable.Rows.Add(column.ColumnName, column.DataType.ToString());
        

        this.dataGridView1.DataSource = dataTable;

        this.txtRecords.Text = data.Rows.Count.ToString();

        dbConn.Close();
    

【讨论】:

以上是关于如何使用 C# 在 datagridview 控件中显示某些表架构列?的主要内容,如果未能解决你的问题,请参考以下文章

C# winform datagridview如何计算统计

C# 在 DataGridView 上显示我的自定义控件,即使不编辑

如何在一个DataGridView中的一列添加DateTimePicker控件 C#

C#中datagridview控件 如何进行删除修改添加数据并保存到数据库中

在C#里怎么将DataGridView控件和数据库的查询绑定起来啊。

c#中的progressBar控件如何使用?