【问题标题】:How to fill DataGridViewComboBoxColumn from a database table column without using datareader如何在不使用 datareader 的情况下从数据库表列填充 DataGridViewComboBoxColumn
【发布时间】:2014-02-19 20:03:15
【问题描述】:

这是我的代码:

            SqlDataAdapter GridDataAdapter = new SqlDataAdapter(query, con);
            DataSet GridDataSet = new DataSet();
            GridDataAdapter.Fill(GridDataSet, tbln);
            dataGridView1.DataSource = GridDataSet;
            DataGridViewComboBoxColumn dgvCB = new DataGridViewComboBoxColumn();

            dataGridView1.DataMember = tbln;

在这里,我想从数据库表列中获取 DataGridViewComboBox 的数据。

如何在不使用 DataReader 的情况下填充 DataGridViewComboBoxColumn?

【问题讨论】:

    标签: c# sql datagridview


    【解决方案1】:

    您已经填充了数据集,如果它包含您希望 DGVCombo 包含的值,您可以迭代行集合。因此,最直接的方法是:

    foreach(DataRow r in GridDataSet.Tables[0].Rows)
    {
       dgvCB.Items.Add(r["MyColumn"]);
    }
    

    .Tables[0] 包含您要查找的列(“MyColumn”)...

    【讨论】:

    • 其 n 参数异常单元格值无效
    • 试试 r["MyColumn"].ToString()
    【解决方案2】:

    这应该是你需要的......

    DataGridViewComboBoxColumn dgvCB = new DataGridViewComboBoxColumn();
    dgvCB.Name = "lastname";
    dgvCB.DataSource = tbln;
    dgvCB.HeaderText = "Last";
    //uncomment this to actually select the value in the combo box 
    //dgvCB.DataPropertyName = "lastname";
    dgvCB.ValueMember = "lastname";
    dataGridView1.Columns.Add(dgvCB);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-29
      • 1970-01-01
      • 2014-12-25
      相关资源
      最近更新 更多