Wie lösen Sie einen syntax Fehler bei der Verwendung dieser INSERT-INTO-Anweisung und die .NET-OleDb-namespace?

Ich erhalte eine Fehlermeldung, wenn ich Versuch, das einfügen von Werten in eine Access-Datenbank.

Den Fehler syntaktische, was führt zu der folgenden Ausnahme:

OleDbException wurde nicht behandelte Syntaxfehler in der INSERT INTO-Anweisung.

private OleDbConnection myCon;

public Form1()
{
    InitializeComponent();
    myCon = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\File.mdb");
}

private void insertuser_Click(object sender, EventArgs e)
{
    OleDbCommand cmd = new OleDbCommand();
    myCon.Open();
    cmd.Connection = myCon;
    cmd.CommandType = CommandType.Text;

    cmd.CommandText = "INSERT INTO User ([UserID], [Forename], [Surname], " +
                                        "[DateOfBirth], [TargetWeight], [TargetCalories], [Height]) " +
                      "VALUES ('" + userid.Text.ToString() + "' , '" +
                                    fname.Text.ToString() + "' , '" +
                                    sname.Text.ToString() + "' , '" +
                                    dob.Text.ToString() + "' , '" +
                                    tarweight.Text.ToString() + "' , '" +
                                    tarcal.Text.ToString() + "' , '" +
                                    height.Text.ToString() + "')";

    cmd.ExecuteNonQuery();
    myCon.Close();
}
Kannst du die Fehlermeldung, die Sie empfangen?
sind Sie eine Ausnahme? Ist die Anwendung abstürzt? Schließen Sie die Anweisungen in einen try..catch-block abfangen der Ausnahme und poste die exception-Meldung.
Hallo dies ist die Ausnahme, Meldung: Syntaxfehler in der INSERT INTO-Anweisung OleDbException wurde nicht behandelte
Ich arbeite nicht in C#, also nicht wissen, wie es mit Ihr interagiert Datenbank-interface-Schicht, aber Jet/ACE verwendet # als Trennzeichen für den string-Darstellung von Datum-Werten, nicht '. Dies zu ändern könnte helfen. Zumindest schreiben die SQL-Zeichenfolge gesendet und sehen, wenn Sie können führen Sie es in einen interaktiven Zugang.

InformationsquelleAutor Howard | 2011-01-07

Schreibe einen Kommentar