【问题标题】:Add Combobox to Datagridview with SQL data使用 SQL 数据将 Combobox 添加到 Datagridview
【发布时间】:2020-07-18 23:19:30
【问题描述】:

我想将 Combobox 添加到 SQL 表数据中已有的数据网格视图的第二列。 SQL 表值希望成为组合框的选中项,并希望有额外的选项供选择。

我想将组合框添加到数据类型列。 SQL 表可以只有一个可以是 Int 但想要添加选项来选择,例如 float、string、 等。

以下代码将添加一个新列,而不是添加到现有 SQL 表列中。如何将组合框添加到 datagridview 中显示的 SQL 表的现有列。

所有数据都显示在数据网格视图中。

                connection = new SqlConnection(connetionString);
                sql = "select * from Devicereg";
                try
                {
                    connection.Open();
                    adapter.SelectCommand = new SqlCommand(sql, connection);
                    adapter.Fill(ds);
                    connection.Close();
                    dataGridView1.DataSource = null;
                    dataGridView1.ColumnCount = 0;
                    dataGridView1.DataSource = ds.Tables[0];
                    dataGridView1.Columns[0].HeaderText = "ID";
                    dataGridView1.Columns[1].HeaderText = "Parameters";
                    dataGridView1.Columns[2].HeaderText = "Addresses";
                    dataGridView1.Columns[3].HeaderText = "Data Types";

                    dataGridView1.Columns[1].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft;

                    DataGridViewComboBoxColumn cmb = new DataGridViewComboBoxColumn();
                    cmb.HeaderText = "Select Data";
                    cmb.Name = "cmb";
                    cmb.MaxDropDownItems = 4;
                    cmb.Items.Add("Floart");
                    cmb.Items.Add("Int");
                    dataGridView1.Columns.Add(cmb);

                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.ToString());
                } 

【问题讨论】:

    标签: c# sql-server combobox


    【解决方案1】:

    我猜,你可以试试下面的代码。我希望这会有所帮助。

    DataGridViewComboBoxColumn cmbCol = new DataGridViewComboBoxColumn();
                    cmbCol.HeaderText = "yourColumn";
                    cmbCol.Name = "myComboColumn";
                    cmbCol.Items.Add("True");
                    cmbCol.DataSource = myList();
                    dataView.Columns.Add(cmbCol);
                    dataView.Columns["myComboColumn"].DisplayIndex = "at any index that you want";
    
                    foreach (DataGridViewRow row in dataView.Rows)
                    {
                        row.Cells["myComboColumn"].Value = row.Cells["yourColumn"].Value;
                    }
    

    参考:https://stackoverflow.com/a/34013997/10945191

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-13
      • 2011-04-24
      • 1970-01-01
      相关资源
      最近更新 更多