在C#Windows中设置DataSource属性时,无法修改项集合

时间:2015-07-02 14:55:42

标签: c# winforms

我正在尝试插入/添加第一个值为"选择一个"到我在C#Windows窗体应用程序中的组合框。 组合框样式是" DropDownList"。

我从数据库中获取城市数据并绑定组合框。

我知道我已经将1个数据源设置为combobox并再次尝试添加。我想添加"选择一个"动态,怎么做?

以下是填写城市代码。

    public void Fill_CitiesDDL()
    {
        try
        {
            cmbCity.Items.Clear();
            DataSet ds = new DataSet();
            ds = Select_Cities();
            ds.DataSetName = "Tbl_City";
            if (ds.Tables.Count > 0)
            {
                if (ds.DataSetName == "Tbl_City" && ds.Tables[0].Rows.Count > 0)
                {
                    Dictionary<string, string> test = new Dictionary<string, string>();
                    for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
                    {
                        test.Add(ds.Tables[0].Rows[i]["City_Name"].ToString(), ds.Tables[0].Rows[i]["City_Id"].ToString());
                    }
                    this.cmbCity.DataSource = new BindingSource(test, null);
                    this.cmbCity.DisplayMember = "Key";
                    this.cmbCity.ValueMember = "Value";
                    this.cmbCity.Items.Add("Select One ");--->Error is Coming at this Point
                }
                else
                {
                    lblEmployerError.Text = "No data for City";
                }
            }
            else
            {
                lblEmployerError.Text = "City Table does not exists";
            }
        }
        catch (NullReferenceException nr)
        {

            lblEmployerError.Text="Null value exception caused, try again later..!!";
        }
        catch (SqlException sql1)
        {

            lblEmployerError.Text="Connection to server failed or network problem..!!";
        }
        catch (Exception ex)
        {

            lblEmployerError.Text="Fatal error catched, contact system administrator...!!";
        }
    }

PLS。给我解决这个问题的方法。

1 个答案:

答案 0 :(得分:4)

在绑定到测试作为数据源之前,您需要将“Select One”值添加到测试字典中。

test.Add("Select One ","Select One ");

然后

this.cmbCity.DataSource = new BindingSource(test, null);