Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сохранение связанных таблиц 
:(
    Опции темы
mongoloid
Дата 6.8.2011, 21:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 22.8.2009

Репутация: нет
Всего: 1



 Суть проблемы: имеются три связанные таблицы, БД - SQL Server CE 3.5. Таблицы созданы в конструкторе, интерфейс юзера к ним (ДатаГридВью) - тоже.  Во всех таблицах ключевые поля - автоинкрементные. Одна из таблиц связана с двумя другими отношениями один-ко-многим. После внесения изменения в таблицы не удается сохранить БД, выскакивает ошибка - "Невозможно вставить внешний ключ, так как не существует соответствующий первичный ключ [...]"

 Поиск решения проблемы привел сюда: Д.Сеппа. Программирование на Microsoft ADO.NET 2.0, стр. 499. Цитата: 
" ВНИМАНИЕ! Полученные значения автринкремента могут не каскадироваться к соответствующим дочерним записям, что обусловлено особенностями средств проектирования среды Visual Studio, которые конфигурируют объект DataSet со строгим контролем типа. Как уже упоминалось в главе 9, объекты DataRelation, автоматически генерируемые средой Visual Studio 2005, не связаны с объектом ForeignKeyConstraint, поэтому изменения в родительской записи не могут каскадироваться в соответствующие дочерние записи. Столкнувшись с этой проблемой, дважды нажмите DataRelation объекта DataSet со строгим 
контролем типа и укажите в появившемся диалоговом окне, что вам необходимы объекты DataRelation и ForeignKeyConstraint, и присвойте свойству Cascade значения Update и Delete. Оставьте свойство Accept Reject равным None. "
 Кто сумеет объяснить, что имел в виду мэтр? Где находится объект, на который нужно нажимать дважды? Предполагаю, что в VS 2010 нажимать нужно на что-то другое, на что именно?
PM MAIL   Вверх
jonie
Дата 7.8.2011, 10:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 8
Всего: 118



открывайте редактор DataSet-а (дважды по xsd файлу тыркайте). Будет отображена схема, включающая в себя и Relation-ы между таблицами (связи помечаются линиями между таблицами).  Вот по линиям между таблицами и щелкайте дважды..


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
mongoloid
Дата 7.8.2011, 10:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 22.8.2009

Репутация: нет
Всего: 1



 Не помогает... А в перевод Сеппы, по-моему, не помешало бы внести поправку. По-моему, должно быть так: "... и присвойте правилу обновления (Update) и правилу удаления (Delete) значение Cascade. Правило принятия или отклонения (Accept Reject) оставьте равным None".

Это сообщение отредактировал(а) mongoloid - 7.8.2011, 10:44
PM MAIL   Вверх
alexprogramer
Дата 23.10.2011, 22:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 23.10.2011

Репутация: нет
Всего: нет



Похожая проблема 1 в 1. Попытался использовать tableAdapterManager.UpdateAll стала сохраняться только самая первая таблица а изменения в остальных нет. Перечитал форумы мсдн нифига не помогает и никто толком ничего не может ответить. Проблема сто раз у всех должна была возникать, подскажите пож как решить.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
stab
mr.DUDA
Exception

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, stab, mr.DUDA, Exception.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Базы данных под .NET | Следующая тема »


 




[ Время генерации скрипта: 0.0629 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.