【发布时间】:2016-10-24 06:40:13
【问题描述】:
我知道这可能已经被问过和回答过。但我无法在我的问题中使用它们,因为我是 wpf 的新手并在 c# 中连接数据库。
这是问题所在:我有一个 mysql 数据库,它的表有 2 列国家和地区。我从一个组合框中选择国家,这很好。我想根据国家选择地区。我使用 2 个组合框来选择国家和地区。
当我选择一个国家时,我仍然无法加载地区。我认为我的 sql 字符串和 wpf 事件处理可能会引发问题。
string new_student_sql = "SELECT Id,Name FROM world.city WHERE
CountryCode = '";
string connectionStr = new_student_sql + comboBoxCountry.Text +
"' AND District= '" + comboBoxDistrict.Text + "'";
MySqlCommand newStudent = new MySqlCommand(connectionStr, conn);
newStudent.CommandText = connectionStr;
conn.Open();
DataTable dt = new DataTable();
dt.Load(newStudent.ExecuteReader());
conn.Close();
dataGrid.DataContext = dt;
MessageBox.Show(connectionStr);
我将国家/地区值的组合框设置为 comboBoxCountry.Text。但是当我在上面列出的 comboBoxDistrict 选择更改方法中给出该值时,我在区域中得到了一个空的组合框。
我应该如何根据第一个的选择来填充它们。任何建议和代码示例将不胜感激。 提前致谢!
【问题讨论】:
-
您能否验证您对地区的查询是否确实返回了结果?如果它确实返回结果,请检查您所在地区组合框的数据绑定(方向)。从源更新,或双向更新。
-
@ISAF 不,它不会返回任何东西。
-
@ISAF 事情是这个comboBoxCountry.text 字符串不能被这个方法识别
-
虽然您的问题很容易理解,但我建议您使用分离视图和数据处理的方法(例如 MVVM)来实现您的应用程序。构建正确的模型将解决您的所有问题。
-
@dymanoid 你能指导我寻找这样的来源吗,然后正如我所提到的,我不了解 WPF 开发。因为我今天必须提交这个,所以我没有足够的时间从头开始学习 MVVM。我感谢您的关注,并且肯定会这样做。你能指出我代码中的问题吗?