在绑定数据库中的数据之前,将项添加到组合框

时间:2011-02-27 15:54:08

标签: c# winforms combobox

我有一个Windows窗体中的组合框,可以从数据库中检索数据。我做得很好,但我想添加第一项< -Please select Category->来自数据库的数据之前。我怎样才能做到这一点?我在哪里可以说出来?

public Category()
{
    InitializeComponent();
    CategoryParent();

}

private void CategoryParent()
{
    using (SqlConnection Con = GetConnection())
    {
        SqlDataAdapter da = new SqlDataAdapter("Select Category.Category, Category.Id from Category", Con);
        DataTable dt = new DataTable();
        da.Fill(dt);
        CBParent.DataSource = dt;
        CBParent.DisplayMember = "Category";
        CBParent.ValueMember = "Id";
    }
}

6 个答案:

答案 0 :(得分:13)

您可以将默认文本添加到组合框的Text属性中,如下所示(首选):

CBParent.Text = "<-Please select Category->";

或者,您可以直接将值添加到数据表:

da.Fill(dt);
DataRow row = dt.NewRow();
row["Category"] = "<-Please select Category->";
dt.Rows.InsertAt(row, 0);
CBParent.DataSource = dt;

答案 1 :(得分:2)

public class ComboboxItem
{
    public object ID { get; set; }
    public string Name { get; set; }

}

public static List<ComboboxItem> getReligions()
{
    try
    {
        List<ComboboxItem> Ilist = new List<ComboboxItem>();
        var query = from c in service.Religions.ToList() select c;
        foreach (var q in query)
        {
            ComboboxItem item = new ComboboxItem();
            item.ID = q.Id;
            item.Name = q.Name;
            Ilist.Add(item);
        }
        ComboboxItem itemSelect = new ComboboxItem();
        itemSelect.ID = "0";
        itemSelect.Name = "<Select Religion>";
        Ilist.Insert(0, itemSelect);
        return Ilist;
    }
    catch (Exception ex)
    {
        return null;
    }    
}

ddlcombobox.datasourec = getReligions();

答案 2 :(得分:0)

 CBParent.Insert(0,"Please select Category")

答案 3 :(得分:0)

您可以尝试两种快速方法(我没有编译器方便现在测试任何一种方法):

  1. 在绑定数据之前将项目添加到DataTable
  2. 您应该只需将CBParent.Text设置为“&lt; - 请选择类别 - &gt;”绑定数据后。它应该设置显示的文本而不会弄乱项目。

答案 4 :(得分:0)

绑定数据后,您应该添加"Please select"

var query = from name in context.Version
                join service in context.Service 
                on name.ServiceId equals service.Id
                where name.VersionId == Id
                select new
                {
                    service.Name
                };

 ddlService.DataSource = query.ToList();
 ddlService.DataTextField = "Name";
 ddlService.DataBind();
 ddlService.Items.Insert(0, new ListItem("<--Please select-->"));

答案 5 :(得分:-1)

Allow