#region Import data from excel to SQL. /// <summary> /// Import data from excel to SQL Server, but the difference struct of table . /// </summary> public static void ImportDataFromExcelToSQLDemo(string filename) { // Load Excel data into DataTable string connectionString = @"Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" + filename + ";Extended Properties='Excel 12.0;HDR=YES;'"; string strSQL = "SELECT * FROM [Sh1$]"; OleDbConnection excelConnection = new OleDbConnection(connectionString); excelConnection.Open(); // This code will open excel file. OleDbCommand dbCommand = new OleDbCommand(strSQL, excelConnection); OleDbDataAdapter dataAdapter = new OleDbDataAdapter(dbCommand); // create data table DataTable dTable = new DataTable(); //fill table with echel data dataAdapter.Fill(dTable); //step 2 //connect to server using (SqlConnection destinationConnection = new SqlConnection(DestinationConnStr)) { destinationConnection.Open(); using (SqlBulkCopy bulkCopy = new SqlBulkCopy(destinationConnection)) { // Destination Table must match columns in Excel sheet string tableName = "SH_1"; bulkCopy.DestinationTableName = tableName; try { // Write from the source to the destination. bulkCopy.WriteToServer(dTable); } catch (Exception ex) { CommonDo.DoException.DealException(ex); } destinationConnection.Close(); } } // dispose used objects dTable.Dispose(); dataAdapter.Dispose(); dbCommand.Dispose(); excelConnection.Close(); excelConnection.Dispose(); } #endregion #region Import data from excel to SQL Server using map. /// <summary> /// Import data from excel to SQL Server using map. /// </summary> /// <param name="filename"></param> public static void ImportDataFromExcelToSQLUsingMap(string filename) { // Load Excel data into DataTable string connectionString = @"Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" + filename + ";Extended Properties='Excel 12.0;HDR=YES;'"; using( OleDbConnection excelConnection = new OleDbConnection(connectionString)) { string strSQL = "SELECT * FROM [WL_ProductDetail$]"; OleDbCommand dbCommand = new OleDbCommand(strSQL, excelConnection); excelConnection.Open(); // This code will open excel file. OleDbDataAdapter dataAdapter = new OleDbDataAdapter(dbCommand); // create data table DataTable dTable = new DataTable(); //fill table with echel data dataAdapter.Fill(dTable); // step 2 // string serverConnectionString = "Data Source=DELL390-2;Initial Catalog=TestData;Persist Security Info=True;User ID=sa;Password=427427"; string serverConnectionString = ConfigurationManager.ConnectionStrings["WL_DemoConn"].ConnectionString; using (SqlConnection destinationConnection = new SqlConnection(serverConnectionString)) { destinationConnection.Open(); SqlBulkCopyColumnMapping mapping1 = new SqlBulkCopyColumnMapping("RefNo", "RefNo"); SqlBulkCopyColumnMapping mapping2 = new SqlBulkCopyColumnMapping("FOR CHINA REPAIR CENTER", "OriginCountry"); SqlBulkCopyColumnMapping mapping3 = new SqlBulkCopyColumnMapping("品名", "品名"); SqlBulkCopyColumnMapping mapping4 = new SqlBulkCopyColumnMapping("商品名称", "商品名称"); SqlBulkCopyColumnMapping mapping5 = new SqlBulkCopyColumnMapping("原产国", "原产国"); SqlBulkCopyColumnMapping mapping6 = new SqlBulkCopyColumnMapping("数量", "数量"); SqlBulkCopyColumnMapping mapping7 = new SqlBulkCopyColumnMapping("单价", "单价"); SqlBulkCopyColumnMapping mapping8 = new SqlBulkCopyColumnMapping("净重", "净重"); SqlBulkCopyColumnMapping mapping9 = new SqlBulkCopyColumnMapping("总价CNY", "总价CNY"); SqlBulkCopyColumnMapping mapping10 = new SqlBulkCopyColumnMapping("HS", "HS"); SqlBulkCopyColumnMapping mapping11 = new SqlBulkCopyColumnMapping("品名2", "品名2"); using (SqlBulkCopy bulkCopy = new SqlBulkCopy(destinationConnection)) { //Destination Table must match columns in Excel sheet string tableName = "WL_ProductDetail"; bulkCopy.DestinationTableName = tableName; #region Test bulkCopy eventhandler bulkCopy.BatchSize = 100; bulkCopy.BulkCopyTimeout = 5; #endregion bulkCopy.ColumnMappings.Add(mapping1); bulkCopy.ColumnMappings.Add(mapping2); bulkCopy.ColumnMappings.Add(mapping3); bulkCopy.ColumnMappings.Add(mapping4); bulkCopy.ColumnMappings.Add(mapping5); bulkCopy.ColumnMappings.Add(mapping6); bulkCopy.ColumnMappings.Add(mapping7); bulkCopy.ColumnMappings.Add(mapping8); bulkCopy.ColumnMappings.Add(mapping9); bulkCopy.ColumnMappings.Add(mapping10); bulkCopy.ColumnMappings.Add(mapping11); bulkCopy.SqlRowsCopied += new SqlRowsCopiedEventHandler(OnSqlRowsCopied); bulkCopy.NotifyAfter = 200; try { // Write from the source to the destination. bulkCopy.WriteToServer(dTable); } catch (Exception ex) { CommonDo.DoException.DealException(ex); } destinationConnection.Close(); } excelConnection.Close(); } } } #endregion