Antonio Esposito's


Prodotti tipici .NETtiani

DataSet.WriteXml

Ho notato che usando i metodi WriteXml e ReadXml del DataSet per serializzare in un DiffGram (XML) N DataTable, il risultato (la deserializzazione) è quello di avere per ogni DataTable le sole Column realmente popolate, e tutte tipizzate a string, perdendo il tipo originale......

es:

var dt = new DataTable();
dt.Columns.Add("dt",typeof(DateTime));
dt.Columns.Add("i",typeof(int32));
dt.Rows.Add(dt.NewRow());
dt.Rows[0]["dt"] = DateTime.Now;
dt.Rows[0]["i"] = 150; //omettendo questa riga, nel datatable deserializzato la colonna scompare
var s = new DataSet();
s.Tables.Add(dt);
var m = new MemoryStream();
s.WriteXml(m);
var s2 = new DataSet();
s2.ReadXml(new MemoryStream(m.ToArray()));
// i tipi delle colonne nel DT originale sono DateTime e int32, nel DT deserializzato sempre string..... mah

Categoria: Tips
venerdì, 08 gen 2010 Ore. 09.23
Statistiche
  • Views Home Page: 11.590
  • Views Posts: 60.530
  • Views Gallerie: 0
  • n° Posts: 44
  • n° Commenti: 16
Copyright © 2002-2007 - Blogs 2.0
dotNetHell.it | Home Page Blogs
ASP.NET 2.0 Windows 2003