【发布时间】:2016-09-16 14:25:43
【问题描述】:
我有这两个请求
if (prix1=="" && prixe2=="") {
ArrayList al = new ArrayList();
al.AddRange((from prodname in pms_data_.produit
where prodname.desgnation == Desg ||
prodname.labo.labo1 == Labo ||
prodname.rayon.rayon1 == Ra ||
prodname.Formf.form == FORM ||
prodname.code == CODBARRE
select prodname).ToList());
return al;
}
else
{
int p1 = Convert.ToInt32(prix1);
int p2 = Convert.ToInt32(prixe2);
ArrayList al = new ArrayList();
al.AddRange((from prodname in pms_data_.produit
where prodname.desgnation == Desg ||
prodname.labo.labo1 == Labo ||
prodname.rayon.rayon1 == Ra ||
prodname.Formf.form == FORM ||
prodname.code == CODBARRE ||
prodname.ppv >=p1 && prodname.ppv <=p2
select prodname).ToList());
return al;
因此,如果价格为空,我需要从数据库中导入数据,如果价格不为空,我需要从数据库中导入此数据大陆的价格。
我怎样才能用一个请求而不是 2 个请求来做到这一点?
【问题讨论】:
-
你只会调用一次数据库,你把它包裹在一个 if,else 语句中只有一个条件会运行,你的意思是你会做什么,例如: if (prix1 !=" " && prixe2=="") 反之亦然?
-
我会在调用 ToList 之前有条件地将 Where 应用到 IQueryable,或者在不应用过滤时设置 p1 = int.MinValue 和 p2 = int.MaxValue
-
我需要用请求中的条件替换 if 和 else
标签: c# sql sql-server arraylist