2013-04-08 62 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