【问题标题】:How can Add items to Binded Datasource Combo Box?如何将项目添加到绑定数据源组合框?
【发布时间】:2012-10-27 05:00:06
【问题描述】:

您好,我是 C# 新手。我尝试了以下方式将新项目添加到我绑定的 ComboBox 中,但它不会给出任何结果。 是否可以向绑定的 ComboBox 添加新项目(这里的问题是 IDBigint 数据类型,但我想添加 Select ID)? 如果可以,请提供一段代码

     try
        {
            objSqlExecute.OpenConnection();
            string strQuery = objQueryManager.GetEmployeeRecords();
                  //Add Extra Items to combo Box
            cmbEmployeeID.Items.Add("Select Id");

            DataTable dtEmployee = objSqlExecute.GetRecordExecution(strQuery);
                 // DataRow dtNew = dtEmployee.NewRow();
                // dtNew["ID"] = "Select ID";
                // dtNew["FName"] = "";
            //dtEmployee.Rows.InsertAt(dtNew, 0);

            cmbEmployeeID.DataSource = dtEmployee;
            cmbEmployeeID.DisplayMember = "ID";
            cmbEmployeeID.ValueMember = "FName";
        }

【问题讨论】:

  • 设置数据源后尝试添加项
  • 它显示Items collection cannot be modified when the DataSource property is set这个异常@Amiram Korach
  • 将它添加到表格时发生了什么?
  • 如果我删除对这些行的评论DataRow dtNew = dtEmployee.NewRow(); dtNew["ID"] = "Select ID"; dtNew["FName"] = ""; dtEmployee.Rows.InsertAt(dtNew, 0); 它给出了类似Input string was not in a correct format.Couldn't store <Select ID> in ID Column. Expected type is Byte 的错误。我知道,因为此列是 bigint 数据类型
  • 为什么要显示 ID?更常见的是显示名称并使用 ID 作为值。

标签: winforms c#-4.0 combobox datasource


【解决方案1】:
  1. 您是否尝试过查询以确保它返回值?返回多条记录,单条还是没有?
  2. 您想随机添加一个新项目吗? 或者您是否可以选择一次插入所有项目?

您可以尝试添加toString() 以转换BigInt 吗?

注意事项: arcticle here 提供了使用 sql 将新项目添加到组合框的见解。 查看您发布的问题,查看在这种情况下如何使用 ListItems 的示例,您可以参考web link.

【讨论】:

    【解决方案2】:
    try
        {
            objSqlExecute.OpenConnection();
            string strQuery = objQueryManager.GetEmployeeRecords();
                  //Add Extra Items to combo Box            
    
            DataTable dtEmployee = objSqlExecute.GetRecordExecution(strQuery);                 
    
            cmbEmployeeID.DataSource = dtEmployee;
            cmbEmployeeID.DisplayMember = "ID";
            cmbEmployeeID.ValueMember = "FName";
    
            cmbEmployeeID.Items.Insert(0, "None Selected");
        }
    

    【讨论】:

    • 我应该从哪里获得ListItem 方法?它会给出错误,就像没有任何方法一样
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-09
    相关资源
    最近更新 更多