• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 271
  • Last Modified:

Exporting Ms Access data to CSV using C#

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
Jaded25
Asked:
Jaded25
  • 3
  • 2
1 Solution
 
Alexandre SimõesManager / Technology SpecialistCommented:
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
 
Jaded25Author Commented:
Thanks for your help. Would it be alright if I want to know the code? Thanks :)
0
 
Alexandre SimõesManager / Technology SpecialistCommented:
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
 
Jaded25Author Commented:
Thanks you so much for the help.
0
 
Alexandre SimõesManager / Technology SpecialistCommented:
Glad I could help,

Cheers!
0

Featured Post

Get expert help—faster!

Need expert help—fast? Use the Help Bell for personalized assistance getting answers to your important questions.

  • 3
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now