Konvertierung varchar in DateTime

  • VB.NET
  • .NET (FX) 3.0–3.5

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    Konvertierung varchar in DateTime

    Hallo Zusammen,

    ich versuche aktuell aus einer Excel-Tabelle die Einträge in eine SQL-Datenbank zu bekommen. Ich lese die Excel-Tabelle in ein DataSet ein

    VB.NET-Quellcode

    1. ​MyConnection = New System.Data.OleDb.OleDbConnection(String.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=Excel 12.0", fileName))


    Und schreibe die entsprechenden Einträge dann in die SQL Datenbank.

    Hierbei bekomme ich folgenden Fehler:

    Quellcode

    1. ​Bei der Konvertierung eines varchar-Datentyps in einen datetime-Datentyp liegt der Wert außerhalb des gültigen Bereichs. Error: ABL not Inserted, SQL String: INSERT INTO PATDATABL (ABLNAME, ABLPFAD, ABLDATUM, ABLLW, SESSIONID, ABLPERSON, ABLEINR, ABLPROG, ABLMETH, ABLGewicht, ABLGroesse, ARCHIV) VALUES
    2. ('a13861c0.wg1','\\khieeg\WGDATA\','1997-01-23 15:15:31','','2','','0','Standard','WALTER','0','0','N')Source:Microsoft OLE DB Provider for SQL Server TESTPC


    Ich bin nun schon beigegangen, das Ausgelesene Datum (13.01.1997 15:15:31) zu Formatieren:

    VB.NET-Quellcode

    1. Dim tempDate As DateTime
    2. tempDate = DateTime.ParseExact(AblDate, "yyyy-MM-dd HH:mm:ss", Nothing)
    3. Dim newAblDate As String = tempDate.ToString("yyyy-MM-dd HH:mm:ss")


    Aber dennoch bekomme ich die Meldung. Das Datenbankfeld ist als DateTime formatiert.

    Für Ideen bin ich Dankbar :thumbsup:
    google mal die sprach-unabhängige ISO-Formatierung von Datum - ist glaub yyyyMMdd HH:mm:ss
    also keine '-' dazwischen.

    Ansonsten würde ich den Kram natürlich in eine DataTable einlesen, und dann einen CommandBuilder die Arbeit machen lassen.
    Dein Ansatz ist mawieder ein offenes Scheunentor für Sql-Injection-Angriffe. Da schreib ich dir was lustiges ins Excel-Sheet, was die DB als Befehl ausführt: Tabelle löschen oder sowas.
    Guckma im Datenbank-Tutorial-Bereich zu Sql-Injection.