【问题标题】:Combining static and dynamic data in a ComboBox在 ComboBox 中组合静态和动态数据
【发布时间】:2014-05-27 11:39:40
【问题描述】:
private void PopulateComboBox()
{
    SqlConnection connection;
    SqlCommand command;
    SqlDataReader reader;
    DataTable dt;

    using (connection = new SqlConnection("connection string here"))
    {
        using (command = new SqlCommand("sql query here", connection))
        {
            connection.Open();
            using (reader = command.ExecuteReader())
            {
                dt = new DataTable();
                dt.Load(reader);

                ComboxBox1.ValueMember = "col1";
                ComboxBox1.DisplayMember = "col2";
                ComboxBox1.DataSource = dt;
            }
            connection.Close();

        }
    }
}

上面的代码工作正常。但是,我想在 ComboBox1 的索引 0 处添加一个静态条目以及来自数据库的上述动态条目。静态索引 0 的值应该是“选择一个值”。

如何在 ComboBox 中组合静态和动态数据?

【问题讨论】:

    标签: c# c#-4.0 .net-4.0 visual-studio-2013 vsto


    【解决方案1】:

    您可以在DataTable 中插入一条空记录,然后再将其绑定到ComboBox

    dt = new DataTable();
    dt.Load(reader);
    
    DataRow row = dt.NewRow();
    row["col1"] = "Something";
    row["col2"] = "Something else";
    
    dt.Rows.InsertAt(row, 0);
    
    ComboxBox1.ValueMember = "col1";
    ComboxBox1.DisplayMember = "col2";
    ComboxBox1.DataSource = dt;
    

    【讨论】:

      【解决方案2】:

      你可以试试:

      comboBox1.Items.Add(new ListItem("Text", "Value"))
      
      comboBox1.Items[0].Text = "Select a value";
      

      在你的 sql 代码中:

      .......
      
      using (reader = command.ExecuteReader())
                  {
                      dt = new DataTable();
                      dt.Load(reader);
                     comboBox1.Items.Add("col1");
                     ...
                   }
      

      【讨论】:

        【解决方案3】:

        在绑定组合框之前,使用dt.Rows.InsertAt(Datarow row, int pos) 在位置 0 处插入新行。

        【讨论】:

          猜你喜欢
          • 2012-09-24
          • 1970-01-01
          • 1970-01-01
          • 2023-02-10
          • 1970-01-01
          • 1970-01-01
          • 2019-03-28
          • 2013-07-10
          • 1970-01-01
          相关资源
          最近更新 更多