如何在C#中的ComboBox DataSource上添加额外的项目 [英] How to Add Extra items on top of ComboBox DataSource in C#

查看:91
本文介绍了如何在C#中的ComboBox DataSource上添加额外的项目的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想在设置数据源后在组合框顶部添加一个项目



i使用以下方式,但显示错误

I want to add an item at the top of combobox after setting data source

i use following way,but its showing error

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


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













请帮助







Please help

推荐答案

你有一对(或更多)选项:



1.在dt.Load之后,在DataTable的顶部添加一个新行。



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.设置drpVehicle.AppendDataBoundItems = true( http://msdn.microsoft.com/en-us/ library / system.web.ui.webcontrols.listcontrol.appenddatabounditems.aspx [ ^ ])






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.


手动创建数据集并添加将额外项添加到数据源。之后,从绑定数据集中检索数据并复制到创建的数据集。 手动创建数据集



Manly
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


这篇关于如何在C#中的ComboBox DataSource上添加额外的项目的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆