首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

急Linq to sql多条件查询同一字段,参数均相同解决方案

2012-05-11 
急急急,Linq to sql多条件查询同一字段,参数均相同string[] ll { PA, @, 220,50Hz,通用动力总

急急急,Linq to sql多条件查询同一字段,参数均相同
string[] ll = { "PA", "@", "220","50Hz","通用动力总成"};

  IQueryable<OITM> query = db.OITM;
  //for (int i = 0; i < list.Count;i++ )
  foreach (string keyword in ll)
  {
  string temp = keyword;
  query = query.Where(p => p.ItemName.Contains(temp));
  }
  DbCommand cmd = db.GetCommand(query);
  string str = cmd.CommandText;
  foreach (DbParameter p in cmd.Parameters)
  {
  string pa = p.ParameterName;
  string va = p.Value.ToString();
  }

  return query.ToList();  
以上代码的查询条件都是针对ItemName,经过测试,发现,DbParameter 对应的Value均为"通用动力总成",这是什么原因呢?请高手帮忙看看

[解决办法]
因为DbCommand cmd = db.GetCommand(query)
里面的query是根据ll中最后一个通用动力总成查询出来的
你可以把后面的代码放进foreach里面

C# code
IQueryable<OITM> query = db.OITM;  //for (int i = 0; i < list.Count;i++ )  foreach (string keyword in ll)  {      string temp = keyword;      query = query.Where(p => p.ItemName.Contains(temp));        DbCommand cmd = db.GetCommand(query);      string str = cmd.CommandText;     foreach (DbParameter p in cmd.Parameters)     {      string pa = p.ParameterName;      string va = p.Value.ToString();     }  }
[解决办法]
C# code
  string pa="";  string va= "";foreach (DbParameter p in cmd.Parameters)  {  pa += p.ParameterName + " ,";  va += p.Value.ToString() + " ,";;  } 

热点排行
Bad Request.