使用C#我試圖創建一個控制檯應用程序,從特定的文件夾位置讀取CSV文件並將這些記錄導入MS Access表。一旦文件中的記錄成功導入,我將刪除.csv文件。複製CSV文件到MS Access表
到目前爲止,這是我:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Configuration;
using System.Data;
using System.Data.OleDb;
using System.Globalization;
namespace QuantumTester
{
class Program
{
static void Main(string[] args)
{
CsvFileToDatatable(ConfigurationManager.AppSettings["CSVFile"], true);
}
public static DataTable CsvFileToDatatable(string path, bool IsFirstRowHeader)//here Path is root of file and IsFirstRowHeader is header is there or not
{
string header = "Yes"; //"No" if 1st row is not header cols
string sql = string.Empty;
DataTable dataTable = null;
string pathOnly = string.Empty;
string fileName = string.Empty;
try
{
pathOnly = Path.GetDirectoryName(ConfigurationManager.AppSettings["QuantumOutputFilesLocation"]);
fileName = Path.GetFileName(ConfigurationManager.AppSettings["CSVFilename"]);
sql = @"SELECT * FROM [" + fileName + "]";
if (IsFirstRowHeader)
{
header = "Yes";
}
using (OleDbConnection connection = new OleDbConnection(
@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + pathOnly +
";Extended Properties=\"Text;HDR=" + header + "\""))
{
using (OleDbCommand command = new OleDbCommand(sql, connection))
{
using (OleDbDataAdapter adapter = new OleDbDataAdapter(command))
{
dataTable = new DataTable();
dataTable.Locale = CultureInfo.CurrentCulture;
adapter.Fill(dataTable);
}
}
}
}
finally
{
}
return dataTable;
}
}
}
可我只是繼續的保存數據表到我在Access數據庫中創建一個表?我會如何去做這件事?任何幫助都會很棒
您需要對連接執行sql http://msdn.microsoft.com/en-us/library/system.data.ol edb.oledbconnection.aspx或更好,請使用命令並執行該命令。 – Fionnuala 2012-07-17 11:40:39
我現在有我的代碼從CSV文件中選擇數據,我可以遍歷每一行/列,但我不知道如何將實際插入/更新插入MS Access數據庫。你能幫助我嗎? @Remou – paulmcm 2012-07-17 12:00:07
我已經發布的SQL上面,當針對連接運行將插入到Access表中的CSV或創建一個新的Access表。它不需要你從CSV中選擇數據,它只是一個步驟。 – Fionnuala 2012-07-17 12:14:17