【问题标题】:How to display certain table schema columns in a datagridview control using C#?如何使用 C# 在 datagridview 控件中显示某些表架构列?
【发布时间】: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();
}

【问题讨论】:

    标签: c# ms-access datagridview schema sqldatatypes


    【解决方案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();
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-04
      • 1970-01-01
      • 2010-09-17
      相关资源
      最近更新 更多