我有3 comboboxes
起初我输入了站数。示例11650
,13450
和more
。
当用户选择第一个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();
}
答案 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
。做其中任何一个或