Пробовал с простой XML сериализацией — не получается, хотя объект должен сохраняться весь вроде бы...
С методом WriteXml тоже непонятно — он сохраняет только незакомиченные данные.
Кто-нибудь пробовал сериализовать DataSet с сохранением статуса строк? Поделитесь опытом, плиз!
>С методом WriteXml тоже непонятно — он сохраняет только незакомиченные данные.
Почему Вы так решили? Все нормально он сохраняет.
данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Здравствуйте, Аноним, Вы писали:
А>>С методом WriteXml тоже непонятно — он сохраняет только незакомиченные данные.
А>
А>Почему Вы так решили? Все нормально он сохраняет.
Я загрузил таблицу из БД в dataSet, в таблице 2 строки со статусом unchanged; меняю одну из них : RowState -> Modified. Сохраняю:
TextWriter writer = File.CreateText(_previousVersionFilePath);
dataSet.WriteXml(writer);
writer.Close();
_scriptGenerating.SaveChanges();
Закрываю приложение, открываю заново, восстанавливаю локальную копию:
TextReader reader= File.OpenText(_previousVersionFilePath);
dataSet.ReadXml(reader);
reader.Close();
_scriptGenerating.LoadChanges();
У обеих строк статус — Added.
Я все аккуратно проверил с разными вариантами — результат тот же. Вне зависимости от прежнего статуса строк, новый — всегда Added.
Что я делаю не так?
Заранее благодарен.
Странно что Вы в своих экспериментах не наткнулись на второй параметр методов WriteXml и ReadXml. Передавайте в него XmlWriteMode.DiffGram и XmlReadMode.DiffGram соответственно.
данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Здравствуйте, Me_, Вы писали:
Me_>Здравствуйте, Аноним, Вы писали:
А>>>С методом WriteXml тоже непонятно — он сохраняет только незакомиченные данные.
А>>
А>>Почему Вы так решили? Все нормально он сохраняет.
Me_>Я загрузил таблицу из БД в dataSet, в таблице 2 строки со статусом unchanged; меняю одну из них : RowState -> Modified. Сохраняю:
Me_>Me_>TextWriter writer = File.CreateText(_previousVersionFilePath);
Me_>dataSet.WriteXml(writer);
Me_>writer.Close();
Me_>_scriptGenerating.SaveChanges();
Me_>
Me_>Закрываю приложение, открываю заново, восстанавливаю локальную копию:
Me_>Me_>TextReader reader= File.OpenText(_previousVersionFilePath);
Me_>dataSet.ReadXml(reader);
Me_>reader.Close();
Me_>_scriptGenerating.LoadChanges();
Me_>
Me_>У обеих строк статус — Added.
Me_>Я все аккуратно проверил с разными вариантами — результат тот же. Вне зависимости от прежнего статуса строк, новый — всегда Added.
Me_>Что я делаю не так?
Me_>Заранее благодарен.
сохранит и оригинальную и текущую версии и соотв. статус
dataSet.WriteXml(writer, XmlWriteMode.DiffGram);
Das Reich der Freiheit beginnt da, wo die Arbeit aufhört. (c) Karl Marx