none
Потеря данных при десериализации DataSet RRS feed

  • Вопрос

  • При сериализации объекта DataSet в бинарном или xml формате, все данные в самих файлах есть. При десериализации, в обоих случаях, данные теряются. Т.е. тот же самый Rows.Count выдает 0. Изначально данные точно были, еще раз повторюсь, что и в бинарном и в xml файле эти данные сохранены. Кстати WriteXml и ReadXml работают нормально.
    24 марта 2015 г. 8:22

Ответы

  • Файл как создали? В нем есть схема? Сам DataSet со схемой или нет? 

    В любом случае для записи и чтения XML из/в DataSet лучше использовать DataSet.WriteXml() и DataSet.ReadXml(). Если DataSet не имеет встроенной схемы (не strongly typed) то следует загрузуть в него схему до загрузки XML. 


    This posting is provided "AS IS" with no warranties, and confers no rights.

    24 марта 2015 г. 19:47
    Модератор

Все ответы

  • Ну проблема видима в коде десериализации. Где там закралась ошибка. Без кода скорее всего вам не смогут подсказать.

    VB.Net - WPF, WinRT, WP

    24 марта 2015 г. 8:40
    Отвечающий
  • static void SaveAndLoadAsBinary(DataSet ds)
            {
                ds.RemotingFormat = SerializationFormat.Xml;
                using (FileStream FS = new FileStream("cars2.xml", FileMode.Create, FileAccess.ReadWrite, FileShare.Read))
                {
                    //BinaryFormatter BF = new BinaryFormatter();
                    XmlSerializer BF = new XmlSerializer(ds.GetType());
                    BF.Serialize(FS, ds);
                    ds.Clear();
                    FS.Seek(0, SeekOrigin.Begin);
                    ds = (DataSet)BF.Deserialize(FS);
                }
            }

    Ни чего замысловатого в де|сериализации нет

    В Columns все столбцы остались.

    • Изменено mad-dox 24 марта 2015 г. 12:14 пояснение
    24 марта 2015 г. 12:12
  • Файл как создали? В нем есть схема? Сам DataSet со схемой или нет? 

    В любом случае для записи и чтения XML из/в DataSet лучше использовать DataSet.WriteXml() и DataSet.ReadXml(). Если DataSet не имеет встроенной схемы (не strongly typed) то следует загрузуть в него схему до загрузки XML. 


    This posting is provided "AS IS" with no warranties, and confers no rights.

    24 марта 2015 г. 19:47
    Модератор