zoukankan      html  css  js  c++  java
  • Excel 数据导入到SQL SERVER

         #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
    
  • 相关阅读:
    如何在windows下搭建PHP运行环境?
    如何安装Moodle课程包
    2009人工智能与教育应用国际学术会议 (ICAIE'09)
    利用EasyPHP搭建Moodle平台(转)
    SharePoint Server 2007序列号 (转 )
    2009 International Conference on ELearning, EBusiness, Enterprise Information Systems, and EGovernment (EEEE 2009)
    第二届IEEE信息技术与教育国际会议
    原创:利用APMserv快速搭建Moodle平台
    PHP数组的定义、初始化和数组元素的显示
    office2007新建 Microsoft Office Word 文档.docx,打开后弹出转换文件对话框的解决办法
  • 原文地址:https://www.cnblogs.com/tianjinquan/p/2235719.html
Copyright © 2011-2022 走看看