insert item in combobox after binding it from a Dataset in c#

前端 未结 3 1444
眼角桃花
眼角桃花 2020-12-03 05:41

I have to insert \"Select\" at top after combobox is bound from dataset.i tried this but it isn\'t working.Throws error \"dataset doesn\'t have any definition for cast\".I t

相关标签:
3条回答
  • 2020-12-03 06:06
    // cmbCategory.DataSource =(new object[] { "Select" }).Concat(this.liveReportingDalc.GetCategoriesByType(CategoryType.RegistrationType).Cast<object>()); 
    

    You might be able to do this, but your syntax is wrong somehow.

    Maybe you can split it up until you figure it out and then compress it back into in-line functions.

    List <object> catData = new List <object> { "Select" };
    
    DataSet catByType = this.liveReportingDalc.GetCategoriesByType(CategoryType.RegistrationType);
    
    foreach(DataRow oRow in catByType.Tables[0].Rows)
    { catData.Add(oRow.ItemArray[0]); }
    

    But for this to work you need to consolidate your understanding of the data coming back from the GetCategoriesByType function. Will the objects be text like "Select"?.

    0 讨论(0)
  • 2020-12-03 06:12

    You have to Insert to the object you are databinding to rather than to the combobox. You can't insert directly into the combobox.

    You can use this:

    DataTable dt = new DataTable();
    
    dt.Columns.Add("ID", typeof(int));
    dt.Columns.Add("CategoryName");
    
    DataRow dr = dt.NewRow();
    dr["CategoryName"] = "Select";
    dr["ID"] = 0;
    
    dt.Rows.InsertAt(dr, 0);
    
    cmbCategory.DisplayMember = "CategoryName";
    cmbCategory.ValueMember = "ID";
    cmbCategory.DataSource = dt;
    cmbCategory.SelectedIndex = 0;
    

    This is very straight forward example.

    0 讨论(0)
  • 2020-12-03 06:20

    You cannot add items to a ComboBox after binding it to a data source. To add or remove items from a ComboBox with a bound data source, you have to do it through data source itself.

    You can insert a DataRow into your table and it will be automatically added to your ComboBox. Try the following:

     DataRow dr = dsCat.Tables[0].NewRow();
     dr["CategoryName"] = "Select";
     dr["ID"] = 123;// Some ID
     dsCat.Tables[0].Rows.Add(dr);
    
    0 讨论(0)
提交回复
热议问题