SQLite:将数据插入表时出现SQL错误或缺少数据库
我正在尝试向SQLite表插入新数据SQLite:将数据插入表时出现SQL错误或缺少数据库,sqlite,Sqlite,我正在尝试向SQLite表插入新数据 我确信插入代码是正确的,因为我在不同的表中使用它,而且效果很好 我确信数据库和表已经创建并存在,因为我可以在SQLite浏览器中看到它们 但是创建或插入的SQLite语法中有一些错误,因为我收到了以下错误: SQL错误或缺少数据库 这是我的密码: CREATE TABLE IF NOT EXISTS Theory_answers ("questionID" INTEGER,"answerID" INTEGER,"answerText" TEXT, "is
- 我确信插入代码是正确的,因为我在不同的表中使用它,而且效果很好
- 我确信数据库和表已经创建并存在,因为我可以在SQLite浏览器中看到它们李>
CREATE TABLE IF NOT EXISTS Theory_answers ("questionID" INTEGER,"answerID" INTEGER,"answerText" TEXT, "isTrue" INTEGER)
INSERT INTO Theory_answers (questionID, answerID, answerText,isTrue) VALUES ("1","1",text,"0")
这应该是
VALUES ("1","1",text,"0") -> VALUES (1,1,'text',0)
或
值(“1”、“1”、“文本”、“0”)插入书籍(Id、标题、作者、ISBN).>值(1、,
‘战争与和平’、‘列夫·托尔斯泰’、‘978-0345472403’
对于我可以看到的错误,有两个选项,如果它实际上在您显示的SQL中
- 您没有用
终止每一行代码>,这使SQLite无法理解它是两个独立的语句
- 您忘记在insert语句中引用“text”
通常情况下,您声明的错误是由于SQLite找不到您要求它打开的数据库,这是很难在没有看到任何代码的情况下进行调试的。如果您在SQLite表中添加新列或修改SQLite表时遇到此错误,很可能是因为该表仍在应用程序缓存中。如果您处于开发阶段,最简单的修复方法是进入设置->应用程序->应用程序->存储->删除数据。这将清除所有缓存的内存
否则,您可以通过编程方式选择删除您的_表并重新创建一个新表
希望这对其他人也有帮助。光标未关闭时可能会出现此问题。
在android和一些语言中,在运行另一个查询之前,应该关闭所有游标
您应该在新查询之前找到所有“选择”查询并关闭所有游标
final Cursor cur = mDb.rawQuery(
"select * from mytable;",
.
.
.
cur.close();
如果所有游标都已关闭且查询正确,则代码将正常工作 请检查如果questionId是主键???FWIW,当您同时插入多个值时,在某些版本的sqlite中可能会出现相同的错误。谢谢。事实上,这是引用。我投了赞成票,但似乎约阿希姆的第一个回答是一样的:(@Luda,你是否删除了数字中的引号以使其生效?你使用的是单引号还是双引号?@Luda,按最老的答案排序:)
final Cursor cur = mDb.rawQuery(
"select * from mytable;",
.
.
.
cur.close();