-->

How to import /export database data from /to csv/XML/excel using ASP.NET and C#.




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 1 : Steps for import / export database data from/to CSV file.
Part 2 : Steps for import / export database data from/to XML file.

Steps :

Steps for import / export database data from/to XML file.

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.
In this example, I have used one tables as below
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

  1. <h3>Import / Export database data from/to XML.</h3>
  2. <div>
  3. <table>
  4. <tr>
  5. <td>Select File : </td>
  6. <td>
  7. <asp:FileUpload ID="FileUpload1" runat="server" />
  8. </td>
  9. <td>
  10. <asp:Button ID="btnImport" runat="server" Text="Import Data" OnClick="btnImport_Click" />
  11. </td>
  12. </tr>
  13. </table>
  14. <div>
  15. <br />
  16. <asp:Label ID="lblMessage" runat="server" Font-Bold="true" />
  17. <br />
  18. <asp:GridView ID="gvData" runat="server" AutoGenerateColumns="false">
  19. <EmptyDataTemplate>
  20. <div style="padding:10px">
  21. Data not found!
  22. </div>
  23. </EmptyDataTemplate>
  24. <Columns>
  25. <asp:BoundField HeaderText="Employee ID" DataField="EmployeeID" />
  26. <asp:BoundField HeaderText="Company Name" DataField="CompanyName" />
  27. <asp:BoundField HeaderText="Contact Name" DataField="ContactName" />
  28. <asp:BoundField HeaderText="Contact Title" DataField="ContactTitle" />
  29. <asp:BoundField HeaderText="Address" DataField="EmployeeAddress" />
  30. <asp:BoundField HeaderText="Postal Code" DataField="PostalCode" />
  31. </Columns>
  32. </asp:GridView>
  33. <br />
  34. <asp:Button ID="btnExport" runat="server" Text="Export Data" OnClick="btnExport_Click" />
  35. </div>
  36. </div>

Step-6: Write code into page load event for show data.

Write below code into Page_Load event for show data from database.

  1. protected void Page_Load(object sender, EventArgs e)
  2. {
  3. if (!IsPostBack)
  4. {
  5. PopulateData();
  6. lblMessage.Text = "Current Database Data!";
  7. }
  8. }

   And here is the functioin populateDatabaseData

  1. private void populateDatabaseData()
  2. {
  3. using (MuDatabaseEntities dc = new MuDatabaseEntities())
  4. {
  5. gvData.DataSource = dc.EmployeeMasters.ToList();
  6. gvData.DataBind();
  7. }
  8. }

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.

  1. protected void btnImport_Click(object sender, EventArgs e)
  2. {
  3. if (FileUpload1.PostedFile.ContentType == "application/xml" || FileUpload1.PostedFile.ContentType == "text/xml")
  4. {
  5. try
  6. {
  7. string fileName = Path.Combine(Server.MapPath("~/UploadDocuments"), Guid.NewGuid().ToString() + ".xml");
  8. FileUpload1.PostedFile.SaveAs(fileName);
  9.  
  10. XDocument xDoc = XDocument.Load(fileName);
  11. List<EmployeeMaster> emList = xDoc.Descendants("Employee").Select(d =>
  12. new EmployeeMaster
  13. {
  14. EmployeeID = d.Element("EmployeeID").Value,
  15. CompanyName = d.Element("CompanyName").Value,
  16. ContactName = d.Element("ContactName").Value,
  17. ContactTitle = d.Element("ContactTitle").Value,
  18. EmployeeAddress = d.Element("EmployeeAddress").Value,
  19. PostalCode = d.Element("PostalCode").Value
  20. }).ToList();
  21.  
  22. // Update Data Here
  23. using (MuDatabaseEntities dc = new MuDatabaseEntities())
  24. {
  25. foreach (var i in emList)
  26. {
  27. var v = dc.EmployeeMasters.Where(a => a.EmployeeID.Equals(i.EmployeeID)).FirstOrDefault();
  28. if (v != null)
  29. {
  30. //v.EmployeeID = i.EmployeeID;
  31. v.CompanyName = i.CompanyName;
  32. v.ContactName = i.ContactName;
  33. v.ContactTitle = i.ContactTitle;
  34. v.EmployeeAddress = i.EmployeeAddress;
  35. v.PostalCode = i.PostalCode;
  36. }
  37. else
  38. {
  39. dc.EmployeeMasters.Add(i);
  40. }
  41. }
  42.  
  43. dc.SaveChanges();
  44. }
  45.  
  46. // Populate update data
  47. PopulateData();
  48. lblMessage.Text = "Import Done successfully!";
  49. }
  50. catch (Exception)
  51. {
  52. throw;
  53. }
  54. }
  55. }

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.

  1. protected void btnExport_Click(object sender, EventArgs e)
  2. {
  3. using (MuDatabaseEntities dc = new MuDatabaseEntities())
  4. {
  5. List<EmployeeMaster> emList = dc.EmployeeMasters.ToList();
  6. if (emList.Count > 0)
  7. {
  8. var xEle = new XElement("Employees",
  9. from emp in emList
  10. select new XElement("Employee",
  11. new XElement("EmployeeID", emp.EmployeeID),
  12. new XElement("CompanyName", emp.CompanyName),
  13. new XElement("ContactName", emp.ContactName),
  14. new XElement("ContactTitle", emp.ContactTitle),
  15. new XElement("EmployeeAddress", emp.EmployeeAddress),
  16. new XElement("PostalCode", emp.PostalCode)
  17. ));
  18. HttpContext context = HttpContext.Current;
  19. context.Response.Write(xEle);
  20. context.Response.ContentType = "application/xml";
  21. context.Response.AppendHeader("Content-Disposition", "attachment; filename=EmployeeData.xml");
  22. context.Response.End();
  23. }
  24. }
  25. }

Step-9: Run Application.

Related Post:

Hello ! My name is Sourav Mondal. I am a software developer working in Microsoft .NET technologies since 2010.

I like to share my working experience, research and knowledge through my site.

I love developing applications in Microsoft Technologies including Asp.Net webforms, mvc, winforms, c#.net, sql server, entity framework, Ajax, Jquery, web api, web service and more.

Related Posts: