Skip to main content

A simple how to export from TableAdapter to XML file

The XML Schema CompanionI recently wanted to import data from an existing system that is written in Access. The system allows for XML imports. Since I needed to do some background programming on the system, I opted to rather to it programmatically than use the standard export, since I would have to do it a few times, and also manipulate the data once it was imported and then exported.
I struggled to find information on how to do this, so eventually decided to figure it out myself and this is how I did it:
  1. In Visual Studio I created a new project
  2. I added Connected to Access database using the Database Explorer, this created a link in the App_Data folder
  3. Then on the default page I allowed the user to place the file name,
  4. I then added a new DataSet, created a new TableAdapter, put the query I needed in there and
  5. Then in my code I exported to XML

So the in Default.aspx It looks like this:

File to Export to:
<asp:TextBox ID="tbxCustomersToXML" runat="server" Width="375px" ToolTip="XML File Target" 
\Documents\junk\Customers.XML" />
<asp:Button ID="btnCustomersToXML" runat="server" Text="Customers TBL to XML" onclick
="btnCustomersToXML_Click" />
<br />
<asp:Label ID ="lblStatus" runat="server" />
<br />

And the in Default.aspx.cs looks like this:

protected void btnCustomersToXML_Click(object sender, 
EventArgs e)
  if (tbxCustomersToXML.Text != "")
         CustomersTblTableAdapter dtaCompanys = new CustomersTblTableAdapter();
         // retrieve the data using GetData since this is where the correct Query is
         TrackerCompaniesDataSet.CustomersTblDataTable dtCompanys = dtaCompanys.GetData();
         System.IO.StreamWriter swXMLTarget = File.CreateText(tbxCustomersToXML.Text);

         dtCompanys.WriteXml(swXMLTarget, XmlWriteMode.WriteSchema);
         lblStatus.Text = "Extract status: Done!";
       catch (Exception ex)
         lblStatus.Text = "Extract status: The file could not be exported. The following error occurred: " + ex.Message;

Hope that this helps someone, I may need to refer to it myself.


Popular posts from this blog

SMTP servers of South Africa

SMTP Settings Below is a list of SMTP sites in South Africa, using this and the ISP Map you can try and find which one works best for you. Telkom (ADSL) (56k dial up) Internet Solutions (ADSL) (56k dial up on IS) (3g backbone) Vodacom MTN Cell C (GPRS) (also used by Virgin) ABSA iBurst @lantic (ADSL,Dialup, ISDN) Sentech MWEB (ADSL) - this is to be retired End June 2012, use below instead (56k dial-up & ADSL & business) iAfrica Neotel Tiscali NOW MWeb Netactive NOW MWeb Global Hertzner Use y

Fixing winmail.dat problem - specifically in Quickbooks

For months we have had problems with attachments from Quickbooks. Having looked down many avenues I think we have found a fix or few: (See below for update) Here are a few websites that help out: Microsoft Outlook/Exchange MS-TNEF handling (aka "Winmail.dat", "Win.dat", or "Part 1.2" problem of unopenable email attachments) KB958012 : When you use Outlook 2007 to send an e-mail message, the recipient of the message sees an attachment that is called Winmail.dat Essentially the summary is that there is a problem with Outlook trying to force Rich Text Format. so you need to turn that off. Mail users not receiving email in an Outlook derivative will have a problem. This format is called So: Go into Outlook On the "Tools" menu, click "Options", then click the "Mail Format" tab, and then the "Internet Format" button. Set "When sending Outlook Ri

Programmatically send email in Access using VBA and Outlook

When I first wrote my early Access system I used a function I setup in Outlook and then I called that. On upgrading I had a few problems with the older method then I found some help on the MSDN website here... and the related video. The first thing to do before starting the code is go into access, access the VBA (press Ctl+G) then click on "Tools" The "References" and then make sure you scroll down to "Microsoft Outlook ..." the version there will be determined by what version you have installed. This the code that I ended up with after looking at the site above Private olApp As Outlook.Application Private olNameSpace As Outlook.NameSpace ' The basics of this from MSDN site ' Private Sub InitOutlook()  ' Initialize a session in Outlook   Set olApp = New Outlook.Application   'Return a reference to the MAPI layer   Set olNameSpace = olApp.GetNamespace("MA