繁体   English   中英

将组合框添加到数据网格视图

[英]Adding a combo Box to a Data grid View

我正在尝试将组合框添加到datagrid视图。 这是datagrid视图的代码

           SqlDataAdapter da = new SqlDataAdapter("SELECT pid, pdtName, amount, Qty,day, cat from purchase where year=@year and month=@month", ConnectionInfo.con);
            da.SelectCommand.Parameters.AddWithValue("@year", comboBox3.Text);
            da.SelectCommand.Parameters.AddWithValue("@month", comboBox2.Text);



            DataTable dt = new DataTable();

            da.Fill(dt);
            dataGridView1.DataSource = dt;
            this.dataGridView1.Columns[0].HeaderText = "number";
            this.dataGridView1.Columns[0].ReadOnly = true;
            this.dataGridView1.Columns[0].Visible = false;
            this.dataGridView1.Columns[1].HeaderText = "name";
            this.dataGridView1.Columns[2].HeaderText = "amount";
            this.dataGridView1.Columns[3].HeaderText = "number";
            this.dataGridView1.Columns[4].HeaderText = "day";
            this.dataGridView1.Columns[5].HeaderText = "category";

对于datagrid视图中的第5列,我试图将其设置为组合框,并从数据库的类别表中读取类别名称。

我从这段代码开始,但是我不知道如何完成它

        string query = "select distinct cat from purchase ";
            SqlDataAdapter da2 = new SqlDataAdapter(query, ConnectionInfo.con);

            DataSet ds2 = new DataSet();
            da2.Fill(ds2, "purchase");

        DataGridViewComboBoxColumn cmb = new DataGridViewComboBoxColumn();
        cmb.HeaderText = "cat";
        cmb.Name = "cmb";
        cmb.DataSource=ds2

您能指出我的代码有什么问题吗,还是可以通过其他方式帮助我解决问题

您需要使用DataGridViewTextBoxColumn或DataGridViewComboBoxColumn设置每一列的格式并将其添加到DataGridView。 确保将AutoGenerateColumns设置为false。 就像是:

    dataGridView1.Columns.Clear();
    dataGridView1.AutoGenerateColumns = false;

    DataGridViewTextBoxColumn column = new DataGridViewTextBoxColumn();
    column.DataPropertyName = "Description";
    column.Name = "Description";
    column.HeaderText = "Description";
    column.Width = 150;
    //column.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
    dataGridView1.Columns.Add(column)

    DataGridViewComboBoxColumn ccolumn = new DataGridViewComboBoxColumn();
    ccolumn.DataPropertyName = "cmb";
    ccolumn.Name = "cmb";
    ccolumn.HeaderText = "Cat";
    ccolumn.Width = 65;
    ccolumn.DataSource = ds2;
    ccolumn.DisplayMember = "cat";
    ccolumn.ValueMember = "cat";
    dataGridView1.Columns.Add(ccolumn);

在将DataSource分配给DataGridView之前,请执行所有类似的列。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM