Hello,
I'm trying to populate data from a database on a dataGridView, but I'm getting an error (System.FormatException dataGridViewComboBoxColumn is not valid) when I'm trying to assign the value of column TaskID to dataGridViewComboBoxColumn. After the error occurs, I get TaskID on comboBoxColumn instead of showing the TaskDescription. Here's my code:
public void fillGridViewComboColumn(SqlConnection conn, DataGridViewComboBoxColumn combo, String sproc, String code, String description) { using (conn = new SqlConnection(connectionString)) { using (SqlCommand cmd2 = new SqlCommand(sproc)) { cmd2.CommandType = CommandType.StoredProcedure; conn.Open(); cmd2.Connection = conn; using (SqlDataReader rdr2 = cmd2.ExecuteReader(CommandBehavior.CloseConnection)) { DataTable dt2 = new DataTable(); dt2.Columns.Add(code, typeof(decimal)); dt2.Columns.Add(description, typeof(string)); while (rdr2.Read()) { DataRow dr2 = dt2.NewRow(); dr2[0] = rdr2.GetInt32(rdr2.GetOrdinal(code)); dr2[1] = rdr2.GetString(rdr2.GetOrdinal(description)); dt2.Rows.Add(dr2); } rdr2.Close(); combo.DataSource = dt2; combo.DisplayMember = description; combo.ValueMember = code; } } } } public void selectTasks() { using (conn = new SqlConnection(connectionString)) { SqlCommand cmd = new SqlCommand("SELECT_TASKS", conn); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.Add(new SqlParameter("@UserID", System.Environment.UserName)); //Fill The DataTable From Command SqlDataAdapter da = new SqlDataAdapter(cmd); DataTable dt = new DataTable(); da.Fill(dt); //Set It To Binding Navigator tasksGridView.DataSource = dt; DataGridViewComboBoxColumn taskCombo = new DataGridViewComboBoxColumn(); fillGridViewComboColumn(conn, taskCombo, "LOOKUP_TASKS", "TaskID", "TaskDescription"); tasksGridView.Columns.Add(taskCombo); taskCombo.DataPropertyName = "TaskID"; conn.Close(); } }
Any suggestions?
Thank you in advance.