2013-03-05 37 views
1

我希望能夠查詢包含正確記錄的子集,然後是總共13行的前後6個子集,並將它們顯示在DGV中。查詢拉出正確的行如下:查詢記錄+前後6行?

private void textBox6_Leave(object sender, EventArgs e) 
    { 
     DataClasses3DataContext db = new DataClasses3DataContext(); 

     var matchedAdd = (from c in db.GetTable<prop>() 
          where c.HOUSE_NO.Contains(textBox1.Text) && c.Direction.Contains(textBox2.Text) && c.street.Contains(textBox3.Text) && c.SUFF.Contains(textBox4.Text) 
          select c).SingleOrDefault(); 
    } 
+0

你有一個自動遞增的ID列? – 2013-03-05 20:17:05

+0

嗯,是的,我忘記了ID列。沒有它的不自動增量,因爲它被一個唯一的值所保存,它的PARCEL號或多或少與屬性地址相對應。 – korrowan 2013-03-05 20:20:11

+0

所以他們訂購是否正確?你只想找到項目X,並在數據庫之前的6行之前和6行之後? – Thousand 2013-03-05 20:21:04

回答

0

如果PARCEL號碼增加,然後使用您的查詢來檢索地塊號碼。

然後:

var before = (from c in db.GetTable<prop>() 
         where c.PARCEL < retrievedParcelNumber orderby c.PARCEL descending 
         select c).Take(6); 

var after = (from c in db.GetTable<prop>() 
         where c.PARCEL > retrievedParcelNumber orderby c.PARCEL 
         select c).Take(6); 
+0

我得到這個錯誤:Error'System.Linq.IOrderedQueryable '沒有包含'take'的定義,也沒有擴展方法'take'接受類型'System.Linq.IOrderedQueryable的第一個參數' – korrowan 2013-03-05 23:53:55

+0

hmm以大寫'T'開頭。檢查這是否是問題 – 2013-03-06 06:32:54

+0

這表示謝謝。我如何將結果推送到DataGridView? 3次查詢時從未這樣做過。 – korrowan 2013-03-06 15:09:30