Databinding
От: alxm  
Дата: 03.12.03 13:04
Оценка:
Привет.
не могу правильно связать таблицы. Есть две таблицы Items, ItemAttribute, связаны по foreign key,
в таблице Items есть поле AttributeId связанное с первичным ключом в ItemAttribute

Я хотел сделать lookup в DataGrid и в своем контроле ч/з DataBinding и DataRelation,
делаю Relation , короче код понятнее будет —



m_item      = new DataTable("items");
m_item->Columns->Add(new DataColumn("ID"));
m_item->Columns->Add(new DataColumn("NAME"));
m_item->Columns->Add(new DataColumn("ATTR_ID"));

m_item_attr     = new DataTable("item_attr");
m_item_attr->Columns->Add(new DataColumn("ID"));
m_item_attr->Columns->Add(new DataColumn("NAME"));

m_dataset->Relations->Add("I_ATTR",m_dataset->Tables->get_Item("item_attr")->Columns->get_Item("ID")
           ,m_dataset->Tables->get_Item("items")->Columns->get_Item("ATTR_ID"));
// а здесь я делаю что-то не то... :(((
m_textbox->DataBindings->Add(new Binding(S"Text", m_dataset, S"r_item.I_ATTR.NAME"));

читаю доки, примеров не нашел таких. нашел один, но там руками поиск делается, т.е. binding с ATTR_ID
и при изменении номера записи поиск в таблице. Неужели ч/з DataRelation нельзя этого сделать?

alx


22.12.03 14:22: Перенесено модератором из '.NET' — TK
Re: Databinding
От: retalik www.airbandits.com/
Дата: 03.12.03 13:24
Оценка:
Здравствуйте, alxm, Вы писали:

A>Я хотел сделать lookup в DataGrid и в своем контроле ч/з DataBinding и DataRelation,

A>делаю Relation , короче код понятнее будет —
А чего не попробуешь создать .xsd, нарисовать Relation в дизайнере и сгенерировать класс для датасета?
Я ручками релэйшны ни разу еще не создавал...
Успехов,
Виталий.
Re: Databinding
От: Taurvat Россия  
Дата: 03.12.03 14:08
Оценка:
Здравствуйте, alxm, Вы писали:

A>Привет.

A>не могу правильно связать таблицы. Есть две таблицы Items, ItemAttribute, связаны по foreign key,
A>в таблице Items есть поле AttributeId связанное с первичным ключом в ItemAttribute

A>Я хотел сделать lookup в DataGrid и в своем контроле ч/з DataBinding и DataRelation,

A>делаю Relation , короче код понятнее будет —


A>

A>m_item      = new DataTable("items");
A>m_item->Columns->Add(new DataColumn("ID"));
A>m_item->Columns->Add(new DataColumn("NAME"));
A>m_item->Columns->Add(new DataColumn("ATTR_ID"));

A>m_item_attr     = new DataTable("item_attr");
A>m_item_attr->Columns->Add(new DataColumn("ID"));
A>m_item_attr->Columns->Add(new DataColumn("NAME"));

A>m_dataset->Relations->Add("I_ATTR",m_dataset->Tables->get_Item("item_attr")->Columns->get_Item("ID")
A>           ,m_dataset->Tables->get_Item("items")->Columns->get_Item("ATTR_ID"));
A>// а здесь я делаю что-то не то... :(((
A>m_textbox->DataBindings->Add(new Binding(S"Text", m_dataset, S"r_item.I_ATTR.NAME"));

A>

A>читаю доки, примеров не нашел таких. нашел один, но там руками поиск делается, т.е. binding с ATTR_ID
A>и при изменении номера записи поиск в таблице. Неужели ч/з DataRelation нельзя этого сделать?

A>alx


Хмм, насколько я вижу, ты в виде dataMember подаешь "r_item.I_ATTR.NAME", но у тебя нет таблицы с именем "r_item", потому и не работает вроде.
Re[2]: Databinding
От: alxm  
Дата: 03.12.03 14:21
Оценка:
Здравствуйте, Taurvat, Вы писали:


T>Хмм, насколько я вижу, ты в виде dataMember подаешь "r_item.I_ATTR.NAME", но у тебя нет таблицы с именем "r_item", потому и не работает вроде.

Нет это я код упрощал для демонстрации, и недоправил.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.