6.7. Serializing Data
Problem
You need to serialize the contents of a DataSet so that you can store the data on a disk or transfer it across a network.
Solution
You can serialize a DataSet or DataTable into XML, binary, or SOAP formats and save the serialized DataSet to a stream (such as a file or network stream).
The solution creates a DataSet containing the Production.Product and Production. ProductInventory tables from AdventureWorks and a relation between the two tables. A file stream is created and the DataSet is serialized to XML, SOAP, and binary formats.
You need to add references to the System.Runtime.Serialization.Formatters.Soap assembly to build the solution.
The C# code in Program.cs in the project SerializeData is shown in Example 6-7.
Example 6-7. File: Program.cs for SerializeData solution
using System;
using System.Data;
using System.Data.SqlClient;
// Namespaces used for serialization
using System.IO;
using System.Xml.Serialization;
using System.Runtime.Serialization.Formatters.Soap;
using System.Runtime.Serialization.Formatters.Binary;
namespace SerializeData
{
class Program
{
static void Main(string[] args)
{
string fileName = @"..\..\..\SerializedDataSet";
Stream stream;
string sqlConnectString = "Data Source=(local);" +
"Integrated security=SSPI;Initial Catalog=AdventureWorks;";
string sqlSelect = "SELECT * FROM Production.Product;" +
"SELECT * FROM Production.ProductInventory";
DataSet ds = new DataSet( ); SqlDataAdapter da; // Fill the Header table in the DataSet ...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