C#: База данных sdf, как сохранить вносимые изменения?

ice-covered
Дата: 17.01.2010 22:15:21
Сделала все по инструкции - http://msdn.microsoft.com/ru-ru/library/bb655884.aspx
С БД общаюсь через DataSet - DataBase1DataSet (автоматически создался).
database1DataSet1 - экземпляр класса DataBase1DataSet.
Вначале работы программы делаю
database1DataSet1 = new DataBase1DataSet();
иначе ругается, что он всегда пустой.

Теперь все изменения в БД вношу через него.
Например
DataRow r = database1DataSet1.Tables["ScanData"].NewRow();
r["scan_date"] = DateTime.Now;
r["scan_file"] = FileName;
r["scan_folder"] = FolderPath;
database1DataSet1.Tables["ScanData"].Rows.Add(r);
database1DataSet1.AcceptChanges();
Пока программа работает все нормально. Изменения сохраняются в БД.
Но как только закрываю приложение, запускаю заново, таблица пуста.

Подскажите, что я не так делаю?
ice-covered
Дата: 17.01.2010 22:19:19
Точнее, не ЧТО не так, а как собственно в конце работы DataSet перезаписать в БД?
Andrew1411
Дата: 17.01.2010 23:09:39
ice-covered,

database1DataSet1.AcceptChanges();
у Вас сохраняет изменения в базу. Проблема у Вас в том, что файл .SDF перезаписывается в папке при компиляции (берется из папки проекта и пишется в bin\debug или bin\release). для того, что бы это исключить, можете изменить значение свойства Copy to Output Directory на Copy if newer.
Правда следующий вопрос возникнет - "почему не меняется структура базы" :)
МСУ
Дата: 17.01.2010 23:12:17
Типизированные датасеты умерли очень давно. Не надо их.

http://technet.microsoft.com/ru-ru/library/cc835494.aspx