【问题标题】:Datatype mismatch when trying to insert data into SQLite Database尝试将数据插入 SQLite 数据库时数据类型不匹配
【发布时间】: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();

personquotedate都是字符串,数据库结构如下:

id = INTEGER PRIMARY KEYuser = 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/…

标签: c# sqlite


【解决方案1】:

如果 id 是自增的,你可以用这个查询插入数据

stmt = string.Format("INSERT INTO quotes (user, quote, date) VALUES ('{0}', '{1}', '{2}')", person, quote, date);

【讨论】:

  • 我会尽快的
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-05
  • 2011-06-06
  • 1970-01-01
  • 2018-11-24
  • 1970-01-01
相关资源
最近更新 更多