Как сохранить DataRowStatus при сериализации?
От: Me_ Россия  
Дата: 03.03.05 16:05
Оценка:
Пробовал с простой XML сериализацией — не получается, хотя объект должен сохраняться весь вроде бы...

С методом WriteXml тоже непонятно — он сохраняет только незакомиченные данные.

Кто-нибудь пробовал сериализовать DataSet с сохранением статуса строк? Поделитесь опытом, плиз!
Как сохранить DataRowStatus при сериализации?
От: Аноним  
Дата: 03.03.05 17:43
Оценка:
>С методом WriteXml тоже непонятно — он сохраняет только незакомиченные данные.

Почему Вы так решили? Все нормально он сохраняет.


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Re: Как сохранить DataRowStatus при сериализации?
От: Me_ Россия  
Дата: 04.03.05 07:28
Оценка:
Здравствуйте, Аноним, Вы писали:

А>>С методом 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.

Что я делаю не так?
Заранее благодарен.
Re: Как сохранить DataRowStatus при сериализации?
От: Me_ Россия  
Дата: 04.03.05 07:49
Оценка:
Здравствуйте, Аноним, Вы писали:

А>>С методом WriteXml тоже непонятно — он сохраняет только незакомиченные данные.

А>

А>Почему Вы так решили? Все нормально он сохраняет.

Прошу прощения, он действительно все сохраняет. Глупая ошибка в коде...
Re[2]: Как сохранить DataRowStatus при сериализации?
От: ksg71 Германия  
Дата: 04.03.05 08:12
Оценка:
Здравствуйте, 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
Re: Как сохранить DataRowStatus при сериализации?
От: Аноним  
Дата: 04.03.05 07:37
Оценка:
Странно что Вы в своих экспериментах не наткнулись на второй параметр методов WriteXml и ReadXml. Передавайте в него XmlWriteMode.DiffGram и XmlReadMode.DiffGram соответственно.


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.