Я пишу небольшое приложение для членов сообщества C # с использованием Visual Studio 2008 и нового уровня данных с .Net 3.5 вместе с SQLite.
Я использовал различные мастера для генерации моей основной формы, в которой есть BindingNavigator и BindingSource. Идея состоит в том, что форма показывает 1 запись, и вы можете обновить запись и использовать элементы управления BindingNavigator для перехода к другим записям, добавления записей, удаления записей и т. Д.
Я бы хотел, чтобы текущая запись записывалась обратно в базу данных всякий раз, когда пользователь переходит к другой записи (или закрывает форму).
Записи о членах содержат в себе поле автонумерации (я намереваюсь иметь отношения с другими таблицами в другом месте приложения).
Это все работает, кроме случаев, когда я добавляю новую запись. Новая запись сохраняется, но любая попытка обновить данные после этого выдает сообщение об ошибке в заголовке.
Я понимаю, что это потому, что поле autonumber не было добавлено в локальную копию набора данных при сохранении данных. Но я не знаю, где разместить код для получения идентификатора autonumber и вставить его в новую запись.
Я мог бы поместить код в метод Insert сгенерированного кода для таблицы данных, но мои изменения были бы потеряны в следующий раз, когда я что-то изменил в конструкторе, плюс я не уверен, что метод Insert действительно вызывается (помещая точка останова там, похоже, не останавливается).
Я гуглил ответ и нашел предложение установить флажок «Обновить после обновления» в дополнительных настройках конфигурации в конструкторе таблицы данных, но это не изменило сгенерированный код или не оказало никакого влияния (и когда Я вернулся, чтобы посмотреть, флажок был снят снова).
Дополнительный вопрос - где лучше всего прочитать обзор того, как DataBindingNavigator, DataBindingSource и новые сгенерированные классы данных все сочетаются друг с другом?
Наконец, извиняюсь, если вы видите другой, похожий вопрос от меня. Я мог бы поклясться, что спросил вчера, но не могу найти его здесь, так что я предполагаю, что он никогда не был опубликован.