2014-08-27 65 views
-3

我试图用一个文本框作为搜索参数,在这里寻找一个SQLite数据库是我到目前为止:Windows 8应用 - LINQ搜索结果

private async void search_Click(object sender, RoutedEventArgs e) 
    { 


     try 
     { 
      var dbpath = Path.Combine(Windows.Storage.ApplicationData.Current.LocalFolder.Path, "hdw.sqlite"); 
      using (var db = new SQLite.SQLiteConnection(dbpath)) 
      { 
       //var d = from x in db.Table<Customers>() select x; 
       //var custSearchQuery = db.Table<Customers>().Where(x => x.customerName == TBSearch.Text); 

       string search = TBSearch.Text; 
       var custSearchQuery = from x in db.Table<Customers>() 
             where search.Contains(x.customerName) 
             select x; 

       customerList.Items.Clear(); 

       //customerList.ItemsSource = db.Table<Customers>(); 


       foreach (var sd in custSearchQuery) 
       { 

        customerList.Items.Add(sd.customerNumber.ToString()); 

       } 

       db.Dispose(); 
       db.Close(); 
      } 


     } 
     catch 
     { 
     } 
    } 

我试图返回所有结果TBSearch值位于customerName字段中。

+0

,什么是你的问题? – Servy 2014-08-27 16:22:21

+2

你不应该有一个空的catch块。 – Servy 2014-08-27 16:23:35

+1

你为什么在'using'块中调用'Dispose()'和'Close()'? – DGibbs 2014-08-27 16:24:13

回答

0

我现在的工作:

string search = TBSearch.Text; 

       var custSearchQuery = from c in db.Table<Customers>() 
             where c.customerName.Contains(search) 
             select c;