我们需要通过从其他组合框中选择值来将值添加到组合框中
问题描述:
我们需要通过从另一个组合框中选择值来将值添加到组合框。 它不会按照它应该选择的值。只有第一部分执行。 这是代码: 它不适合我们。我们需要通过从其他组合框中选择值来将值添加到组合框中
private void section_SelectedIndexChanged(object sender, EventArgs e)
{
string selected = (string)section.SelectedItem;
if(selected == "Giftarticles")
{
SqlConnection conn1 = new SqlConnection(connString);
conn1.Open();
string itemc = "(select distinct Itemcode from Items where Section1 like 'G%')except(select distinct Itemcode from Items where Section1 like 'H%')";
SqlCommand cmditem = new SqlCommand(itemc, conn1);
SqlDataReader dr2 = cmditem.ExecuteReader();
while (dr2.Read())
{
itemcode.Items.Add(dr2["Itemcode"].ToString());
}
dr2.Close();
conn1.Close();
}
else
{
SqlConnection conn2 = new SqlConnection(connString);
conn2.Open();
string itemc1 = "(select distinct Itemcode from Items where Section1 like 'H%')except(select distinct Itemcode from Items where Section1 like 'G%')";
SqlCommand cmditem = new SqlCommand(itemc1, conn2);
SqlDataReader dr2 = cmditem.ExecuteReader();
while (dr2.Read())
{
itemcode.Items.Add(dr2["Itemcode"].ToString());
}
dr2.Close();
conn2.Close();
}
}
答
我看到的是,如果是
和 之间 string itemc = "(select distinct Itemcode from Items where Section1 like 'G%')except(select distinct Itemcode from Items where Section1 like 'H%')";
string itemc1 = "(select distinct Itemcode from Items where Section1 like 'H%')except(select distinct Itemcode from Items where Section1 like 'G%')";
实际需要。
剔除这两个,其余部分显示相同。所以只有查询不能返回结果给你。独立运行这些查询,看看你是否得到结果。
答
虽然我讨厌在代码中直接利用连接,读卡器等,并会建议去的类型化的DataSet的方式,这里是应为你工作:
private void section_SelectedIndexChanged(object sender, EventArgs e)
{
string selected = (string)section.SelectedItem;
using(SqlConnection conn1 = new SqlConnection(connString))
{
conn1.Open();
string itemc = "select distinct Itemcode from Items where Section1 like 'G%'";
if(selected != "Giftarticles") itemc += " AND Section1 NOT LIKE 'H%'"
SqlCommand cmditem = new SqlCommand(itemc, conn1);
SqlDataReader dr2 = cmditem.ExecuteReader();
while (dr2.Read())
itemcode.Items.Add(dr2["Itemcode"].ToString());
dr2.Close();
conn1.Close();
}
}
这种替换整个上面的代码。
你确定你的第二个查询运行并产生正确的结果吗? – dotNET 2013-03-25 06:40:06
asp.net或windows应用程序? – Arshad 2013-03-25 06:40:27
如果Asp.Net是WebForms或MVC。如果Windows应用程序,它是WinForm或WPF或WinRT? – Aron 2013-03-25 06:41:30