Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Базы данных под .NET > Отношения между таблицами


Автор: Hidrag 23.10.2005, 05:24
Создаю отношение, записываю его в DataSet все ок! Создаю второе отношение записываю в базу, компилится но при запуске появляется ошибка. Отношения написаны правильно так как по отдельности они записываются и работают.
Записываю их так (C#Builder):

Код

private void BuildTableRelationship()
{
    DataRelation dr;
    dr = new DataRelation("CustomerOrder",carsDataSet.Tables["Customers"].Columns["CustID"],carsDataSet.Tables["Orders"].Columns["CustID"]);
    carsDataSet.Relations.Add(dr); 
    dr = new DataRelation("InventoryOrder",carsDataSet.Tables["Inventory"].Columns["CarID"],carsDataSet.Tables["Orders"].Columns["CarID"]);
    carsDataSet.Relations.Add(dr);
}


В чем может быть ошибка?

Автор: mr.DUDA 23.10.2005, 13:07
При добавлении записей чтобы не было гимора из-за constrain'ов (порядок добавления важен), делай "dataset.EnforceConstraints = false" в самом начале, и "dataset.EnforceConstraints = true" - в конце. И убедись, что нет неправильных или отсутствующих ссылок по Id-шникам между записями в Orders и Inventory, Customers.

З.Ы. ещё лучше - спроектируй XSD-схему с включенной автогенерацией датасета. Каждая таблица будет element-ом, а связи между ними добавляются drag&drop'ом колонок (если в вижуал студии).

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)