在组合框中组合静态和动态数据

本文关键字:组合 动态 数据 静态 | 更新日期: 2023-09-27 18:05:16

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的值应该是"Select a value"

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

在组合框中组合静态和动态数据

您可以在将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;

您可以尝试:

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");
               ...
             }

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