用组合框书写

时间:2017-01-10 11:37:09

标签: c# mysql .net database

我有3 comboboxes 起初我输入了站数。示例1165013450more。 当用户选择第一个combobox之后的号码后,根据第二个combobox中的站号自动选择后给出日期。因为每个站的日期都不同。

我的问题是,如果用户在第二个combobox中输入数字键以显示日期,我该怎么做?

我的代码是:

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
    {



        string MyConString1 = "SERVER=localhost;" +
                "DATABASE=hydrodb;" +
                "UID=root;" +
                "PASSWORD=;";

        MySqlConnection connection1 = new MySqlConnection(MyConString1);

        string command1 = "select Dat FROM hydgod where Station=" + comboBox1.SelectedItem.ToString();
        MySqlDataAdapter da1 = new MySqlDataAdapter(command1, connection1);
        DataTable dt1 = new DataTable();
        da1.Fill(dt1);

        comboBox2.Items.Clear();
        comboBox3.Items.Clear();
        comboBox2.SelectedItem = -1;
        comboBox3.SelectedItem = -1;
        foreach (DataRow row in dt1.Rows)
        {
            string rowz = string.Format("{0}", row.ItemArray[0]);
            comboBox2.Items.Add(rowz);
            comboBox3.Items.Add(rowz);
        }
        connection1.Close();
    }

1 个答案:

答案 0 :(得分:0)

我建议将所有相应的日期转换为List<string>并将其DataSource绑定到第二个ComboBox

List<string> dateList = new List<string>();

foreach (DataRow row in dt1.Rows)
{
    dateList.Add(string.Format("{0}", row.ItemArray[0]);
}

comboBox2.DataSource = dateList;

修改

  

我在组合框中收到了相同的值。 2010-01-01 12:00:00 AM   我想在12:00:00截止

如果row.ItemArray[0]类型为DateTime,您可以尝试:

dateList.Add(row.ItemArray[0].ToString("yyyy-MM-dd));

如果它是一个简单的string,你可以拆分它:

dateList.Add(row.ItemArray[0].Split(' ')[0]);

PS。填充3-rd组合框也可以将同一个List也挂钩到第3组:

comboBox3.DataSource = dateList;

不要手动添加项目,然后将列表挂钩到DataSource。做其中任何一个或