8.4. Storing XML to a Database Field
Problem
You need to store XML to a field in a database.
Solution
Store the contents of the InnerXml of the
XmlDocument to the database. You can later load
this into an empty XmlDocument with
LoadXml( ).
The schema of table TBL0804 used in this solution is shown in Table 8-4.
Table 8-4. TBL0804 schema
|
Column name |
Data type |
Length |
Allow nulls? |
|---|---|---|---|
|
Id |
|
4 |
No |
|
XmlField |
|
4000 |
Yes |
The sample code contains five event handlers:
Form.LoadSets up the
DataTablethat contains thetextfield,XmlField, containing the XML and theDataAdapterfor the table.- Write
Button.Click Adds or updates a record in the table with the
IdandXmlFieldentered by the user.- Read
Button.Click Loads the XML for the specified
Idinto anXmlDocumentand displays it on the form in theXmlFieldtext box.- Sample
Button.Click Generates sample XML data from the Orders table in Northwind and displays it on the form in the
XmlFieldtext box.- Clear
Button.Click Clears the contents of the
IdandXmlFieldtext boxes on the form.
The C# code is shown in Example 8-7.
Example 8-7. File: StoreXmlFieldForm.cs
// Namespaces, variables, and constants using System; using System.Configuration; using System.Windows.Forms; using System.IO; using System.Xml; using System.Data; using System.Data.SqlClient; private DataTable dt; private SqlDataAdapter da; private const String TABLENAME = "TBL0804"; // . . . private void StoreXmlFieldForm_Load(object sender, System.EventArgs e) { String selectText = ...Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access