Here In this article, I have to try to explain, how to use ComboBox (DataGridViewComboBoxColumn) within
DataGridView using windows application C#.
In this article, I have added ComboBox in DataGridView through Code and Selected ComboBox value to insert the SQL database.
Below I have given a screenshot of the demo. Let’s come for creating this demo.
Step 1: Create one Windows Forms Application and add DataGridView on Windows Form (For example form1) and assign a new name of Form and DataGridView according to your convenience as below image.
Step 2: Now press F7 Key or open double click on the form for open .cs file of windows form.
Step 3: Add System and System.Data.SqlClient namespace for database connectivity.
Step 4: Write below code within the Load method.
//Create object of DataGridViewComboBoxColumn for adding ComboBox control
DataGridViewComboBoxColumn dgvCmbWeek = new DataGridViewComboBoxColumn();
{
// Hearder name of column
dgvCmbWeek.HeaderText = "Week";
// Add items into Combobox
dgvCmbWeek.Items.Add("Mondey");
dgvCmbWeek.Items.Add("Tuesday");
dgvCmbWeek.Items.Add("Wednesday");
dgvCmbWeek.Items.Add("Thirsday");
dgvCmbWeek.Items.Add("Friday");
dgvCmbWeek.Items.Add("Saturday");
// Column Index position of Controls
dgvCmbWeek.DisplayIndex = 0;
}
//Create object of DataGridViewComboBoxColumn for adding ComboBox control
DataGridViewComboBoxColumn dgvCmbArticles = new DataGridViewComboBoxColumn();
{
// Hearder name of column
dgvCmbArticles.HeaderText = "Articles";
// Add items into Combobox
dgvCmbArticles.Items.Add("1");
dgvCmbArticles.Items.Add("2");
dgvCmbArticles.Items.Add("3");
dgvCmbArticles.Items.Add("4");
dgvCmbArticles.Items.Add("5");
dgvCmbArticles.Items.Add("6");
dgvCmbArticles.Items.Add("7");
dgvCmbArticles.Items.Add("8");
dgvCmbArticles.Items.Add("9");
dgvCmbArticles.Items.Add("10");
// Column Index position of Controls
dgvCmbArticles.DisplayIndex = 1;
}
//Create object of DataGridViewComboBoxColumn for adding ComboBox control
DataGridViewComboBoxColumn dgvCmbBlogs = new DataGridViewComboBoxColumn();
{
// Hearder name of column
dgvCmbBlogs.HeaderText = "Blogs";
// Add items into Combobox
dgvCmbBlogs.Items.Add("1");
dgvCmbBlogs.Items.Add("2");
dgvCmbBlogs.Items.Add("3");
dgvCmbBlogs.Items.Add("4");
dgvCmbBlogs.Items.Add("5");
dgvCmbBlogs.Items.Add("6");
dgvCmbBlogs.Items.Add("7");
dgvCmbBlogs.Items.Add("8");
dgvCmbBlogs.Items.Add("9");
dgvCmbBlogs.Items.Add("10");
// Column Index position of Controls
dgvCmbBlogs.DisplayIndex = 2;
}
//Create object of DataGridViewComboBoxColumn for adding ComboBox control
DataGridViewComboBoxColumn dgvCmbIQs = new DataGridViewComboBoxColumn();
{
// Hearder name of column
dgvCmbIQs.HeaderText = "IQs";
// Add items into Combobox
dgvCmbIQs.Items.Add("1");
dgvCmbIQs.Items.Add("2");
dgvCmbIQs.Items.Add("3");
dgvCmbIQs.Items.Add("4");
dgvCmbIQs.Items.Add("5");
dgvCmbIQs.Items.Add("6");
dgvCmbIQs.Items.Add("7");
dgvCmbIQs.Items.Add("8");
dgvCmbIQs.Items.Add("9");
dgvCmbIQs.Items.Add("10");
// Column Index position of Controls
dgvCmbIQs.DisplayIndex = 3;
}
//Create object of DataGridViewComboBoxColumn for adding ComboBox control
DataGridViewComboBoxColumn dgvCmbForums = new DataGridViewComboBoxColumn();
{
// Hearder name of column
dgvCmbForums.HeaderText = "Forums";
// Add items into Combobox
dgvCmbForums.Items.Add("1");
dgvCmbForums.Items.Add("2");
dgvCmbForums.Items.Add("3");
dgvCmbForums.Items.Add("4");
dgvCmbForums.Items.Add("5");
dgvCmbForums.Items.Add("6");
dgvCmbForums.Items.Add("7");
dgvCmbForums.Items.Add("8");
dgvCmbForums.Items.Add("9");
dgvCmbForums.Items.Add("10");
// Column Index position of Controls
dgvCmbForums.DisplayIndex = 4;
}
//Create object of DataGridViewComboBoxColumn for adding Button control
DataGridViewButtonColumn dgvBtn = new DataGridViewButtonColumn();
{
// Hearder name of column
dgvBtn.HeaderText = "Save";
// Text of Button
dgvBtn.Text = "Save";
// Set size of button
dgvBtn.Width = 80;
// Column Index position of Controls
dgvBtn.DisplayIndex = 5; // Position of Controls
dgvBtn.UseColumnTextForButtonValue = true;
dgvBtn.FlatStyle = FlatStyle.Standard;
}
//Add all controls into DataGridView
dgvDeveloperSection.Columns.Add(dgvCmbWeek);
dgvDeveloperSection.Columns.Add(dgvCmbArticles);
dgvDeveloperSection.Columns.Add(dgvCmbBlogs);
dgvDeveloperSection.Columns.Add(dgvCmbIQs);
dgvDeveloperSection.Columns.Add(dgvCmbForums);
dgvDeveloperSection.Columns.Add(dgvBtn);
Step 5: Create a table in your database for saving data. The table structure is given below.
CREATE TABLE [dbo].[WeekTask]
(
[ID] INT IDENTITY PRIMARY KEY,
[Date] DATE NOT NULL,
[Week] VARCHAR(20) NOT NULL,
[Articles] INT NOT NULL,
[Blogs] INT NOT NULL,
[IQs] INT NOT NULL,
[Forums] INT NOT NULL
)
Step 6: Create a CellContentClick event of DataGridView and write the below code within this event.
// check event of button column
if (e.ColumnIndex == 5)
{
// check condition of cambobox (either option are selected or not)
if (dgvDeveloperSection.Rows[e.RowIndex].Cells[0].Value != null && dgvDeveloperSection.Rows[e.RowIndex].Cells[1].Value != null && dgvDeveloperSection.Rows[e.RowIndex].Cells[2].Value != null && dgvDeveloperSection.Rows[e.RowIndex].Cells[3].Value != null && dgvDeveloperSection.Rows[e.RowIndex].Cells[4].Value != null)
{
// get current saved time
DateTime dDatetime = DateTime.Now.Date;
// get value of cells wtich row's button are clicked
string sWeek = dgvDeveloperSection.Rows[e.RowIndex].Cells[0].Value.ToString();
int nArticles = Convert.ToInt32(dgvDeveloperSection.Rows[e.RowIndex].Cells[1].Value.ToString());
int nBlogs = Convert.ToInt32(dgvDeveloperSection.Rows[e.RowIndex].Cells[2].Value.ToString());
int nIQs = Convert.ToInt32(dgvDeveloperSection.Rows[e.RowIndex].Cells[3].Value.ToString());
int nForums = Convert.ToInt32(dgvDeveloperSection.Rows[e.RowIndex].Cells[4].Value.ToString());
// connection string of database
SqlConnection con = new SqlConnection("Data Source = your database server name ; Initial Catalog = your database name; User Id = server id; Password = server password;");
// open connection
con.Open();
// sql command for save data into table
SqlCommand cmd = new SqlCommand("Insert into [dbo].[WeekTask]([Date],[Week],[Articles],[Blogs],[IQs],[Forums]) values('" + dDatetime + "','" + sWeek + "','" + nArticles + "','" + nBlogs + "','" + nIQs + "','" + nForums + "')", con);
// check inserted successfully
if (cmd.ExecuteNonQuery() > 0)
{
MessageBox.Show("Record Successfully!");
}
else
MessageBox.Show("Record not save!");
// close connection
con.Close();
}
else
MessageBox.Show("Select Option!");
}
Step 7: Build your application and execute it. Select option from all ComboBox then clicks on the Save button. Now check your database, the record is inserted.
Rahul Kesharwani
19-May-2020Hi Friends
This article is very very useful for me...thank you
Revathi Parvathi
30-May-2017