我有以下LINQ查询工作正常:过滤结果集LINQ查询
var comps = (from c in tc.companies
join r in tc.registry
on c.Key equals r.Key
select new { FieldValue=r.FieldValue, Name=c.Name, Company=c.Company,Industry=c.Industry,Rank=c.Rank});
现在我想查询只返回那些记录,fieldValue方法等于从TextBox1的
提交的值我曾尝试:
var comps = (from c in tc.companies
join r in tc.registry
on c.Key equals r.Key
where r.FieldValue==TextBox1
select new { FieldValue=r.FieldValue, Name=c.Name, Company=c.Company,Industry=c.Industry,Rank=c.Rank});
return View(comps);
和
var comps = (from c in tc.companies
join r in tc.registry
on c.Key equals r.Key
where r.FieldValue==TextBox1
select new { FieldValue=r.FieldValue, Name=c.Name, Company=c.Company,Industry=c.Industry,Rank=c.Rank});
comps=comps.Where(x => x.FieldValue== TextBox1);
return View(comps);
但既不返回任何数据。我究竟做错了什么?
更新:
public ActionResult Index(string TextBox1)
{
if (TextBox1 != null)
{
var comps = (from c in tc.companies
join r in tc.registry
on c.Key equals r.Key
where r.FieldValue==TextBox1
select new { FieldValue=r.FieldValue, Name=c.Name, Company=c.Company,Industry=c.Industry,Rank=c.Rank});
return View(comps);
}
}
解决了!答案在下面!不是我认为的 - 在查询中反转表格顺序。有趣的PAF-R是,不管没有过滤器的查询工作表顺序的
也许你应该比较'r.FieldValue'到'TextBox1.Text'? “TextBox1”是整个控件,而不是文本框中的值。 “TextBox1.Text”是包含输入到文本框中的值的属性。 – squillman
TextBox1不是整个控件,而是一个字符串值 - 我将它传递给我的控制器的索引动作 – ElenaDBA
作为一个良好的约定,使用“==”进行字符串比较通常会[frowned upon](http:// stackoverflow的.com /问题/ 814878/C锋利差和 - 等于间)。首选的方法是String.Equals。 *可能会导致你的问题... – bvoyelr