Помогите отобразить данные в DataGrid.

PeterSV
Дата: 27.12.2004 16:40:49
Я создал dataset c двумя связанными таблицами Customers и Locations.
В Datagrid отображаю Customers, но при отображении нужно поле [customers].[location_id] заменить на [Locations].[location_name]. Как мне это сделать?
Сейчас у меня такой код:
MyDatagrid.DataSource=MyDataset.Tables["tblCustomers"].DefaultView;
Zigs
Дата: 27.12.2004 16:53:39
Проще всего на Таблицу Customers написать View, которая будет на уровне Бд будет присоединять Location_name.
Потом это все вывалить в датагрид
PeterSV
Дата: 27.12.2004 17:07:53
Мне бы хотелось хранить 2 таблицы в датасете. Привязать к ним Datagrid. В Датагриде отображать выборочные поля из Customers и при клике на записи открывать новую форму со всеми полями для редактирования Customers. Причем новые записи вставлять в таблицу Customers и потом методом Update синхронизировать Customers с источником данных. Такое можно организовать?
Worobjoff
Дата: 27.12.2004 18:03:34
На самом деле задача удобная для программирования:
Запрос (Customers inner join Loacations) - источник данных для грид.
В нем есть и locations_id и locations_name.
Вызванный диалог заполняет locations_id (ComboBox конечно).
UpdateCommand и InsertCommand (естественно их нет) создаем так, чтобы сохранение шло только в Customers (поле locations_id).
(DataSet.EnforceConstaints = false).
PeterSV
Дата: 27.12.2004 18:16:19
Да, попробую сделать так: в Датасет будет 2 таблицы:
1) (Customers inner join Loacations)
2) Locations (для заполнения комбобокса на форме редактирования).

У объекта SQLDataAdapter в свойствах DeleteCommand, InsertCommand и SelectCommand будут хранимые процедуры.
Думаю что должно работать
Worobjoff
Дата: 27.12.2004 18:20:23
InsertCommand, DeleteCommand, UpdateCommand не обязательно должны быть хранимыми процедурами.
Просто: UPDATE Customers SET location_id = @location_id, ... WHERE (Customer_id = @Original_Customer_id)

и т.д.
Worobjoff
Дата: 27.12.2004 18:25:45
+
UpdateCommand:

UPDATE Customers SET location_id = @location_id, ... WHERE (Customer_id = @Original_Customer_id);
SELECT ..., location_name, ... FROM Customers inner join Loacations WHERE (Customer_id = @Original_Customer_id)