我能够将 TIMESTAMP 作为字符串插入到我的表中,但是当我读出它时,我的程序引发了一个错误,提示“字符串未被识别为有效的 DateTime”。
这是我将值插入表中的方法。
sqlstr := 'INSERT INTO ALARMS (ALARMTIME) VALUES ("'+DateTime.Now.ToString+'");';
cnn := new SQLiteConnection('Data Source=AlarmLog.s3db');
cnn.Open;
var mycommand := new SQLiteCommand(cnn);
mycommand.CommandText := sqlstr;
var info := mycommand.ExecuteNonQuery;
cnn.Close;
这是我读出来的方法。
sqlstr := 'SELECT * from ALARMS';
var dt := new DataTable;
cnn := new SQLiteConnection('Data Source=AlarmLog.s3db');
cnn.Open;
var mycommand := new SQLiteCommand(cnn);
mycommand.CommandText := sqlstr;
var reader := mycommand.ExecuteReader;
dt.Load(reader); <---------------------Here is where I am getting the error, "String was not recognized as a valid DateTime."
reader.Close;
cnn.Close;
我知道为什么我会收到错误,但为什么我不能将 TIMESTAMP 作为日期和时间而不是字符串或文本类型插入。如果您在我的 SQL 查询中注意到,我在 DateTime.Now.ToString 语句周围有引号。这是它接受我的 SQL 语句的唯一方式。