网格视图c#.net中的combox/dropdownlist

本文关键字:combox dropdownlist 中的 net 视图 网格 | 更新日期: 2023-09-27 18:20:29

我是c#.net winforms应用程序的新手。我有一个数据网格wch显示一些数据,其中一列将成为下拉列表或组合框。我该如何在代码中使用它。请帮忙。

private void dataGridView1_RowsAdded(object sender, DataGridViewRowsAddedEventArgs e)
{
   DataGridViewComboBoxColumn combo = (DataGridViewComboBoxColumn)dataGridView1.Rows[e.RowIndex].Cells[3].OwningColumn;
   sql = "select NAME FROM Suppliers";
   BindingSource bsource = new BindingSource();
   bsource.DataSource = obj.SqlDataTable(sql);
   dataGridView1.DataSource = bsource;
   combo.HeaderText = "Select Supplier";
 }

我想用相应供应商表中的供应商名称填充数据网格的第三列。数据网格视图中已经填充了来自联接查询的数据,其中一个字段是Supplier(wch I mwant可转换为下拉框或组合框)。如果你需要任何进一步的信息来澄清,请告诉我。

        I Modified my code as follows:
        DataGridViewComboBoxColumn combo = new DataGridViewComboBoxColumn();
        combo.HeaderText = "Suppliers";
        //execute sql data adapter to get supplier values
        DataTable dt = obj.SqlDataTable("select NAME from CUSTOMERS");
        foreach (DataRow supplier in dt.DataSet.Tables[0].Rows)
        {
            combo.Items.Add(supplier[0]);
        }
        dataGridView1.Columns.Add(combo);

现在在"dt.Datat.Tables[0].Rows"处得到一个null引用异常请帮忙。我不确定是不是遗漏了什么。

网格视图c#.net中的combox/dropdownlist

试试这个代码

string strcon = @"Data Source=kp;Initial Catalog=Name;Integrated Security=True;Pooling=False";
        SqlConnection con;
        SqlCommand cmd;
        SqlDataAdapter da;
        DataTable dt;
        DataGridViewComboBoxColumn dgvCmb;
        public Form2()
        {
            InitializeComponent();
            grdcmd();
        }
        public void grdcmd()
        {
            con = new SqlConnection(strcon);
            con.Open();
            string qry = "Select * from Dbname";
            da = new SqlDataAdapter(qry, strcon);
            dt = new DataTable();
            da.Fill(dt);
            dgvCmb = new DataGridViewComboBoxColumn();
            foreach (DataRow row in dt.Rows)
            {
                dgvCmb.Items.Add(row["Fname"].ToString());
            }
            dataGridView1.Columns.Add(dgvCmb);
        }