none
Как импортировать данные из Excel файла в SQL Server базы данных? RRS feed

  • Общие обсуждения

  • Во первых, нужно использовать OleDBConnection для соединения с файлом Excel как с источником данных. После этого используем DbDataReader для доступа к данным, которые мы хотим получить. Далее нужно использовать SqlBulkCopy для копирования данных из DataReader в целевую SQL таблицу. Это все, что нужно сделать. Пример:

    // Connection String to Excel Workbook
    string excelConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Book1.xls;Extended Properties=""Excel 8.0;HDR=YES;""";
     
    // Create Connection to Excel Workbook
    using (OleDbConnection connection = new OleDbConnection(excelConnectionString))
    {
      OleDbCommand command = new OleDbCommand("Select ID,Data FROM [Data$]", connection);
     
      connection.Open();
      
      // Create DbDataReader to Data Worksheet
      using (DbDataReader dr = command.ExecuteReader())
      {
        // SQL Server Connection String
        string sqlConnectionString = "Data Source=.;Initial Catalog=Test;Integrated Security=True";
     
        // Bulk Copy to SQL Server
        using (SqlBulkCopy bulkCopy = new SqlBulkCopy(sqlConnectionString))
        {
          bulkCopy.DestinationTableName = "ExcelData";
          bulkCopy.WriteToServer(dr);
        }
      }
    }
    
    

    SqlBulk сделает процесс импорта очень высокопроизводительным. Идея и код взяты из блога David Hayden - Import Excel Spreadsheet Data into SQL Server Database Table Using SqlBulkCopy

     


    Для связи [mail]
    8 апреля 2011 г. 12:10