首页 > 技术文章 > 【C#】用C#通过读取数据库方式读取CSV文件

huiyin 2015-05-21 15:06 原文

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

 

推荐阅读