Autor Beitrag
MrCapo
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Do 07.04.11 17:38 
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:
ausblenden 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:

ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4798
Erhaltene Danke: 1059

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: 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:
ausblenden 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:
ausblenden 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 Threadstarter
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Fr 08.04.11 11:34 
HI!

Danke dir!