Write dataset to XML and back again to dataset?

  • Thread starter Thread starter Dean Slindee
  • Start date Start date
D

Dean Slindee

Before a delete on any table, I would like to write the contents of the
soon-to-be-deleted row to that application's single "graveyard" table
(alternate: or document as coded below).


SQL Server 2005 solution: I would store the tablename, today's date,
username, and the key column values of the soon-to-be deleted row as the
composite key of the new graveyard table row. The soon-to-be-deleted row's
data would be stored in a single xml-type column.


XML File solution: composite key from above would be the name of a
filename.xml file. The data from the soon-to-be-deleted row would be the
xml document. This is done by the following code:

Private Sub WriteXmlToFile(ByVal strGraveYardID As String, _

ByVal ds As DataSet)

'create a file name to write to.

Dim filename As String = "C:\Projects\Human Services\XMLGraveyard\" &
strGraveYardID & ".xml"

'create the FileStream to write with.

Dim myFileStream As New System.IO.FileStream(filename,
System.IO.FileMode.Create)

'create an XmlTextWriter with the fileStream.

Dim myXmlWriter As New System.Xml.XmlTextWriter(myFileStream,
System.Text.Encoding.Unicode)

'write to the file with the WriteXml method.

ds.WriteXml(myXmlWriter)

myXmlWriter.Close()

End Sub


The above works fine. Now, for the question. What about resurrecting the
deleted row from the graveyard row? Is there a way to convert the xml
document (or SQL Server 2005 data column) back into a dataset so that the
row can be re-inserted back into the original table?


Thanks,

Dean Slindee
 
If you have the XML file you could open the file in VS, then select "Create
Schema" from the XML menu to establish an XSD document. VS will modify your
XML to refer to the XSD file. Save your changes and then you can use the
ReadXML method of the dataset to read the data back into the dataset.

Hope this helps

Rob
 
Dean,

I think that you are easier of with a clone dataset/datatable.

If you want any more help,

Please reply

Cor
 
Back
Top