2009-06-16 31 views
6

我從來沒有使用過datagrids等,但今天我遇到了一個簡單的問題,並決定「數據綁定」的東西來完成這個更快,但是我發現它沒有'不像我期待的那樣工作。最簡單的方法使用DatagridView與Linq到SQL

我雖然是做的簡單的東西:然後使用在DataGridView1.DataSource該名單的一切,我需要的,但是,不管我多麼谷歌,我找不到

var q = from cust in dc.Customers 
     where cust.FirstName == someString 
     select cust; 

var list = new BindingList<Customer>(q.ToList()); 
return list; 

一個關於如何將單個表格查詢的結果填充到DataGridView1中的體面示例(用於添加/編輯/修改)。大多數示例都談論我缺乏的ASP.NET,這是WinForms。

任何想法?

我遇到過其他帖子和GetNewBindingList,但這似乎沒有太大的改變。

我錯過了什麼(一定是顯而易見的)?

回答

4

您可以將IQueryable結果綁定到DataGridView,不確定爲什麼將其轉換爲BindingList,是否有特定的原因呢?

+2

提供雙向綁定,所以在DataGridView變化可以通知? – Kev 2009-06-16 11:36:08

+0

恩,沒理由。正如我剛纔提到的,我對DataGrids 100%是新的,這是我在谷歌土地上找到的一個例子。 :S(但它不起作用) – 2009-06-16 11:38:22

3

你可能會看this postTableList<T> - 基於BindingList<T>,但掛鉤到數據上下文中。

+0

哦,我已經看過那篇文章(在其中一個標籤中打開),我只是意識到這是你的文章! :) 將重新閱讀並詢問我是否有問題。謝謝。 – 2009-06-16 16:28:32

0

只要綁定它。

var q = from cust in dc.Customers 
      where cust.FirstName == someString 
      select cust; 
    DataGridView1.DataSource = q 

無需將其轉換爲列表。

0

字符串= 「2014年12月11日」

試試這個:

try 
{ 
    con_a_refacionesDataContextDataContext con = new con_a_refacionesDataContextDataContext(); 
    BindingSource b = new BindingSource(); 
    b.DataSource = from eq in con.Venta 
        where eq.fecha_dia == st 
        select eq; 
    dataGridView1.DataSource = b; 
} 
catch 
{ 
}