Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Передача на сервер данных из DataTable как результата запроса из нескольких таблиц / 9 сообщений из 9, страница 1 из 1
13.10.2008, 13:26
    #35591141
Thistle
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача на сервер данных из DataTable как результата запроса из нескольких таблиц
Всем доброго времени суток.
Недавно перешел с ADO на ADO.NET.
Использование CommandBuilder понятно, он позволяет генерировать Insert, Delete и Update команды только для DataTable, полученных запросом из одной таблицы.
Однако, очень часто приходится отображать запрос из нескольких таблиц, НО при этом позволять редактировать только данные одной таблицы запроса (ключевой). Напимер есть две таблицы:

Таблица Сотрудники:
ИДСотрудника
ИмяСотрудника
ИДДолжности

Таблица Должности:
ИДДолжности
НазваниеДолжности

Наполняю DataTable в DataSet следующим запросом:
select с.ИДСотрудника, с.ИмяСотрудника, с.ИДДолжности, д.НазваниеДолжности
from Сотрудники с inner join Должности д on с.ИДДолжности = д.ИДДолжности

в гриде отображаю ИмяСотрудника, НазваниеДолжности. ИмяСотрудника редактируется в самом гриде, ИДДолжности редактируется посредством вызова другой формы, выбора в ней должности и, соответственно, изменения значения столбца ИДДолжности, который не отображается в гриде.

Таким образом, при сохранении данных мне необходимо обновить только таблицу Сотрудники на сервере, ни коем образом не затрагивая таблицу должностей.

Как можно сгенерировать Insert, Delete и Update команды датаадаптера? в ADO такая возможность была, вот в ADO.NET не могу найти как это сделать кроме как написать эти команды руками, что несколько неприемлимо в моем случае, создавать несколько таблиц в датасете и настраивать отношения между ними тоже очень неудобно. Может тут может помочь TableMappings?
...
Рейтинг: 0 / 0
13.10.2008, 14:59
    #35591411
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача на сервер данных из DataTable как результата запроса из нескольких таблиц
Много слов.

ThistleПередача на сервер данных из DataTable как результата запроса из нескольких таблиц

Название сервера нужно угадать?
...
Рейтинг: 0 / 0
13.10.2008, 16:06
    #35591634
Thistle
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача на сервер данных из DataTable как результата запроса из нескольких таблиц
Причем здесь название сервера?
...
Рейтинг: 0 / 0
13.10.2008, 16:19
    #35591688
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача на сервер данных из DataTable как результата запроса из нескольких таблиц
ThistleПричем здесь название сервера?

ThistleПередача на сервер данных из DataTable

А при том, SQL-сервер не может работать с DataTable. В качесте аргумента передаются разные типы (Xml, Text, String и т.д.) в ту же хранимую процедуру.
...
Рейтинг: 0 / 0
13.10.2008, 16:35
    #35591726
Thistle
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача на сервер данных из DataTable как результата запроса из нескольких таблиц
Пока СУБД две: MS SQL Server и FireBird
...
Рейтинг: 0 / 0
13.10.2008, 17:07
    #35591814
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача на сервер данных из DataTable как результата запроса из нескольких таблиц
ThistleПока СУБД две: MS SQL Server и FireBird
Что мешает наборы данных передавать в xml?
...
Рейтинг: 0 / 0
13.10.2008, 17:14
    #35591832
Паттерныч
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача на сервер данных из DataTable как результата запроса из нескольких таблиц
ThistleПока СУБД две: MS SQL Server и FireBird

что будут и ещё?
...
Рейтинг: 0 / 0
14.10.2008, 12:47
    #35593161
Thistle
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача на сервер данных из DataTable как результата запроса из нескольких таблиц
Возможно кому-нибудь будет интересно решение данной проблемы.
Выяснил, что стандартными средствами такое сделать вроде бы как нельзя. Но можно "обамануть" подложив сначала вместо запроса с джойнами запрос вроде select * from table из таблицы, которую надо менять, затем создав CommandBuilder, заменить запрос на требуемый, заполнить датаадаптер и присвоить Insert, Update и Delete команды из созданного ранее построителя.
...
Рейтинг: 0 / 0
14.10.2008, 12:56
    #35593192
Алексей К
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача на сервер данных из DataTable как результата запроса из нескольких таблиц
МСУЧто мешает наборы данных передавать в xml?a525
...
Рейтинг: 0 / 0
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Передача на сервер данных из DataTable как результата запроса из нескольких таблиц / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]