none
Fehler in INSERT INTO Anweisung

    Frage

  • Ich möchte eine Access DB mit Daten füttern.

    Dabei kommt es immer zur Fehlermeldung.
    Ich komm nicht drauf weshalb.

    OleDbConnection con = new OleDbConnection(Properties.Settings.Default.LaboratoryOrderDBConnectionString);
                try
                {
                    con.Open();
                    string insertStatement = "INSERT INTO tbl_DivisionStandardTest "
                        + "(Number,TestName,Babtecname,FR_Number,ProductGroup,ProductDivision,AdditionalRequirements,TestInstruction)"
                        + "VALUES (?, ?, ?, ?, ?, ?, ?, ?)";
    
                    OleDbCommand insertCommand = new OleDbCommand(insertStatement, con);
                    insertCommand.Parameters.Add(@"Number", OleDbType.Char).Value = Convert.ToString(this.xlsWorkSheet.Cells[row, 1].Value2);
                    insertCommand.Parameters.Add(@"TestName", OleDbType.Char).Value = Convert.ToString(this.xlsWorkSheet.Cells[row, 9].Value2);
                    insertCommand.Parameters.Add(@"Babtecname", OleDbType.Char).Value = Convert.ToString(this.xlsWorkSheet.Cells[row, 1].Value2);
                    insertCommand.Parameters.Add(@"AdditionalRequirements", OleDbType.Char).Value = Convert.ToString(this.xlsWorkSheet.Cells[row, 6].Value2);
    
                    if (Convert.ToString(this.xlsWorkSheet.Cells[row, 5].Value2) == "all")
                    {
                        insertCommand.Parameters.Add(@"FR_Number", OleDbType.Char).Value = "all";
                        insertCommand.Parameters.Add(@"ProductDivision", OleDbType.Char).Value = "all";
                        insertCommand.Parameters.Add(@"ProductGroup", OleDbType.Char).Value = "all";
                    }
                    else
                    {
                        insertCommand.Parameters.Add(@"FR_Number", OleDbType.Char).Value = Convert.ToString(this.xlsWorkSheet.Cells[row, 7].Value2);
                        insertCommand.Parameters.Add(@"ProductDivision", OleDbType.Char).Value = Convert.ToString(this.xlsWorkSheet.Cells[row, 4].Value2);
                        insertCommand.Parameters.Add(@"ProductGroup", OleDbType.Char).Value = Convert.ToString(this.xlsWorkSheet.Cells[row, 5].Value2);
                    }
    
                    if (Convert.ToString(this.xlsWorkSheet.Cells[row, 8].Value2) == null)
                        insertCommand.Parameters.Add(@"TestInstruction", OleDbType.Char).Value = "---";
                    else
                        insertCommand.Parameters.Add(@"TestInstruction", OleDbType.Char).Value = Convert.ToString(this.xlsWorkSheet.Cells[row, 8].Value2);
    
                    insertCommand.ExecuteNonQuery();
                }
                catch (Exception ex)
                {
                    ErrorLog.WriteLogdata("Error TestplanAdapter: ", ex);
                }
                finally
                {
                    con.Close();
                }

    Tabellenstruktur


    Gruß

    Peter

    Wer grob fahrlässige Rechtschreibfehler findet, darf diese behalten ;0)

    Montag, 24. April 2017 14:02

Alle Antworten

  • Hallo,
     
    Peter Sypek wrote:
     
    > Ich möchte eine Access DB mit Daten füttern.
    >
    > Dabei kommt es immer zur Fehlermeldung.
    > Ich komm nicht drauf weshalb.
     
    Lass dir das komplette INSERT-Statement vor Ausführung mal anzeigen und,
    falls du nichts auffälliges entdeckst, poste es hier.
     
    Der Connection String wäre auch hilfreich.
     
    Gruss
     
    --
     
    Montag, 24. April 2017 14:23
    Moderator
  • Bitte sehr:

    Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\ROMA\Z_Ordner\Untersuchungsanforderung\Data\New\LaboratoryOrderDB.mdb

    INSERT INTO tbl_DivisionStandardTest (Number,TestName,Babtecname,FR_Number,ProductGroup,ProductDivision,AdditionalRequirements,TestInstruction)VALUES (?, ?, ?, ?, ?, ?, ?, ?)


    Gruß

    Peter

    Wer grob fahrlässige Rechtschreibfehler findet, darf diese behalten ;0)


    Montag, 24. April 2017 14:27
  • Hallo,
     
    Peter Sypek wrote:
     
    > Provider=Microsoft.Jet.OLEDB.4.0;Data
    > Source=\\ROMA\Z_Ordner\Untersuchungsanforderung\Data\New\LaboratoryOrderDB.mdb
     
    Bin nicht sicher, ob du nicht auch User ID=admin;Passwort=; angeben musst.
     
    > INSERT INTO tbl_DivisionStandardTest
    > (Number,TestName,Babtecname,FR_Number,ProductGroup,ProductDivision,AdditionalRequirements,TestInstruction)VALUES
    > (?, ?, ?, ?, ?, ?, ?, ?)
     
    Hmm, eigentlich wollte ich das INSERT-Statement sehen, _nachdem_ es mit
    Parametern bestückt worden ist, d.h. dass man sieht, ob die Feldtypen
    passen.
     
    Gruss - Peter
     
    --
     
    Montag, 24. April 2017 17:48
    Moderator
  • Sieht alles soweit gut aus meine ich.
    Ein PW ist noch nicht vergeben.

    Ich benutze den gleichen ConnectionString mit einer anderen Tabelle ohne Probleme.



    Gruß

    Peter

    Wer grob fahrlässige Rechtschreibfehler findet, darf diese behalten ;0)


    • Bearbeitet Peter Sypek Dienstag, 25. April 2017 08:35
    Dienstag, 25. April 2017 06:02
  • Ich habe das Problem alleine lösen können.

    "Number" als Tabellenname ist etwas schlecht für SQL, da reserviertes Wort.

    Alle Tabellennamen in eckige Klammern und das Problem ist erledigt.

    Schade nur, dass keine trefendere Fehlermeldung ausgegeben wurde.


    Gruß

    Peter

    Wer grob fahrlässige Rechtschreibfehler findet, darf diese behalten ;0)

    Dienstag, 2. Mai 2017 12:49