2016-07-08 14 views
0

Ich bin neu in MS-Access und C# und ich habe ein Problem, in einen neuen Datensatz in der Datenbank von meinem DateTimePicker als C# Programm eingefügt wird, werden folgende Fehler geben:Datetime Wert kann nicht in Access-Datenbank gespeichert wird

Insert into statement is not correct.

Also habe ich mich gefragt: Wie kann ich dieses Problem lösen?

private void btn_insert_Click(object sender, EventArgs e) 
{ 
    try 
    { 
     connection.Open(); 
     OleDbCommand command = new OleDbCommand(); 
     command.Connection = connection; 
     command.CommandText = "insert into BP (Name,DateTime,Systolic,Diastolic) VALUES('" + txt_Name.Text + "', '" + dateTimePicker1.Text + "' ," + txt_systolic.Text + "," + txt_diastolic.Text + ");"; 
     command.ExecuteNonQuery(); 
     MessageBox.Show("Changes made Succesfully"); 
     connection.Close(); 
    } 
    catch (Exception ex) 
    { 
     MessageBox.Show("ERROR " + ex); 
    } 
    connection.Close(); 
} 
+0

Haben Sie 'dateTimePicker1.Value' versucht? – user3185569

+1

Verwenden Sie immer Parameter, um SQL-Injektion und Formatierungsprobleme zu vermeiden. Einige deiner Feldnamen waren auch schlechte Entscheidungen. DateTime ist wahrscheinlich ein reserviertes Wort, also müssten Sie diese in Klammern setzen: '[DateTime]'. – LarsTech

+0

Ich habe versucht dateTimePicker1.Value auch es hat nicht funktioniert auch zeigt es den gleichen Fehler und danke für den DateTime Rat habe ich es geändert, aber es zeigt einen Fehler "Datentyp Mismatch in Kriterien" .. –

Antwort

0

Sie müssen einen korrekt formatierte String-Ausdruck für Ihr Datum Wert übergeben und die richtigen Access SQL-Syntax verwenden, und den Name ist Wort reserviert, also:

command.CommandText = "insert into BP ([Name],DateTime,Systolic,Diastolic) VALUES('" + txt_Name.Text + "', #" + dateTimePicker1.Value.ToString("yyyy'/'MM'/'dd hh':'mm':'ss") + "# ," + txt_systolic.Text + "," + txt_diastolic.Text + ");"; 
+0

Danke für die Hilfe, die es richtig funktioniert, aber wie gebe ich Zeit und Datum zusammen. Gibt es ein spezielles Format dafür? –

+0

Ja, der Zeitteil kann im Format enthalten sein - siehe Bearbeiten. – Gustav