SQLite, C#: Datum einfügen, Recordset, SQL-String, Datum Format
In C#, SQLite fügt man ein Datum in einer Tabelle, Datensatz
ein, indem man das Datum nach dem Schema '2016-05-30 10:00:00' übergibt
INSERT INTO [Files] ([Filename, [dtCreated]) VALUES ('File1.MOV', '2016-05-22 08:37:00');
|
Wenn man unter C# ein Datumfeld oder Datum-Variable
verwendet, muss man diese zuvor in das String-Format konvertieren
string
sDate = file.DateCreated.ToString("yyyy-MM-dd hh:mm:ss"); //'2007-01-01 10:00:00'
|
SQLite Datenbank Ergebnisse
Auch in der Darstellung unter SQLite Tools werden die
Datensätze von Feldern im Datumsformat nach dem Muser ("yyyy-MM-dd
hh:mm:ss") angezeigt.
Beispiel in C# zum Einfügen eines Datensatzes
Im ersten Schritt wird das Datum formatiert
Im zweiten Schritt wird ein SQL string erstellt zum Anfügen
eines Datensatzes
Im dritten Schritt wird der SQL String der Datenbank
Connection übergeben
string sDate =
file.DateCreated.ToString("yyyy-MM-dd
hh:mm:ss"); //'2007-01-01
10:00:00'
//<
execute >
string sSQL = @"INSERT INTO [Files]
([Filename],[Path],[IDFolder],[IsImage],[FileType],[dtCreated]) VALUES
('" + sFilename + "','" + file.Path + "'," + IDFolder + ",'v','" + file.FileType + "','" + sDate + "');";
clsDB.Execute(sSQL);
//</ execute >
|
public static void Execute(string
sSQL)
{
//------------<
btnCreateDB_Click() >------------
try
{
ISQLiteStatement cnStatement = dbConnection.Prepare(sSQL);
var result = cnStatement.Step();
}
catch (Exception
ex)
{
clsDebug.debug_Exception(ex, "clsDB.Execute()");
return;
}
//------------</
btnCreateDB_Click() >------------
}
|
Ausführung in Haltepunkt:
Das Datum wird im String nach ISO-Format übergeben.
Fehlerhafte
Übergabe:
Direkte übergabe als Datum
//<
execute >
string sSQL = @"INSERT INTO [Files]
([Filename],[Path],[IDFolder],[IsImage],[FileType],[dtCreated]) VALUES
('" + sFilename + "','" + file.Path + "'," + IDFolder + ",'v','" + file.FileType + "'," + file.DateCreated + ");";
clsDB.Execute(sSQL);
//</ execute >
|
Fehlerhaft, da das Datum nach der landesspezifischen
Einstellung übergeben wird:
INSERT INTO [Files] ([Filename],[dtCreated])
VALUES ('2016-05-22 (2).MOV',22.05.2016 20:37:00 +02:00);
|
Fehlermeldung
unter SQLite
ErrorCode
: 1
Message : SQL logic error or missing database
near ".2016": syntax error
Result : Error
|
Anzeige in SQLite Tools