C# Datenbanken füllen

Bratmaxe66

Grünschnabel
Moin...

ich bin angehender FaInfo AW und stelle mich enorm dämlich mit C# und Datenbanken an. Wir schreiben gerade an einer Aufgabe in der ein Flughafen Terminal verarbeitet werden soll.

Soweit so gut. Läuft auch alles bestens und Daten aus ner ACCESS DB auslesen und wiedergeben ist auch kein wirkliches problem...Ich nutze dazu OLEDB.

Nun versuche ich die Daten auch wieder in eine andere Tabelle zurück zu schieben, was mir aber nicht gelingt....

Der Code mit dem ich es versuche:

private void standbyspeichern_Click(object sender, EventArgs e)
{
string name = namebox.Text;
string vorname = vornamebox.Text;
string reisepassnr = passnr;
string gepaecknr = gepaecknrbox.Text;
string gateway1 = gatewaybox.Text;
string flugziel = zielflughafenbox.Text;
int gateway = Convert.ToInt32(gateway1);

// ConnectionString erzeugen
string Connection = "Provider=Microsoft.Jet.OLEDB.4.0;" +
"Data Source=D:\\flughafen.mdb";
// Connection erzeugen
OleDbConnection conn = new OleDbConnection(Connection);

// SQL-Kommando erstellen
string SQL = "INSERT INTO 'warteliste' ('Name','Vorname','Reisepassnr','Gepaecknr','Gateway') VALUES ('" + name + "' , '" + vorname + "' , '" + reisepassnr + "' , '" + gepaecknr + "' , '" + gateway + "')";
// OleDbCommand erstellen
conn.Open();
OleDbCommand cmd = new OleDbCommand(SQL, conn);
cmd.ExecuteNonQuery();
conn.Close();
}


Bei einem klick auf den genannten Button sollen die Daten aus den Textfelden ausgelesen und in die Datenbank geschrieben werden. Die Datenbank läuft und die namen sind so korrekt und vollständig. Nur die ID-Nr, also die erste Spalte der Tabelle ist ein AutoWert und wird demnach nicht mit übergeben.

Der Code wir so auch fehlerfrei Compiliert, doch bei klick auf den Button kommt folgende Exception:

************** Ausnahmetext **************
System.Data.OleDb.OleDbException: Syntaxfehler in Abfrage. Die Abfrage ist unvollständig.
bei System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult)
bei System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult)
bei System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult)
bei System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method)
bei System.Data.OleDb.OleDbCommand.ExecuteNonQuery()
bei ProjektFlughafenCheckin.Ticketnummereingabe.standbyspeichern_Click(Object sender, EventArgs e) in C:\Dokumente und Einstellungen\Devil\Desktop\Coding\C-C++\Schulprojekt\ProjektFlughafenCheckin\ProjektFlughafenCheckin\Form1.cs:Zeile 111.
bei System.Windows.Forms.Control.OnClick(EventArgs e)
bei System.Windows.Forms.Button.OnClick(EventArgs e)
bei System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
bei System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
bei System.Windows.Forms.Control.WndProc(Message& m)
bei System.Windows.Forms.ButtonBase.WndProc(Message& m)
bei System.Windows.Forms.Button.WndProc(Message& m)
bei System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
bei System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)



Wie man sieht scheint was mit Zeile 111 nicht zu stimmen....

das wäre die Zeile:

cmd.ExecuteNonQuery();

Ich hoffe jemand kann mir erklären was ich falsch mache....Vielen Dank schonmal vorab,

Maxe
 
Du solltest immer Parameter (in dienem Fall OleDbParameter) verwenden, um deine SQL-Statements zu befüllen.

Zweitens: Lass dir den CommandText doch mal ausgeben. Irgendwo hast du einen Syntaxfehler in deinem SQL Statement. Schau dir den CommandText entweder über die Debug-Funktion an, oder schreib dir die Eigenschaft auf der Konsole (oder wo auch immer) mit.
 

Neue Beiträge

Zurück