Самый простой способ использовать DatagridView с Linq to SQL - PullRequest
6 голосов
/ 16 июня 2009

Я никогда не использовал сетки данных и тому подобное, но сегодня я столкнулся с простой проблемой и решил «связать данные», чтобы закончить это быстрее, однако я обнаружил, что это не работает так, как я ожидал.

Я думаю, что делая что-то простое, как:

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

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

Тогда использование этого списка в DataGridView1.DataSource было всем, что мне было нужно, однако, независимо от того, сколько я гуглю, я не могу найти достойный пример того, как заполнять (добавлять / редактировать / изменять) результаты один запрос к таблице в DataGridView1. Большинство примеров говорят о ASP.NET, который мне не хватает, это WinForms.

Есть идеи?

Я сталкивался с другими постами и GetNewBindingList, но, похоже, это не сильно изменится.

Чего мне не хватает (должно быть очевидно)?

Ответы [ 5 ]

4 голосов
/ 16 июня 2009

Вы можете просто привязать результат IQueryable к DataGridView, не зная, почему вы преобразуете его в BindingList, есть ли для этого особая причина?

3 голосов
/ 16 июня 2009

Вы можете взглянуть на TableList<T> из этого поста - на основе BindingList<T>, но с перехватами в контексте данных.

2 голосов
/ 04 февраля 2011

Попробуйте, посмотрите ответ thegas: Невозможно редактировать, Просмотр данных, заполненный запросами результатов, linq-запрос

Рядом с BindingList он использует BindingSource. И вместо класса MergeEntry вы используете класс Customer.

0 голосов
/ 26 апреля 2014

string = "12/11/2014"

Попробуйте это:

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
{
}
0 голосов
/ 17 июня 2009

Просто свяжи это.

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

Нет необходимости преобразовывать его в список.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...