Я создал новый проект в .Net (2010 4.0) и добавил файл данных SDF. Я сгенерировал набор данных и создал в нем таблицу (и я уверен, что сгенерировал Fill и другие методы).
В коде я пытаюсь добавить строку в базу данных.
eBureauScrubber.App_Data.matchingtempDataSet ds = new App_Data.matchingtempDataSet();
eBureauScrubber.App_Data.matchingtempDataSet.ctfFileRow row = ds.ctfFile.NewctfFileRow();
row.Address = "123 Main St.";
row.City = "Overland Park";
row.FirstName = "Matt";
row.LastName = "Dawdy";
row.rownum = 1;
РЕДАКТИРОВАТЬ: Добавлен следующий бит кода.
ds.ctfFile.Rows.Add(row);
ds.ctfFile.AcceptChanges();
ds.AcceptChanges();
eBureauScrubber.App_Data.matchingtempDataSetTableAdapters.ctfFileTableAdapter ctfa = new App_Data.matchingtempDataSetTableAdapters.ctfFileTableAdapter();
ctfa.Update(ds.ctfFile);
Это работает нормально. Однако после завершения программы данные не сохраняются в базе данных. Чего мне не хватает?
РЕДАКТИРОВАТЬ: я пробовал все различные комбинации AcceptChanges () для таблицы данных, набора данных, запуска update () до, после и т. Д. Я здесь упускаю что-то огромное. Я даже не уверен, что он подключается к «правильной» базе данных. Может быть, это моя проблема.
РЕДАКТИРОВАТЬ 2: Вот что я сделал, чтобы заставить это работать (хотя это все еще прикольное).
- Измените свойства моего файла БД в App_Data на «Не копировать»
- Вручную скопируйте этот файл базы данных в bin \ debug \ app_data
- Используйте метод заполнения адаптера данных для заполнения таблицы данных ds.ctfFile.
- Создать строку (.NewctfFileRow ())
- Установить значения в этой строке.
- ds.ctfFile.AcceptChanges ();
- ds.AcceptChanges ();
- Вызвать метод обновления адаптера.
Теперь данные находятся в моем файле базы данных (в bin \ debug \ app_data), но я не вижу их из-за соединения с источниками данных. Я все еще пытаюсь выяснить, как это сделать.