0

这是SqlDataAdapter我用于填充的dataGridView1,但在填充之前,我将其添加DataGridViewComboBoxColumn到该 datagridview 中,因此我将能够选择存储在 SQL 中的 ComboboxColumn 中的项目。但我不确定如何实现。

 dtSelectPronajem = new DataTable();
            SqlDataAdapter SDA = new SqlDataAdapter("SELECT * FROM PRONAJEM WHERE NA_CISLKU=@NA_CISLKU", conn);
            SDA.SelectCommand.Parameters.AddWithValue("@NA_CISLKU", VybraneCisku);
            SDA.Fill(dtSelectPronajem);
            dataGridView1.DataSource = dtSelectPronajem;

创建 DataGridViewComboBoxColumn:

private void EditDGV()
    {
        try
        {

            DataTable dtPlodiny = new DataTable();
                string sqlQuery = "SELECT PLODINA, CENAZAQ FROM PLODINY"; 
                using (SqlCommand cmd = new SqlCommand(sqlQuery, conn))
                {
                    SqlDataAdapter da = new SqlDataAdapter(cmd);
                    da.Fill(dtPlodiny);
                }

                cbColumn = new DataGridViewComboBoxColumn();
                cbColumn.DataSource = dtPlodiny; //Changed with DataTable

                //add next two rows
                cbColumn.DisplayMember = "PLODINA";
                cbColumn.ValueMember = "PLODINA"; //property from .Datasource you want use as Value - reference to DataPropertyName

                cbColumn.DropDownWidth = 100;
                dataGridView1.Columns.Add(cbColumn);
                cbColumn.HeaderText = "Položka";
                this.cbColumn.Name = "POLOZKAcb";

        }

我的问题是 - 如何为从 SQL 加载的每一行在 ComboBox 中选择文本?然后应在 ComboBox 中选择为 SelectedText 的值位于名为 的 SQL 列中PLODINA

非常感谢您的时间。

4

1 回答 1

2

DataGridViewColumn必须DataGridView在设置之前添加到.DataSource.

然后设置.DataPropertyName新列:

cbColumn.DataPropertyName = "PLODINA"

DataPropertyName必须是“PRONAJEM”表中的字段名称。
然后.ValueMember = PRONAJEM.PLODINA(from DataTable)将选择组合框列的项目

于 2013-11-12T17:34:29.953 回答