Excel Datei in MDF Datenbank einlesen



  • Hallo,

    ich habe eine Excel (.xls) Datei, die der Admin uploaden kann.

    Die Daten aus dieser Datei sollen in meine Database.mdf Datei eingelesen werden.

    Kann mir jemand erklären wie das geht?



  • Willst du über C# die DAten einlesen und dann in eine MDF? Ist MDF nicht das Datenbankformat von Access oder war das MDB? Weil wenn es das ist, kannste doch über VisualBasic den Mist einlesen.



  • MDF ist das Microsoft Database Format, das die SQL Datenbank beinhaltet.
    Ich will die Zeilen und Spalten der Excel Liste da rein (Daten) um die DB zu befüllen. (Also keine Formeln)

    Ich habe herausgefunden wie man das in ein Dataset bekommt, aber nicht, wie man das in eine SQL bzw. MDF bekommt...



  • Der Ablauf um ein DataSet in eine SQL DB zu schreiben ist relativ simpel.

    NameSpace "System.Data.SqlClient"

    - Instanziere eine SqlConnection mit dem ConnectionString zu deiner Datenbank.

    SqlConnection SqlConn = new SqlConnection(ConnectionString);
    

    - Instanziere einen SqlCommand.

    SqlCommand SqlComm = new SqlCommand();
    

    - Weise ihm die Connection zu.

    SqlComm.Connection = SqlConn;
    

    - Legen seine Query fest.

    SqlComm.CommandText = "INSERT <tableName> VALUES (<@ValueToSet, @ValueToSet, ...>)
    

    - Je nach dem ob du mit Parametern arbeiten willst, was dich vor SQL Injektions schützt, füllst du diese dann.

    SqlComm.Parameters.AddWithValue("ValueToSet", <YourDataSet.Tables[<indentifier>].Rows[<identifier>].ItemArray.GetValue(<identifier>).ToString());
    SqlComm.Parameters.AddWithValue("ValueToSet", <YourDataSet.Tables[<indentifier>].Rows[<identifier>].ItemArray.GetValue(<identifier>).ToString());
    SqlComm.Parameters.AddWithValue("ValueToSet", <YourDataSet.Tables[<indentifier>].Rows[<identifier>].ItemArray.GetValue(<identifier>).ToString());
    SqlComm.Parameters.AddWithValue("ValueToSet", <YourDataSet.Tables[<indentifier>].Rows[<identifier>].ItemArray.GetValue(<identifier>).ToString());
    SqlComm.Parameters.AddWithValue("ValueToSet", <YourDataSet.Tables[<indentifier>].Rows[<identifier>].ItemArray.GetValue(<identifier>).ToString());
    

    - Danach den SqlCommand ausführen, die Verbindungen wieder sauber trennen und eine Fehlerbehandlung einbinden.

    try
    {
       SqlConn.Open();
       SqlComm.ExecuteNonQuery();
       SqlConn.Close();
    }
    catch
    { // Do something useful... }
    finally
    { SqlComm.Dispose(); SqlConn.Dispose(); }
    

    - Da du ja ganze Tabellen einfügen möchtest, setzt du das "Füllen des SqlCommands und desssen Ausführung" am besten in eine Schleife ODER du schreibst eine entsprechend lange SQL Query.

    Mit freundlichen Grüßen,

    NozzNazz


Anmelden zum Antworten