Introduction
In this post, I am going to explain how to import / export database data from / to XML using ASP.NET and C#.Import/export data from/to some common format is very useful technique for transfer data between two other programs/ system on a different platform.
Part 2 : Steps for import / export database data from/to XML file.
Steps :
Step - 1 : Create New Project.
Go to File > New > Project > Select asp.net web forms application > Entry Application Name > Click OK.Step-2: Add a Database.
Go to Solution Explorer > Right Click on App_Data folder > Add > New item > Select SQL Server Database Under Data > Enter Database name > Add.Step-3: Create table for import / export data.
Open Database > Right Click on Table > Add New Table > Add Columns > Save > Enter table name > Ok.IMAGE 1 |
Step-4: Add Entity Data Model.
Go to Solution Explorer > Right Click on Project name form Solution Explorer > Add > New item > Select ADO.net Entity Data Model under data > Enter model name > Add.A popup window will come (Entity Data Model Wizard) > Select Generate from database > Next >
Chose your data connection > select your database > next > Select tables > enter Model Namespace > Finish.
Step-5: Add a Webpage and Design for import, show and export data.
Go to Solution Explorer > Right Click on Project name form Solution Explorer > Add > New item > Select web form/ web form using master page under Web > Enter page name > Add.HTML Code
<h3>Import / Export database data from/to XML.</h3> <div> <table> <tr> <td>Select File : </td> <td> <asp:FileUpload ID="FileUpload1" runat="server" /> </td> <td> <asp:Button ID="btnImport" runat="server" Text="Import Data" OnClick="btnImport_Click" /> </td> </tr> </table> <div> <br /> <asp:Label ID="lblMessage" runat="server" Font-Bold="true" /> <br /> <asp:GridView ID="gvData" runat="server" AutoGenerateColumns="false"> <EmptyDataTemplate> <div style="padding:10px"> Data not found! </div> </EmptyDataTemplate> <Columns> <asp:BoundField HeaderText="Employee ID" DataField="EmployeeID" /> <asp:BoundField HeaderText="Company Name" DataField="CompanyName" /> <asp:BoundField HeaderText="Contact Name" DataField="ContactName" /> <asp:BoundField HeaderText="Contact Title" DataField="ContactTitle" /> <asp:BoundField HeaderText="Address" DataField="EmployeeAddress" /> <asp:BoundField HeaderText="Postal Code" DataField="PostalCode" /> </Columns> </asp:GridView> <br /> <asp:Button ID="btnExport" runat="server" Text="Export Data" OnClick="btnExport_Click" /> </div> </div>
Step-6: Write code into page load event for show data.
Write below code into Page_Load event for show data from database.protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { PopulateData(); lblMessage.Text = "Current Database Data!"; } }
private void populateDatabaseData() { using (MuDatabaseEntities dc = new MuDatabaseEntities()) { gvData.DataSource = dc.EmployeeMasters.ToList(); gvData.DataBind(); } }
Step-7: Write code for import Data from XML to database
Write below code into button click event for import Data from XML to database.protected void btnImport_Click(object sender, EventArgs e) { if (FileUpload1.PostedFile.ContentType == "application/xml" || FileUpload1.PostedFile.ContentType == "text/xml") { try { string fileName = Path.Combine(Server.MapPath("~/UploadDocuments"), Guid.NewGuid().ToString() + ".xml"); FileUpload1.PostedFile.SaveAs(fileName); XDocument xDoc = XDocument.Load(fileName); List<EmployeeMaster> emList = xDoc.Descendants("Employee").Select(d => new EmployeeMaster { EmployeeID = d.Element("EmployeeID").Value, CompanyName = d.Element("CompanyName").Value, ContactName = d.Element("ContactName").Value, ContactTitle = d.Element("ContactTitle").Value, EmployeeAddress = d.Element("EmployeeAddress").Value, PostalCode = d.Element("PostalCode").Value }).ToList(); // Update Data Here using (MuDatabaseEntities dc = new MuDatabaseEntities()) { foreach (var i in emList) { var v = dc.EmployeeMasters.Where(a => a.EmployeeID.Equals(i.EmployeeID)).FirstOrDefault(); if (v != null) { //v.EmployeeID = i.EmployeeID; v.CompanyName = i.CompanyName; v.ContactName = i.ContactName; v.ContactTitle = i.ContactTitle; v.EmployeeAddress = i.EmployeeAddress; v.PostalCode = i.PostalCode; } else { dc.EmployeeMasters.Add(i); } } dc.SaveChanges(); } // Populate update data PopulateData(); lblMessage.Text = "Import Done successfully!"; } catch (Exception) { throw; } } }
Step-8: Write code for export Data from database to XML.
Write below code into button click event for export Data from database to XML.protected void btnExport_Click(object sender, EventArgs e) { using (MuDatabaseEntities dc = new MuDatabaseEntities()) { List<EmployeeMaster> emList = dc.EmployeeMasters.ToList(); if (emList.Count > 0) { var xEle = new XElement("Employees", from emp in emList select new XElement("Employee", new XElement("EmployeeID", emp.EmployeeID), new XElement("CompanyName", emp.CompanyName), new XElement("ContactName", emp.ContactName), new XElement("ContactTitle", emp.ContactTitle), new XElement("EmployeeAddress", emp.EmployeeAddress), new XElement("PostalCode", emp.PostalCode) )); HttpContext context = HttpContext.Current; context.Response.Write(xEle); context.Response.ContentType = "application/xml"; context.Response.AppendHeader("Content-Disposition", "attachment; filename=EmployeeData.xml"); context.Response.End(); } } }