C#將Excel資料匯入資料庫(MySQL或Sql Server)

來源:互聯網
上載者:User

標籤:des   style   blog   http   io   ar   color   os   使用   

  最近一直很忙,很久沒寫部落格了。今天給大家講解一下如何用C#將Excel資料匯入Excel,同時在文章最後附上如何用sqlserver和mysql工具匯入資料。

匯入處理程序大致分為兩步:

  • 1.將excel資料匯入到DataSet中;
  • 2.將DataSet裡面的資料遍曆插入到對應的資料庫

一、將excel資料匯入到DataSet中

  需添加引用using System.Data; using System.Data.OleDb;

    public static DataSet ReadExcel(string filepath)        {            try            {                string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filepath + ";Extended Properties=‘Excel 8.0;HDR=False;IMEX=1‘";                OleDbConnection oleConn = new OleDbConnection(strConn);                oleConn.Open();                string sql = "select * from [Sheet1$]";                OleDbDataAdapter oleDaExcel = new OleDbDataAdapter(sql, oleConn);                DataSet oleDsExcel = new DataSet();                oleDaExcel.Fill(oleDsExcel, "table1");                oleConn.Close();                return oleDsExcel;            }            catch (Exception)            {                return null;                throw;            }        }

 

二、將DataSet裡面的資料遍曆插入到對應的資料庫

  首先判斷excel時候存在,當然如果你已經知道檔案的所在位置,這一步可以跳過。

      string filename = @"C:\Users\Administrator\Desktop\禮品列表\禮品張曦合并版本(卡券建立完整資訊).xlsx";            if (!System.IO.File.Exists(filename))                throw new Exception("指定路徑的Excel檔案不存在!");

  其次將DataSet裡面的資料,讀取出來並封裝成資料插入語句。

 DataSet ds = ReadExcel(filename); List<string> list = (from DataRow row in ds.Tables["table1"].Rows select String.Format("insert into test_1(id,card_id,card_type,標題,產品價格,單位,禮物數量,商場,禮物編號) values(‘{0}‘,‘{1}‘,‘{2}‘,‘{3}‘,‘{4}‘,‘{5}‘,‘{6}‘,‘{7}‘,‘{8}‘)", row[0], row[1], row[2], row[3], row[4], row[5], row[6], row[7], row[8])).ToList();       

 

2.1 將DataSet裡面的資料插入到mysql

   插入我們使用ADO.NET來處理,首先得在擴充裡添加引用 MySql.Data; 和 MySql.Data.MySqlClient;

   string strConnect = ConfigurationManager.ConnectionStrings["MySqlConnString"].ToString();
  //strConnect="server=127.0.0.1;user id=***;password=***;persistsecurityinfo=True;port=3306;database=test";
   MySqlConnection conn = new MySqlConnection(strConnect);
  conn.Open();
  foreach (string item in list)
  {
    MySqlCommand comn = new MySqlCommand(item, conn);
    comn.ExecuteNonQuery();
   }
  conn.Close();

 

2.2 將DataSet裡面的資料插入到sqlserver

  需添加引用 using System.Data; using System.Data.SqlClient;

            string strConnect = ConfigurationManager.ConnectionStrings["SqlServerConnString"].ToString();       //或strConnect="Data Source=.;Initial Catalog=test;Persist Security Info=True;User ID=***;Password=***;MultipleActiveResultSets=true";            SqlConnection conn = new SqlConnection(strConnect);            conn.Open();            foreach (string item in list)            {                SqlCommand comn = new SqlCommand(item, conn);                comn.ExecuteNonQuery();            }

 

 

3.用工具匯入Excel

  我使用的是Toad for SQL Server 6.5 Freeware和Toad for MySQL 7.2 Freeware和SQL SERVER2008(這裡僅以Toad for MySQL 7.2 Freeware為例)

  

C#將Excel資料匯入資料庫(MySQL或Sql Server)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.