Go Premium for a chance to win a PS4. Enter to Win

x
?
Solved

Exporting Ms Access data to CSV using C#

Posted on 2008-06-14
7
Medium Priority
?
267 Views
Last Modified: 2010-04-28
Hi I am trying to export ms access data to CSV using C#. I have a problem with capturing its foreign key enforcement and check constraints. I can find codes for exporting csv to access but the otherwise. I am new here. Can anyone kindly share with me? Thanks
0
Comment
Question by:Jaded25
  • 3
  • 2
7 Comments
 
LVL 30

Expert Comment

by:Alexandre Simões
ID: 21788484
Hi,
why don't you just create a view on Access with the data and schema you want to export to CSV and then just make a loop on C# that concatenates the cell values of each row separated by ';'  ?

Each loop would do a WriteLine to the StreamWriter of the concatenated strings... that's it... :)
0
 

Author Comment

by:Jaded25
ID: 21788555
Thanks for your help. Would it be alright if I want to know the code? Thanks :)
0
 
LVL 30

Accepted Solution

by:
Alexandre Simões earned 2000 total points
ID: 21788620
I was going to write it but decided to do a little google search first so here's a sample code of it:

http://dotnetguts.blogspot.com/2007/01/exporting-datatable-to-csv-file-format.html

I'm attaching the same code but better formatted and I changes the sparator from ',' to ';'
This is just because if you have numeric values and depending on your region the comma may be a problem.

cheers
using System;
using System.Data;
using System.IO;
 
namespace WorkBench
{
	public static class WriteCSVDemo
	{
 
		public static void  CreateCSVFile(DataTable dt, string strFilePath)
		{
 
 
			#region Export Grid to CSV
 
			// Create the CSV file to which grid data will be exported.
			StreamWriter sw = new StreamWriter(strFilePath, false);
 
			// First we will write the headers.
			int iColCount = dt.Columns.Count;
 
			for (int i = 0; i < iColCount; i++)
			{
				sw.Write(dt.Columns[i]);
				if (i < iColCount - 1)
				{
					sw.Write(";");
				}
			}
 
			sw.Write(sw.NewLine);
 
			// Now write all the rows.
			foreach (DataRow dr in dt.Rows)
			{
				for (int i = 0; i < iColCount; i++)
				{
					if (!Convert.IsDBNull(dr[i]))
					{
						sw.Write(dr[i].ToString());
					}
					if (i < iColCount - 1)
					{
						sw.Write(";");
					}
				}
 
				sw.Write(sw.NewLine);
			}
 
			sw.Close();
 
			#endregion
 
		}
 
	}
}

Open in new window

0
 

Author Comment

by:Jaded25
ID: 21788930
Thanks you so much for the help.
0
 
LVL 30

Expert Comment

by:Alexandre Simões
ID: 21788950
Glad I could help,

Cheers!
0

Featured Post

Learn Veeam advantages over legacy backup

Every day, more and more legacy backup customers switch to Veeam. Technologies designed for the client-server era cannot restore any IT service running in the hybrid cloud within seconds. Learn top Veeam advantages over legacy backup and get Veeam for the price of your renewal

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Access developers frequently have requirements to interact with Excel (import from or output to) in their applications.  You might be able to accomplish this with the TransferSpreadsheet and OutputTo methods, but in this series of articles I will di…
If you’re using QODBC to update QuickBooks data from Microsoft® Access but Access is not showing the updated data, you could have set up QODBC incorrectly.
Learn how to number pages in an Access report over each group. Activate two pass printing by referencing the pages property: Add code to the Page Footers OnFormat event to capture the pages as there occur for each group. Use the pages property to …
Look below the covers at a subform control , and the form that is inside it. Explore properties and see how easy it is to aggregate, get statistics, and synchronize results for your data. A Microsoft Access subform is used to show relevant calcul…
Suggested Courses

886 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question