Click here to Skip to main content
15,910,009 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
i get this error
Columncount property cannot be set on a data-bound datagridview control
whats the problem? and how do i solve it?

if the user select for example Kundnr_id in the checkboxlist select that if namn is selected display that and so an, if both are select , display both

C#
var dt = new DataTable();

            dataGridView1.ColumnCount = 2;
            if (checkedListBoxKategori.Text == "Kundnr")
            {
                const string constring = @"Data Source = MARTIN; Initial Catalog = FakturaDB;Integrated Security = True";
                using (var con = new SqlConnection(constring))
                {
                    using (var cmd = new SqlCommand("SELECT * FROM FakturaDb", con))
                    {
                        cmd.CommandType = CommandType.Text;
                        using (var sda = new SqlDataAdapter(cmd))
                        {
                           
                                sda.Fill(dt);

                                //Set AutoGenerateColumns False
                                dataGridView1.AutoGenerateColumns = false;

                                //Set Columns Count
                              
                                dataGridView1.ReadOnly = true;

                                //Add Columns
                                dataGridView1.Columns[0].Name = "Kundnr";
                                dataGridView1.Columns[0].HeaderText = "Kundnr";
                                dataGridView1.Columns[0].DataPropertyName = "Kundnr_ID";
                                
                            }
                        }
                    }
                }
            
            else if (checkedListBoxKategori.Text == "Namn")
            {
                const string constring = @"Data Source = MARTIN; Initial Catalog = FakturaDB;Integrated Security = True";
                using (var con = new SqlConnection(constring))
                {
                    using (var cmd = new SqlCommand("SELECT * FROM FakturaDb", con))
                    {
                        cmd.CommandType = CommandType.Text;
                        using (var sda = new SqlDataAdapter(cmd))
                        {
                            
                                sda.Fill(dt);

                                //Set AutoGenerateColumns False
                                dataGridView1.AutoGenerateColumns = false;

                                //Set Columns Count
                                
                                dataGridView1.ReadOnly = true;

                                //Add Columns
                                dataGridView1.Columns[1].Name = "Namn";
                                dataGridView1.Columns[1].HeaderText = "Namn";
                                dataGridView1.Columns[1].DataPropertyName = "ForNamn";
                                
                            }
                        }
                    }
                }
            dataGridView1.DataSource = dt;
            }
Posted
Comments
george4986 26-Feb-14 5:07am    
whats ur requirement ?
if u want to display both then why are u fetching same data from database twice?
Kurac1 26-Feb-14 5:10am    
I in the first snippet i fetch kundnr_id and in the other i fetch the firstname?
george4986 26-Feb-14 5:16am    
///why don't u try fetching data once and then add condition?

const string constring = @"Data Source = MARTIN; Initial Catalog = FakturaDB;Integrated Security = True";
using (var con = new SqlConnection(constring))
{
using (var cmd = new SqlCommand("SELECT * FROM FakturaDb", con))
{
cmd.CommandType = CommandType.Text;
using (var sda = new SqlDataAdapter(cmd))
{

sda.Fill(dt);

//Set AutoGenerateColumns False
dataGridView1.AutoGenerateColumns = false;

//Set Columns Count

dataGridView1.ReadOnly = true;

//Add Columns
if (checkedListBoxKategori.Text == "Kundnr")
{
dataGridView1.Columns[0].Name = "Kundnr";
dataGridView1.Columns[0].HeaderText = "Kundnr";
dataGridView1.Columns[0].DataPropertyName = "Kundnr_ID";
}
else if (checkedListBoxKategori.Text == "Namn")
{
dataGridView1.Columns[1].Name = "Namn";
dataGridView1.Columns[1].HeaderText = "Namn";
dataGridView1.Columns[1].DataPropertyName = "ForNamn";
}

}
}
}

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900