我已经在谷歌搜索了一个简单的解决方案,但没有运气.我有一个标准的WPF组合框,我只希望能够根据用户在组合框具有焦点时键入的前2或3个字母来过滤显示的列表.我尝试了一些编码,包括一些lamba表达式,但错误"System.NotSupportedException"不断被抛出指定"combobox.Items.Filter"的行.我没有使用MVVM,只是希望这个简单的功能可供用户使用.请帮忙!PS IsEditable,IsTextSearchEnabled和StaysOpenOnEdit属性设置为true,但尚未实现所需的功能.
我不是一个非常有经验的程序员,所以请耐心等待!我必须根据另一个表(ProdDesigns)中的数据从表(Chemie)中提取数据.显而易见的答案是使用子查询.像这样的东西:
SELECT chemie.rmcode,
chemie.sio2,
chemie.al2o3,
chemie.fe2o3,
chemie.feo,
chemie.tio2,
chemie.cao,
chemie.mgo,
chemie.na2o,
chemie.k2o,
chemie.cr2o3,
chemie.p2o5,
chemie.sic,
chemie.c,
chemie.mno,
chemie.zro2,
chemie.b2o3
FROM chemie
INNER JOIN proddesigns
ON chemie.rmcode = proddesigns.rmcode
WHERE chemie.rmcode = (SELECT proddesigns.rmcode
FROM proddesigns
WHERE proddesigns.batchno = 1234)
Run Code Online (Sandbox Code Playgroud)
问题是来自表ProdDesigns的数据子集总是多个记录,因此我得到错误"此子查询最多可以返回一条记录".所以我正在考虑使用临时表并尝试以下方法:
conn.Open();
OleDbCommand cmdRM = null;
cmdRM = conn.CreateCommand();
cmdRM.CommandText = (@"SELECT * INTO ##tempTest FROM ProdDesigns WHERE batchNo = 1234");
cmdRM.ExecuteNonQuery();
dataAdapter2 = new OleDbDataAdapter(@"SELECT Chemie.RMCode, Chemie.SiO2, Chemie.Al2O3, Chemie.Fe2O3, Chemie.FeO, Chemie.TiO2, Chemie.CaO, Chemie.MgO, Chemie.Na2O, Chemie.K2O, Chemie.Cr2O3, Chemie.P2O5, Chemie.SiC, Chemie.C, Chemie.MnO, …Run Code Online (Sandbox Code Playgroud)