1

How to display text on combo box in a DataGridView at run time from database?

For example, if am updating my text in database from combo box in DataGridView next time I want to display that text in combobox column.

sqlConnection = new SqlConnection(ConfigurationManager.ConnectionStrings["Con"].ToString());
selectQueryString = "SELECT Code,CompanyName,FinancialYearStart,FinancialYearEnd,UserName,RoleP FROM CompanyInformation";

sqlDataAdapter = new SqlDataAdapter(selectQueryString, sqlConnection);
sqlCommandBuilder = new SqlCommandBuilder(sqlDataAdapter);

dataTable = new DataTable();
sqlDataAdapter.Fill(dataTable);

bindingSource = new BindingSource();
bindingSource.DataSource = dataTable;

dataGridView3.DataSource = bindingSource;
dataGridView3.Controls.Clear();

DataGridViewComboBoxColumn comboboxColumn = new DataGridViewComboBoxColumn();
comboboxColumn.Items.AddRange("Protected", "UnProtected");
comboboxColumn.HeaderText = "RoleP";
dataGridView3.Columns.Add(comboboxColumn);


private void button10_Click(object sender, EventArgs e)
{
    SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["Con"].ToString());
    con.Open();

    // if (dataGridView3.Columns.Count >= 4 && dataGridView3.Columns.Count < 10)
    // {
        int i = dataGridView3.Rows.Count;
        int r = 0;

        for (int s = 0; s < i; s++)
        {
            try
            {
                string Role = dataGridView3.Rows[s].Cells[0].Value.ToString();
                int Cod = Convert.ToInt32(dataGridView3.Rows[s].Cells[1].Value.ToString());
                if (Role != "")
                {
                    SqlCommand cmd = new SqlCommand("update CompanyInformation SET RoleP=@Role where Code=@Cod", con);
                    cmd.Parameters.AddWithValue("@Cod", Cod);
                    cmd.Parameters.AddWithValue("@Role", Role);

                    r = cmd.ExecuteNonQuery();
                }
            }
            catch
            {
            }

        }

        if (r >= 1)
        {
            MessageBox.Show("Update Successful");
            SuperUser obj = new SuperUser();
            this.Hide();
            this.ParentForm.Hide();               
        }
marc_s
  • 732,580
  • 175
  • 1,330
  • 1,459
sampath
  • 3
  • 6

1 Answers1

0

You can go with this:

DataGridViewComboBoxColumn comboboxColumn = new DataGridViewComboBoxColumn();
comboboxColumn.Items.AddRange("Protected", "UnProtected");
comboboxColumn.HeaderText = "RoleP";
dataGridView3.Columns.Add(comboboxColumn);

After that check

foreach (DataGridViewRow row in dataGridView3.Rows)
{
    (row.Cells[1] as DataGridViewComboBoxCell).Value = yourvalue;
}
Vishal Suthar
  • 17,013
  • 3
  • 59
  • 105
  • actually i want to bind data on combo box from database – sampath Dec 27 '12 at 06:47
  • sir its not displaying text on comboBox. – sampath Dec 27 '12 at 07:09
  • nothing i want to display initially but once i run my application text wil be display on combo box from database – sampath Dec 27 '12 at 07:14
  • sir if i use that code am getting total data in single combo box but my requirment what data i have that display on combo box – sampath Dec 27 '12 at 07:19
  • Sir i wil tel clearly actually i have customerinformation table in that i have 7 columns ,in that i want to update 7 th column name Rolep ,so for this i create Rolep combo box column in my datagridview with add texts Proteceted ,UnProtected.If i update RoleP (protected or UnProtected) this value would be store in database RoleP column.If i run this application i want to display text on combo box from database .why because i want to know what data i have in combo box from databse – sampath Dec 27 '12 at 10:01