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 } }