【C#】用C#通過讀取數據庫方式讀取CSV文件,
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
namespace CsvtoSqlserver
{
static class Program
{
///
/// アプリケーションのメイン エントリ ポイントです。
///
[STAThread]
static void Main()
{
ImportOutlooExpByOleDB("C:\\Users\\Desktop\\333","111.csv");
}
public static bool ImportOutlooExpByOleDB(string path, string fileName)
{
string cs = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + path + @";Extended Properties=""text;HDR=Yes;FMT=Delimited""";
System.Data.OleDb.OleDbConnection con = new System.Data.OleDb.OleDbConnection(cs);
con.Open();
try
{
string sql = String.Format("SELECT * FROM [{0}] ", fileName);
System.Data.DataSet ds = new System.Data.DataSet();
System.Data.OleDb.OleDbDataAdapter ada = new System.Data.OleDb.OleDbDataAdapter(sql, con);
ada.Fill(ds, fileName);
return true;
}
catch
{
return false;
}
}
}
}
// 以上代碼將CSV內容存放到DataSet中。下面將DataSet導入SQLserver數據庫,要求表中字段與CSV完全對應
//寫入數據庫源代碼;此方法是源文件內容中的例必須和要導入的表的例數一至,且數據格式一至
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.Sql;
using System.Data.SqlClient;
namespace CC
{
///
/// 將數據寫入數據庫表中去
///
class SqlBulkData
{
SqlConnection SqlCon = new SqlConnection();
#region 將數據寫數據庫表中去(大容量)例與數據庫表例一至
///
/// 將數據寫數據庫表中去(大容量)例與數據庫表例一至
///
/// 數據源內容
/// 表名
/// 返回是否成功!
public bool BulkData(DataSet _Ds, string _TableName)
{
SqlCon.ConnectionString = "";
SqlCon.Open();
SqlBulkCopy SqlBulk = new SqlBulkCopy(SqlCon);
SqlBulk.DestinationTableName = _TableName;
try
{
SqlBulk.WriteToServer(_Ds.Tables[0], DataRowState.Unchanged);
return true;
}
catch
{
return false;
}
finally
{
SqlCon.Close();
SqlCon.Dispose();
SqlBulk.Close();
}
}
#endregion
}
}