Here in this blog we will see how to first write data from data set into a XML file and then how to read that XML file data into a Dataset.

To elaborate this we will use two grids on the page.

Step1:

Create a web page and put two Button

  1. Button to write XML ( named btnImport)

  2. Button to read XML ( named btnExport)

and also two grids

  1. To show written data (named grdImport)

  2. To show Read data ( named grdExport)

Here is the HTML Code (ReadWriteXML.aspx page) for the program

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ReadWriteXML.aspx.cs" Inherits="Pages_ReadWriteXML" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head id="Head1" runat="server">

<title></title>

</head>

<body>

<form id="form1" runat="server">

<div>

<table>

<tr>

<td>

<asp:Button ID="btnImport" runat="server" Text="Write XML" OnClick="btnImport_Click" />

</td>

</tr>

<tr>

<td>

</td>

</tr>

<tr>

<td>

<asp:GridView ID="grdImport" runat="server">

</asp:GridView>

</td>

</tr>

<tr>

<td>

</td>

</tr>

<tr>

<td>

<asp:Button ID="btnExport" runat="server" Text="Read XML" OnClick="btnExport_Click" />

</td>

</tr>

<tr>

<td>

</td>

</tr>

<tr>

<td>

<asp:GridView ID="grdExport" runat="server">

</asp:GridView>

</td>

</tr>

</table>

</div>

</form>

</body>

</html>

Code for ReadWriteXML.aspx.cs

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Data;

using System.Data.SqlClient;

using Database.DAL;

public partial class Pages_ReadWriteXML : System.Web.UI.Page

{

Common objCommon = new Common();

DataSet DS;

protected void Page_Load(object sender, EventArgs e)

{

}

protected void btnImport_Click(object sender, EventArgs e)

{

string FileName = "TEST_XML.xml";

string FilePath = Server.MapPath("~/XML_Files/");

using (SqlCommand cmd = new SqlCommand())

{

cmd.CommandText = "READ_XML_EMP";

DS = DBHelper.SqlExecuteAdapter(cmd);

}

objCommon.Write_XML(DS, FileName, FilePath);

grdImport.DataSource = DS;

grdImport.DataBind();

}

protected void btnExport_Click(object sender, EventArgs e)

{

string FileName = "TEST_XML.xml";

string FilePath = Server.MapPath("~/XML_Files/");

DS = objCommon.Read_XML(FileName, FilePath);

grdExport.DataSource = DS;

grdExport.DataBind();

}

}

DBHelper Class

using System;

using System.Data.SqlClient;

using System.Data;

using System.Security.Cryptography;

using System.IO;

using System.Web;

using System.Web.UI;

namespace Database.DAL

{

/// <summary>

/// Summary description for SqlHelper

/// </summary>

public class DBHelper

{

private DBHelper()

{

//

// TODO: Add constructor logic here

//

}

#region Connection String

//Pick connection string from web.config

/*

which could be:

<connectionStrings>

<add name="Connection" connectionString="Data Source=TESTSQL;Initial Catalog=TESTDB;uid=sa; pwd=TEST123;Connect Timeout=400;pooling='true'; MaxPool Size=100;" providerName="System.Data.SqlClient;"/>

</connectionStrings>

*/

private static string conn = System.Configuration.ConfigurationManager.ConnectionStrings["Connection"].ToString();

#endregion

#region Execute Adapter

public static DataSet SqlExecuteAdapter(SqlCommand cmd)

{

DataSet ds = new DataSet();

cmd.CommandType = CommandType.StoredProcedure;

using (SqlConnection con = new SqlConnection(conn))

{

cmd.Connection = con;

con.Open();

SqlDataAdapter adapt = new SqlDataAdapter(cmd);

adapt.Fill(ds);

con.Close();

}

return ds;

}

#endregion

}

}

Common class

using System;

using System.Data;

using System.Configuration;

using System.Collections;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Web.UI.HtmlControls;

using System.Data.SqlClient;

using Database.DAL;

using System.Xml;

using System.Xml.Serialization;

using System.IO;

namespace Database.DAL

{

public class Common

{

public Common()

{

//

// TODO: Add constructor logic here

//

}

#region READ WRITE XML

public void Write_XML(DataSet DS, string FileName, string FilePath)

{

StreamWriter XMLFile = new StreamWriter(FilePath + FileName, false);

DS.WriteXml(XMLFile);

XMLFile.Close();

}

public DataSet Read_XML(string FileName, string FilePath)

{

DataSet DS = new DataSet();

DS.ReadXml(FilePath + FileName);

return DS;

}

#endregion

}

}

DB Structure

TEST_XML table

Image1.jpg

INSERT VALUES IN TABLE LIKE

Image2.jpg

READ_XML_EMP PROCEDUER

USE [TESTDB]

GO
/****** Object: StoredProcedure [dbo].[READ_XML_EMP] Script Date: 07/11/2013 17:11:26 ******/

SET
ANSI_NULLS ON
GO

SET
QUOTED_IDENTIFIER ON
GO

CREATE
PROC [dbo].[READ_XML_EMP]
AS

BEGIN

SELECT
* FROM TEST_XML
END

GO

FIRST CLICK ON WRITE XML Button to Write Data INTO XML File

Output will be:

Image3.jpg

Click on Export button to read data from XML file

Output Will be:

Image4.jpg