Visual C# Developer Center > Visual C# Forums > Visual C# Language > A big problem with CheckedListBox when is populated with ADO .DataSource ..
Ask a questionAsk a question
 

AnswerA big problem with CheckedListBox when is populated with ADO .DataSource ..

  • Wednesday, November 04, 2009 7:40 PMFlorinGFlorinG Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     

    Hi everyone!

    I have writen the text bellow:

    SqlConnection   dbRL;
    SqlDataAdapter   da;
    DataTable  dt;
    string   strComSql;
     


    dbRL = new SqlConnection(connGeneral);   

    dbRL.Open();

    strComSql = "SELECT IdProduct, Name FROM rl_Products";
    da = new SqlDataAdapter(strComSql, dbRL);
    dt = new DataTable("Products");

    da.Fill(dt);

    dbRL.Close();

    chkLstBox_Produse.DataSource = dt;
    chkLstBox_Produse.DisplayMember = "Name";
    chkLstBox_Produse.ValueMember = "IdProduct";

     

    My problem is when my CheckedListBox control is populated for the first time it appears one registration (records)
    with 'System.Data.DataRowView' for a short time - about 1 seconds. Then it appears all records from datatable.

    Atention!  My datatable has about 10.000 records. If you have a datatable with a few records 100 or 1000 this strange phenomen doesn't appear.


    Why?

     

Answers

  • Thursday, November 05, 2009 11:09 AMAndrey Sidorenko Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     AnswerHas Code
    It seems like it takes some time (in your case ~1s) to populate list box and when the process starts and it's in progress, one may see such kind of effects. You can try to put BeginUpdate/EndUpdate pair of methods like this, it may help:

    try
    {
    
    chkLstBox_Produse.BeginUpdate();
    
    chkLstBox_Produse.DataSource = dt;
    
    chkLstBox_Produse.DisplayMember =
    
    chkLstBox_Produse.ValueMember =
    
    }
    finally
    {
    chkLstBox_Produse.EndUpdate();
    }
    

All Replies

  • Thursday, November 05, 2009 11:09 AMAndrey Sidorenko Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     AnswerHas Code
    It seems like it takes some time (in your case ~1s) to populate list box and when the process starts and it's in progress, one may see such kind of effects. You can try to put BeginUpdate/EndUpdate pair of methods like this, it may help:

    try
    {
    
    chkLstBox_Produse.BeginUpdate();
    
    chkLstBox_Produse.DataSource = dt;
    
    chkLstBox_Produse.DisplayMember =
    
    chkLstBox_Produse.ValueMember =
    
    }
    finally
    {
    chkLstBox_Produse.EndUpdate();
    }
    

  • Thursday, November 05, 2009 6:26 PMFlorinGFlorinG Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     
    It's works!

    Thank you!