Click here to Skip to main content
15,883,918 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
I want to add an item at the top of combobox after setting data source

i use following way,but its showing error
C#
public void fillVehicle()
        {
            try
            {
                reader = obj.SelCommand("Select vehicle_No,vehicle_Name from tbl_Vehicle");
                using (reader)
                {
                    DataTable dt = new DataTable();
                    dt.Load(reader);
                    drpVehicle.DataSource = dt;
                    drpVehicle.ValueMember = "vehicle_No";
                    drpVehicle.DisplayMember = "vehicle_Name";

                }
                drpVehicle.Items.Insert(0, "Select Vehicle");

            }
            catch (Exception ex)
            {
                lblMessageOrder.Text = "Error in vehicle fill:"+ex.Message;
            }
        }


Error showing is


SQL
Items collection cannot be modified when the DataSource property is set.






Please help
Posted

You have a couple (or more) options:

1. Add a new row to the top of your DataTable, after dt.Load.

public void fillVehicle()
        {
            try
            {
                reader = obj.SelCommand("Select vehicle_No,vehicle_Name from tbl_Vehicle");
                using (reader)
                {
                    DataTable dt = new DataTable();
                    dt.Load(reader);
                    DataRow dr = dt.NewRow();
                    dr("vehicle_No") = 0;
                    dr("vehicle_Name") = "Select Vehicle";
                    dt.Rows.InsertAt(dr, 0);
                    drpVehicle.DataSource = dt;
                    drpVehicle.ValueMember = "vehicle_No";
                    drpVehicle.DisplayMember = "vehicle_Name";
 
                }
                drpVehicle.Items.Insert(0, "Select Vehicle");
 
            }
            catch (Exception ex)
            {
                lblMessageOrder.Text = "Error in vehicle fill:"+ex.Message;
            }
        }



2. Set drpVehicle.AppendDataBoundItems = true (http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.listcontrol.appenddatabounditems.aspx[^])

public void fillVehicle()
        {
            drpVehicle.AppendDataBoundItems = true;
            drpVehicle.Items.Clear();
            drpVehicle.Items.Add(0, "Select Vehicle");

            try
            {
                reader = obj.SelCommand("Select vehicle_No,vehicle_Name from tbl_Vehicle");
                using (reader)
                {
                    DataTable dt = new DataTable();
                    dt.Load(reader);
                    drpVehicle.DataSource = dt;
                    drpVehicle.ValueMember = "vehicle_No";
                    drpVehicle.DisplayMember = "vehicle_Name";
 
                }
 
            }
            catch (Exception ex)
            {
                lblMessageOrder.Text = "Error in vehicle fill:"+ex.Message;
            }
        }


Or something along those lines.
 
Share this answer
 
Comments
Raja Sekhar S 6-Sep-13 3:30am    
+5!
Create a dataset manually and add add the extra item to data source. After that retrieve the data from binded dataset and copy to created dataset. Create dataset manually.

Manly
 
Share this answer
 

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