c# 组合框由估算的 mysql 数据自动填充
c# combobox automaticaly populated by inputed mysql data
我有两个用户控件。一个是输入数据,另一个有一个组合框,显示来自我的 MySQL table 的数据。
用户在第一个用户控件中键入数据并按下按钮。这会将数据添加到 MySQL table。我想立即/自动将数据添加到组合框(其他用户控件)中。
我宁愿不使用事件来完成它。如果不可能并且我必须使用事件,我应该使用什么事件?它可以是与按钮无关的事件吗?
这是从 MySQL 读取数据并将其添加到组合框的方法:
private void LoadFromDatabase()
{
string query = "select name from country";
MySqlConnection conn = new MySqlConnection(connection);
MySqlCommand command = new MySqlCommand(query,conn);
MySqlDataReader Read;
conn.Open();
Read = command.ExecuteReader();
while(Read.Read())
{
metroComboBox1.Items.Add(Read.GetString("name"));
}
conn.Close();
}
当前结果是我必须重新加载 windows 表单才能将新数据加载到组合框中。如果不重新加载,组合框仅显示旧数据。我已将该方法放在组合框用户控件的 InitializeComponent();
下。
您可以在组合框本身上使用事件点击,因此只要您点击它打开下拉列表,它就会更新组合框。确保清除点击事件顶部的项目以防止重复。
如果您真的坚持没有事件,您可以使用后台工作者,但是对于您正在做的事情,为此生成一个线程似乎有点过分了。
这是最终结果的想法。
private void comboBox1_Click(object sender, EventArgs e)
{
if (comboBox1.Items.Count > 0)
comboBox1.Items.Clear();
LoadFromDatabase();
comboBox1.SelectedItem = 0;
comboBox1.Text = "Select Item";
}
我有两个用户控件。一个是输入数据,另一个有一个组合框,显示来自我的 MySQL table 的数据。
用户在第一个用户控件中键入数据并按下按钮。这会将数据添加到 MySQL table。我想立即/自动将数据添加到组合框(其他用户控件)中。
我宁愿不使用事件来完成它。如果不可能并且我必须使用事件,我应该使用什么事件?它可以是与按钮无关的事件吗?
这是从 MySQL 读取数据并将其添加到组合框的方法:
private void LoadFromDatabase()
{
string query = "select name from country";
MySqlConnection conn = new MySqlConnection(connection);
MySqlCommand command = new MySqlCommand(query,conn);
MySqlDataReader Read;
conn.Open();
Read = command.ExecuteReader();
while(Read.Read())
{
metroComboBox1.Items.Add(Read.GetString("name"));
}
conn.Close();
}
当前结果是我必须重新加载 windows 表单才能将新数据加载到组合框中。如果不重新加载,组合框仅显示旧数据。我已将该方法放在组合框用户控件的 InitializeComponent();
下。
您可以在组合框本身上使用事件点击,因此只要您点击它打开下拉列表,它就会更新组合框。确保清除点击事件顶部的项目以防止重复。
如果您真的坚持没有事件,您可以使用后台工作者,但是对于您正在做的事情,为此生成一个线程似乎有点过分了。
这是最终结果的想法。
private void comboBox1_Click(object sender, EventArgs e)
{
if (comboBox1.Items.Count > 0)
comboBox1.Items.Clear();
LoadFromDatabase();
comboBox1.SelectedItem = 0;
comboBox1.Text = "Select Item";
}