2016-08-09 5 views
1

ich die DateTime. nun in Access-Datenbank ein Problem bin vor auf vorbei:DateTime.Now in Access-Datenbank Passing

oleDBCommand.CommandText = 
    "INSERT INTO tblData "([PIC], [Sampling Date]) "VALUES (@PIC, @SamplingDate)"; 

oleDBCommand.Parameters.Add(new OleDbParameter("@PIC", combobox1.Text)); 
oleDBCommand.Parameters.Add(new OleDbParameter("@SamplingDate", DateTime.Now)); 

Ich mag mit oleDBType.Date eine Menge von Methoden aus dem Internet versucht, DateTime.Now.ToString(), mit AddWithValue..... Und keiner davon funktioniert.

Anmerkung 1: Database Einstellung [Sampling Date] = Data Type: Date/Time (Format - Long Time) war Datenbank

Anmerkung 2: Unter Code arbeitet, aber ich bevorzuge mit .parameters, da es viel mehr aussehen zu organisieren und einfach zu verwalten.

oleDBCommand.CommandText = 
"INSERT INTO tblData ([PIC], [Sampling Date]) " VALUES ('" + combobox1.Text + "', '" + DateTime.Now + "')"; 
+1

Verwandte ersetzen: http://www.codeproject.com/Fragen/660282/Date-Format-in-Select-Abfrage-Mit-Csharp-To-MS-Acce –

+0

Getestet die Lösung auf der vorgeschlagenen Webseite, es funktioniert auch nicht – user6648485

+0

'DateTime.Now' bekommt" lokale "Zeit (aus mehreren Gründen problematisch), sind Sie sicher, dass Sie nicht explizit UTC ('DateTime.Ut "Jetzt")? Was meinst du mit "nicht arbeiten"? Wirft eine Ausnahme (welche)? Fügt die falschen Daten ein (welche Daten)? –

Antwort

1

Sie brauchen nicht Parameter zu übergeben, wenn das aktuelle Datum angeben.

Lassen Sie die MS Access SQL-Abfrage damit umgehen, müssen Sie @SamplingDate Parameter Date() zum Beispiel

cmd.CommandText = "INSERT INTO tblData ([PIC], [Sampling Date]) VALUES (@PIC, Date())"; 

Hier ist die beste Erklärung Insert today's date

+0

Vielleicht. Wenn die Datenbank eine andere Einstellung als der Client hat, kann dies zu falschen Ergebnissen führen. –

+0

meinst du das Datumsformat? –

+0

@Shift N 'Tab, ........ Werte (..., Datum())' '; funktioniert gut. Danke – user6648485

0

Das Versuchen,

cmd.CommandText = "INSERT INTO tblData ([PIC], [Sampling Date]) VALUES (@PIC, @SamplingDate)"; 
cmd.Parameters.Add("@PIC",OleDbType.VarChar).Value = combobox1.Text; 
cmd.Parameters.Add("@PIC", OleDbType.Date).Value = DateTime.Now; 

+0

Die Idee funktionierte nicht so, wie sie angezeigt wird (Datentyp stimmt nicht mit dem Kriterienausdruck überein). – user6648485