【发布时间】:2015-08-19 06:49:05
【问题描述】:
我正在制作一个 wpf,其中一个组合框根据另一个组合框填充。但是,只填充了一个组合框。
这是我下面的代码。
public partial class Form4 : Form
{
public Form4()
{
InitializeComponent();
this.Load += Form4_Load;
}
string connstring = ("Server=localhost;Port=5432;User Id=postgres;Password=021393;Database=postgres;");
private void Form4_Load(object sender, EventArgs e)
{
string query = "SELECT * FROM data_organsystem";
fillCombo(comboBox3, query, "name", "id");
comboBox3_SelectedIndexChanged(null, null);
}
private void fillCombo(ComboBox combo, string query, string displayMember, string valueMember)
{
NpgsqlConnection conn = new NpgsqlConnection(connstring);
NpgsqlCommand cmd = new NpgsqlCommand(query, conn);
NpgsqlDataAdapter da = new NpgsqlDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);
combo.DataSource = dt;
combo.DisplayMember = displayMember;
combo.ValueMember = valueMember;
}
private void comboBox3_SelectedIndexChanged(object sender, EventArgs e)
{
int val;
Int32.TryParse(comboBox3.SelectedValue.ToString(), out val);
string query = "SELECT * FROM data_symptom WHERE organ_system_id = " + val;
fillCombo(comboBox4, query, "name", "id");
}
}
}
如果您对如何编辑此代码有任何想法,那将是一个很大的帮助。谢谢!
【问题讨论】:
-
你有什么错误吗?
-
其实没有。代码运行。但只有一个组合框填充
-
你确定你的查询返回了什么?
-
我担心
comboBox3.SelectedValue.ToString()会抛出异常,因为comboBox3.SelectedValue是null。至少在comboBox3_SelectedIndexChanged方法的第一次执行中。ComboBox.SelectedValue如果未选择任何内容,则返回null。也许你可以使用ComboBox.SelectedValueChangedevent -
是的。您对@Shaharyar 的工作原理有其他想法吗?