[C#] BulkCopy: Excel -> SQL-Server

Da ich oft in verschiedenen Foren lese, das Leute ne Möglichkeit suchen Daten von einer Excel-Datei auf einen SQL-Server zu kopieren, hab ich folgendes Code-Schnipsel programmiert. Ich musste den Sourcecode etwas zerstückeln, da mein Code Plugin es sonst zerreißt. Werd es bei Gelegenheit austauschen.

  1. using System;
  2. using System.Data.OleDb;
  3. using System.Data.SqlClient;
  1. amespace BulkCopy
  2. {
  3.     class Program
  4.     {
  5.         static void Main(string[] args)
  6.         {
  7.             // Der String der Verbindung zu der Excel-Datei
  8.             string excelCon = @"Provider=Microsoft.Jet.OLEDB.4.0;
  9. Data Source=ExcelDatei.xls;Extended Properties=""Excel 8.0;HDR=YES;""";
  10.  
  11. // Der String der Verbindung zu der Datenbank
  12.             string sqlCon = @"Data Source=localhost;Initial Catalog=EureDatenbank;
  13. Integrated Security=True";
  14.  
  15.             // Verbindung mit der Excel-Datei herstellen
  16.             using (OleDbConnection connection = new OleDbConnection(excelCon))
  17.             {
  18.                 // Die abzufragenden Werte und den Namen des Blattes angeben [$]
  19.                 OleDbCommand command = new OleDbCommand("Select id, name
  20.  FROM [Tabelle1$]", connection);
  21.                 connection.Open();
  22.  
  23.                 // Command ausführen
  24.                 using (OleDbDataReader reader = command.ExecuteReader())
  25.                 {
  26.                     // Ein BulkCopy auf den SQL-Server erstellen
  27.                     using (SqlBulkCopy bulkCopy = new SqlBulkCopy(sqlCon))
  28.                     {
  29. //ExcelTabelle = Zieltabelle auf dem SQL-Server
  30.                         bulkCopy.DestinationTableName = "ExcelTabelle";
  31.                         bulkCopy.WriteToServer(reader);
  32.                     }
  33.                 }
  34.             }
  35.         }
  36.     }
  37. }

Dabei hat die Excel-Datei folgenden Aufbau:
Excel-Mappe

Viel Erfolg 🙂

4 Reaktionen zu “[C#] BulkCopy: Excel -> SQL-Server”

  1. Jan

    oho, ich wusste gar net, dass der feine herr auch bloggt ^^

  2. Konstantin Gross

    Ja so ist es Jan, hat sich viel getan seit 2 Monaten 😀

  3. yury

    nice code 🙂 I had an inversed task – to import from Excel into SQL, but with few changes this example of SqlBulk works, thanks

  4. Konstantin Gross

    I am glad that I could help you.

Einen Kommentar schreiben