將Excel資料匯入SQL Server資料庫–2

來源:互聯網
上載者:User

在上一次實驗中,嘗試了使用串連伺服器和即席查詢實現將Excel中的資料匯入到SQL Server2005的資料庫中。

但是俗話說得好,計劃趕不上變化,這不,變化來了。

在進一步的嘗試中發現,使用即席查詢等方式,極有可能出現錯誤,要麼是SQL Server2005中外圍配置的即席查詢設定沒開,要麼就是Excel表從外界被開啟無法讀取資料。

還有一點的是,Excel檔案必須和資料庫在一台機器上(個人是這樣認為的,不知道有沒有解決辦法),我可以把Excel檔案上傳到WEB伺服器上,然後在刪掉,但是不能保證WEB伺服器和資料庫伺服器是一台機器啊,這樣就沒有辦法了。

那麼只有換一種思路了,使用程式來實現吧。

其實思路很簡單,使用dataset!!!

代碼如下:

 

Code
public void Excel(string path)
        {

            string conStringExcel = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + path + ";Extended Properties=\"Excel 8.0;HDR=YES;\"";
            string sql = "select * from [Sheet1$]";

            DataSet oleds = new DataSet();
            OleDbDataAdapter oleda = new OleDbDataAdapter(sql, conStringExcel);
            oleda.Fill(oleds);

            SqlConnection conn = new SqlConnection(connstring);
            SqlDataAdapter sqlda = new SqlDataAdapter("select * from school where 1=2", conn);
            SqlCommandBuilder sqlcb = new SqlCommandBuilder(sqlda);
            DataSet sqlds = new DataSet();

            sqlda.Fill(sqlds);
            for (int i = 0; i < oleds.Tables[0].Rows.Count; i++)
            {
                sqlds.Tables[0].Rows.Add(sqlds.Tables[0].NewRow());

                for (int j = 0; j < oleds.Tables[0].Columns.Count; j++)
                {

                    sqlds.Tables[0].Rows[i][j + 1] = oleds.Tables[0].Rows[i][j];
                }
            }
            sqlda.Update(sqlds, "table");
            
            
        }

其中,方法的參數為Excel的檔案路徑。connstring是串連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.