我有2个类别,我变成一个列表,并打算使用它作为数据源的下拉组合框在C#负载从一个SQL Server数据库C#组合框列表
B类是数据库连接到B类,例如(在数据库中):
CatA CatB
a 1
a 2
b 3
b 4
的计划是使用droplist选择CATA和变化它会加载中CatB到第二droplist。
所以,如果我选择CATA =一个我会得到CATB = 1,2
代码即可获得CATA
public List<string> getCatAlist()
{
List<string> catAlist = new List<string>();
List<string> filteredList = new List<string>();
_con.Open();
_cmd.CommandText = "SELECT * FROM category";
var dr = _cmd.ExecuteReader();
while (dr.Read())
catAlist.Add(dr["catA"].ToString());
_con.Close();
filteredList = catAlist.Distinct().ToList();
return filteredList;
}
代码即可获得CATB
public List<string> getCatBlist(string catA)
{
List<string> catBlist = new List<string>();
_con.Open();
_cmd.CommandText = "SELECT * FROM category WHERE catA='"+catA+"';";
var dr = _cmd.ExecuteReader();
while (dr.Read())
catBlist.Add(dr["catB"].ToString());
_con.Close();
return catBlist;
}
的问题将列表设置为组合框的数据源
我打开到数据库的连接,并在第一次运行它加载列表,但是当我尝试再次使用它时,它会将其转换为数据源的静态列表。
关于如何解决这个问题的任何想法?
提示:catAlist的cmdtxt可以从类别中选择不同的CatA。所以CPU不必这样做。你可以发布'OnSelectionChanged'代码,这看起来比SQL代码更相关。 – RadioSpace 2014-10-11 23:08:28
@RadioSpace现在有问题,视觉工作室以某种方式杀死代码,或多或少的选择更改comboB.datasoure = getCatBlist(comboA.text); – Iakovl 2014-10-11 23:23:55
@ T.S。做的变化,但不是很多,我可以重新考虑它只做一次,而加载不得不重新加载,如果我添加新的。或者可以添加刷新按钮和命令来更新全局列表。 – Iakovl 2014-10-11 23:25:04