O'Reilly logo

ADO.NET Cookbook by Bill Hamilton

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

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

int

4

No

XmlField

nvarchar

4000

Yes

The sample code contains five event handlers:

Form.Load

Sets up the DataTable that contains the text field, XmlField, containing the XML and the DataAdapter for the table.

Write Button.Click

Adds or updates a record in the table with the Id and XmlField entered by the user.

Read Button.Click

Loads the XML for the specified Id into an XmlDocument and displays it on the form in the XmlField text box.

Sample Button.Click

Generates sample XML data from the Orders table in Northwind and displays it on the form in the XmlField text box.

Clear Button.Click

Clears the contents of the Id and XmlField text 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 = ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required