Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: Базы данных, ADO.NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
Alberto_Timakov
1 / 1 / 1
Регистрация: 21.11.2011
Сообщений: 183
1

результат запроса linq to sql содержит данные обеих таблиц, картографированных на классы. Я хочу результат присвоить в GridControl.DataSource

27.01.2014, 19:03. Просмотров 856. Ответов 5
Метки нет (Все метки)

Здравствуйте! У меня есть две таблицы T1(id_t1(PK),name), T2(id_t2(PK), id_t1(FK), date) отображенных на классы при помощи linq to sql и связанных по ключу id_t1. надо что-то вроде этого

C#
1
var v = from t1 in T1 join t2 in T2 on t1.id_t1 equals t2.id_t1 select new {t1.name, t2.date};
но Проблема в том, что когда я этот результат записываю в DataSource

C#
1
gridControl.DataSource = v;
колонки таблицы автоматически помечаются как нередактироуемые

C#
1
gridColumn.Options.ReadOnly = true;
и изменить это никак нельзя...

Это-за того, что в результате запроса получается анонимнный класс, который никак не связан с базой данных...

Вопрос, как можно в gridcontrol поместить результат запроса с данными из двух таблиц, чтобы эти данные были редактируемыми?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.01.2014, 19:03
Ответы с готовыми решениями:

GridControl-DevExprerss отобразить часть данных linq to sql запроса
Здравствуйте! Есть таблица T(id,name,city,date). var v = from t in T...

Результат LINQ запроса
Добрый день, подскажите как записать все записи из колонки результата запроса?...

Результат запроса LINQ
Не могу понять как передать результат LINQ таблице DataTable. например ...

Как вывести в GridView результат linq-запроса?
Запрос, нужно вывести его результат, то есть список мужчин из общего списка в...

Объединить результат нескольких строк в запросе Linq SQL
У меня есть 2 связанные таблицы. Одна - с заявками и двумя колонками: RequestId...

5
kodv
1419 / 1093 / 344
Регистрация: 11.04.2011
Сообщений: 2,606
Завершенные тесты: 1
28.01.2014, 09:51 2
Цитата Сообщение от Alberto_Timakov Посмотреть сообщение
как можно в gridcontrol поместить результат запроса с данными из двух таблиц, чтобы эти данные были редактируемыми?
Очень просто:
C#
1
gridControl.DataSource = v.CopyToDataTable();
PS: Чтобы эта строка заработала, нужно это и это. В своем ответе я исходил из того, что человек не может быть настолько тупым, чтобы начать использовать LINQ не прочитав руководство программиста, поэтому у этого человека не должно возникнуть лишних вопросов, ответы на которые находится в данном руководстве.
1
Alberto_Timakov
1 / 1 / 1
Регистрация: 21.11.2011
Сообщений: 183
28.01.2014, 15:25  [ТС] 3
В gride, данные редактируются, но не обнавляются в базе данных.
0
kodv
1419 / 1093 / 344
Регистрация: 11.04.2011
Сообщений: 2,606
Завершенные тесты: 1
28.01.2014, 15:46 4
Alberto_Timakov, каким образом вы обрабатываете изменения, внесенные в таблицу, созданную на основе LINQ-запроса? Или вы надеетесь, что изменения сами по себе дойдут до тех таблиц, из которых данные были выбраны?
0
Alberto_Timakov
1 / 1 / 1
Регистрация: 21.11.2011
Сообщений: 183
28.01.2014, 16:03  [ТС] 5
запрос
C#
1
2
3
4
5
var v = from t in dataContext.Table select t;
Table newt = new Table();
dataContext.Table.InsertOnSubmit(t);
//dataContext.Table.DeleteOnSubmit(t);
dataContext.SubmitChanges();
А здесь, я пытался DataTable.AcceptChanges();
0
kodv
1419 / 1093 / 344
Регистрация: 11.04.2011
Сообщений: 2,606
Завершенные тесты: 1
28.01.2014, 16:20 6
Alberto_Timakov, Я может неправильно выразился... Попробую перефразировать:
Когда вы выполняете строку:
C#
1
gridControl.DataSource = v.CopyToDataTable();
у вас создается новая таблица в которую копируются данные из вашего запроса. Все ваши изменения отражаются именно в этой буферной таблице. В тех таблицах, от куда вы данные выбрали, данные не меняются. Изменения, которые отражены в буферной таблице, сами по себе не отразятся в ваших таблицах. Вам нужно программно просмотреть, что пользователь наредактировал в гриде, и внести соответствующие изменения в таблицы из вашего DataContext, и лишь только потом вызывать SubmitChanges.
0
28.01.2014, 16:20
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.01.2014, 16:20

Вывести результат запроса в DataGridView (запрос из нескольких таблиц)
Прошу помощи, не могу вывести результат запроса в котором участвует более 1...

Результат SQL запроса в массив
Всем доброго времени суток! Подскажите, как в C# поместить результат SQL...

Результат SQL запроса в Word
Доброго времени суток. Вопрос. Необходимо по клику кнопки обратиться к базе...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru