2013-04-08 60 views
1
Project_Detail pro = new Project_Detail(); 
string title=Ttitle.Text; 
string year1=Tyear.Text; 
string key = Tkeywrds.Text; 
string area = Ddl_area.Text; 
string categ = Ddl_catgry.Text; 
string tech = Ddl_tech.Text; 
string type =Ddl_type.Text; 

var q = from obj in da.Project_Details 
     where obj.Project_Title.Contains(title) 
       || obj.Submission_Date.Contains(year1) 
       || obj.Keywords.Contains(key) 
       || obj.Project_Area.Contains(area) 
       || obj.Project_Category.Contains(categ) 
       || obj.Project_Technology.Contains(tech) 
       || obj.Project_Type.Contains(type) 
     select obj; 

if (q != null) 
{ 
    DetailsView1.DataSource = q; 
    DetailsView1.DataBind(); 
} 
else 
{ 
    Literal1.Text = "Data not found"; 
} 

这段代码给出了表的最后一条记录,并且不给出其他条件结果。 我想要所有的条件的结果,并希望使用LIKE satatement。使用linq在asp.net中使用多个控件搜索多列

+0

如果你想使用SQL这样的:'SqlMethods.Like(obj.parameter)'。 – 2013-04-08 10:24:23

+0

如果任何搜索字符串为空,那么您的查询将返回所有元素,因为'myString.Contains(“”)'总是返回'true'。 – alzaimar 2013-04-09 05:37:28

回答

1

q从不为空。不过,它可能是空的。所以,你应该更改您的代码

if (q.Any()) // <<----- 
{ 
    DetailsView1.DataSource = q; 
    DetailsView1.DataBind(); 
} 
else 
{ 
    Literal1.Text = "Data not found"; 
} 
+0

它没有与多个搜索option.its一起工作使用一个查询 像obj.Project_Title.Contains(标题)这是它的工作 但有多个条件时,如 obj.Project_Title.Contains(title)|| obj.Submission_Date.Contains(year1)|| obj.Keywords.Contains(key)|| obj.Project_Area.Contains(区域)|| obj.Project_Category.Contains(categ)|| obj.Project_Technology.Contains(tech)|| obj.Project_Type.Contains(type) 它不能正常工作。它给出表中的所有记录 请帮忙... – avinash 2013-04-08 20:01:39

+0

问题在于你的where语句。如果您有可用的分析器,请查询并检查您的数据。 – alzaimar 2013-04-08 20:51:00

+0

Linq查询多个搜索操作与多个控制 – avinash 2013-04-09 03:34:36

0

您还可以使用计数方法.Count()

if (q.count()>0) 
{ 
    DetailsView1.DataSource = q; 
    DetailsView1.DataBind(); 
} 
else 
{ 
    Literal1.Text = "Data not found"; 
} 
+0

它不是用一个查询 那样工作obj.Project_Title.Contains(标题)这是工作 但有像 obj.Project_Title.Contains(标题)多重条件时||多个搜索option.its工作obj.Submission_Date.Contains(year1)|| obj.Keywords.Contains(key)|| obj.Project_Area.Contains(区域)|| obj.Project_Category.Contains(categ)|| obj.Project_Technology.Contains(tech)|| obj.Project_Type.Contains(type) 它不能正常工作。它给出表中的所有记录 请帮忙... – avinash 2013-04-08 20:05:44