【发布时间】:2022-06-17 22:55:36
【问题描述】:
所以我正在使用 System.Data.SQLite 库,从数据库中将一些数据本地存储在我的电脑上。问题是虽然有两个列条目,它们是 GUID(定义如下的唯一 ID:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)。当他遇到第一个“-”字符时,编译器总是会抛出错误。我知道 DATE 使用 YYYY-MM-DD 语法,例如会不会,这会以某种方式发生冲突?
这是代码行:
sqlString = $"insert into completelocalmessages (Date, Sender, Message, Receiver, ID) values({message.Date.Year}-{message.Date.Month}-{message.Date.Day}, {message.From.ToString()}, {message.Message}, {message.To.ToString()}, {message.ID})";
Date 是 Date 类型,Sender 和 receiver 是 GUID,Message 是字符串,ID 是整数。 该表是这样定义的:
sqlString = "create table completelocalmessages (Date date, Sender Text(30), Message Text(400), Receiver Text(30), ID int)";
【问题讨论】:
-
您需要在文本和日期值周围使用单引号。此外,在字符串插值中使用 ToString() 是多余的,不需要。
-
guid 字段在哪里?同样通常在原始 sql 日期和字符串(以及存储为字符串的 guid!)中必须用单引号括起来 - 如果您只是输入 2022-01-01 它可能应该是 '2022-01-01' - 通常最好使用参数化查询,如果您有时间研究的话。
标签: c# sqlite system.data.sqlite