【发布时间】:2016-12-04 17:41:39
【问题描述】:
我试图在 C# 中将记录插入到表中,但是当我到达执行查询以将记录插入表中的代码行时,它只是出现了这个错误:
System.Data.SQLite.dll 中出现“System.Data.SQLite.SQLiteException”类型的异常,但未在用户代码中处理
附加信息:数据类型不匹配
我必须将数据插入数据库的代码如下:
string stmt = string.Format("INSERT INTO quotes (id, user, quote, date) VALUES ('', '{0}', '{1}', '{2}')", person, quote, date);
SQLiteCommand cmd = new SQLiteCommand(stmt, connection);
int rowsAffected = cmd.ExecuteNonQuery();
person、quote和date都是字符串,数据库结构如下:
id = INTEGER PRIMARY KEY、user = STRING(255)、quote = STRING(255) 和 date = STRING(255)
【问题讨论】:
-
您似乎正试图将字符串(values 子句中的第一个元素)插入整数 (id)。
-
我不知道错配问题,但你也可以这样写查询 string stmt = string.Format("INSERT INTO quotes (user, quote, date) VALUES ('{0}', ' {1}', '{2}')", 人, 报价, 日期);如果 id 是自动递增的。
-
从使用 SQL 参数开始。如果文本包含
O'Toole之类的内容,它将崩溃;他们还将确保传递正确的类型 -
为什么要在 ID 中插入一个空字符串?
-
看看这个关于如何完成你的任务的答案stackoverflow.com/questions/12785780/…