0
votes

This is SqlDataAdapter that I use for filling dataGridView1 but before I fill it I add DataGridViewComboBoxColumn to that datagridview So I will be able to select item in ComboboxColumn that is stored in SQL. But I'm not sure how it can be achieved.

 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;

Creating 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";

        }

My question is - how is possible to SelectText in ComboBox for each row that is loaded from SQL? The value that should be then selected as SelectedText in ComboBox is in SQL column named PLODINA.

Thank for your time so much.

1

1 Answers

2
votes

Your DataGridViewColumn must be added to DataGridView before you set .DataSource.

Then set .DataPropertyName for new column:

cbColumn.DataPropertyName = "PLODINA"

DataPropertyName must be name of the field from "PRONAJEM" table.
And then item of comboboxcolumn where .ValueMember = PRONAJEM.PLODINA(from DataTable) will be selected