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

时间:2014-05-27 11:39:41

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

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中组合静态和动态数据?

3 个答案:

答案 0 :(得分: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;

答案 1 :(得分:0)

您可以尝试:

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

答案 2 :(得分:0)

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