TIMESTAMPを文字列としてテーブルに挿入できましたが、それを読み取ると、プログラムで「文字列が有効な日時として認識されませんでした」というエラーが発生します。
これが私の値をテーブルに挿入する方法です。
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ステートメントを受け入れる唯一の方法です。