Entwickler-Ecke
Datenbanken (inkl. ADO.NET) - Insert into funktioniert nicht
MrCapo - Do 07.04.11 17:38
Titel: Insert into funktioniert nicht
Hallo Leute!
Ich bin neu hier und hab gleich einmal ein Problem.
Wenn ich ein Insert mittels OleDbCommand in ein Access DB machen möchte funktioniert das nur wenn in der Variablen KEIN doppelpunkt vorhanden ist.
Dies funktioniert:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| string Dir = Environment.CurrentDirectory; OleDbConnection Con = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0; Data Source="+Dir+"\\WHC.mdb"); Con.Open(); string test = "1212"; string SQLInsert = @"INSERT INTO [HourControl]([TimeIn])" + "VALUES(" + test +")"; OleDbCommand Cmd = new OleDbCommand(SQLInsert, Con); Cmd.Parameters.AddWithValue("@TimeIn", test); Cmd.ExecuteNonQuery(); Con.Close(); |
[/b]
Dies funktioniert nicht:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| string Dir = Environment.CurrentDirectory; OleDbConnection Con = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0; Data Source="+Dir+"\\WHC.mdb"); Con.Open(); string test = "12:12"; string SQLInsert = @"INSERT INTO [HourControl]([TimeIn])" + "VALUES(" + test +")"; OleDbCommand Cmd = new OleDbCommand(SQLInsert, Con); Cmd.Parameters.AddWithValue("@TimeIn", test); Cmd.ExecuteNonQuery(); Con.Close(); |
Es ist aber notwendig einen die variable mit einem doppelpunkt einzutragen.
Versteht ihr was ich meine? Kann mir wer helfen?
Th69 - Do 07.04.11 19:29
Hallo,
du hast anscheinend die Verwendung der SQL-Parameter nicht verstanden, denn diese setzt du ja gar nicht ein...
So wäre es richtig:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| string Dir = Environment.CurrentDirectory; OleDbConnection Con = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0; Data Source="+Dir+"\\WHC.mdb"); Con.Open(); string test = "12:12"; string SQLInsert = @"INSERT INTO [HourControl]([TimeIn]) VALUES(@TimeIn)"; OleDbCommand Cmd = new OleDbCommand(SQLInsert, Con); Cmd.Parameters.AddWithValue("@TimeIn", test); Cmd.ExecuteNonQuery(); Con.Close(); |
P.S. Wenn "TimeIn" jedoch ein Datums- bzw. Zeitfeld ist, dann mußt du dieses auch in C# als DateTime übergeben:
C#-Quelltext
1: 2: 3: 4:
| DateTime datetime = DateTime.Now; string SQLInsert = @"INSERT INTO [HourControl]([TimeIn]) VALUES(@TimeIn)"; OleDbCommand Cmd = new OleDbCommand(SQLInsert, Con); Cmd.Parameters.AddWithValue("@TimeIn", datetime); |
MrCapo - Fr 08.04.11 11:34
HI!
Danke dir!
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!