簡體   English   中英

導入Excel到SQL C#

[英]importing excel to sql c#

我一直在嘗試將excel表導入到我的sql數據庫中。 我試過這個例子:

     void importdata(string excelfilepath)
     {
        //declare variables - edit these based on your particular situation
        string ssqltable = "tTableExcel";
        // make sure your sheet name is correct, here sheet name is sheet1,      so you can change your sheet name if have
        string myexceldataquery = "select student,rollno,course from [sheet1$]";
        try
        {
           //create our connection strings
           string sexcelconnectionstring = @"provider=microsoft.jet.oledb.4.0;data source=" + excelfilepath +
           ";extended properties=" + "\"excel 8.0;hdr=yes;\"";
           string ssqlconnectionstring = "server=mydatabaseservername;userid=dbuserid;password=dbuserpassword;database=databasename;connection reset=false";


           string sclearsql = "delete from " + ssqltable;
           SqlConnection sqlconn = new SqlConnection(ssqlconnectionstring);
           SqlCommand sqlcmd = new SqlCommand(sclearsql, sqlconn);
           sqlconn.Open();
           sqlcmd.ExecuteNonQuery();
           sqlconn.Close();
           //series of commands to bulk copy data from the excel file into our sql table

           OleDbConnection oledbconn = new OleDbConnection(sexcelconnectionstring);
           OleDbCommand oledbcmd = new OleDbCommand(myexceldataquery, oledbconn);
           oledbconn.Open();
           OleDbDataReader dr = oledbcmd.ExecuteReader();
           SqlBulkCopy bulkcopy = new SqlBulkCopy(ssqlconnectionstring);
           bulkcopy.DestinationTableName = ssqltable;
           while (dr.Read())
           {
              bulkcopy.WriteToServer(dr);
           }

           oledbconn.Close();
        }
        catch (Exception ex)
        {
           //handle exception
        }
     }

我的編程不是很好,我無法使其正常工作。 SQL連接沒有問題(運行程序后將清除數據庫)。 但是我無法將任何信息輸入數據庫。 我的excel文件稱為test.xlsx,存儲在D:\\ Users \\ Haners中。 我的數據庫選項稱為“測試”。 如何使我的程序將excel文件中的信息導入數據庫?

先前的代碼:

       SqlBulkCopy bulkcopy = new SqlBulkCopy(ssqlconnectionstring);
       bulkcopy.DestinationTableName = ssqltable;
       while (dr.Read())
       {
          bulkcopy.WriteToServer(dr);
       }

新代碼:

       SqlBulkCopy bulkcopy = new SqlBulkCopy(ssqlconnectionstring);
       bulkcopy.DestinationTableName = ssqltable;
       bulkcopy.BatchSize=100;
       bulkcopy.WriteToServer(dr);

希望這可以解決您的問題。 快樂的編碼。 干杯

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM