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均为"通用动力总成",这是什么原因呢?请高手帮忙看看
//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均为"通用动力总成",这是什么原因呢?请高手帮忙看看
里面的query是根据ll中最后一个通用动力总成查询出来的
你可以把后面的代码放进foreach里面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();
} }
LINQ写的倒没什么问题,最终输出参数是否应该写成这样?foreach (DbParameter p in cmd.Parameters)
{
string pa += p.ParameterName + " ,";
string va += p.Value.ToString() + " ,";;
}
string va= "";
foreach (DbParameter p in cmd.Parameters)
{
pa += p.ParameterName + " ,";
va += p.Value.ToString() + " ,";;
}