Android,在Android中创建表时出错

Android,在Android中创建表时出错,android,Android,我的sqlite数据库中有两个表。我想在点击按钮的基础上对表数据库进行操作。当按钮1单击时,它将插入pdsource表,在按钮2单击时,它将插入pdreview表 按钮1功能工作正常。但是按钮2的点击造成了问题 我的表创建脚本是 CREATE TABLE "pdsource" ("Id" INTEGER PRIMARY KEY NOT NULL ,"AudioFileName" TEXT,"AudioFilePath" TEXT,"TextFileName" TEXT,"TextFi

我的sqlite数据库中有两个表。我想在点击按钮的基础上对表数据库进行操作。当按钮1单击时,它将插入pdsource表,在按钮2单击时,它将插入pdreview表

按钮1功能工作正常。但是按钮2的点击造成了问题

我的表创建脚本是

CREATE TABLE "pdsource" ("Id" INTEGER PRIMARY KEY  NOT NULL ,"AudioFileName" 
    TEXT,"AudioFilePath" TEXT,"TextFileName" TEXT,"TextFilePath" TEXT,"DateTime" 
    TEXT,"Duration" TEXT,"Attempts" TEXT)

CREATE TABLE pdreview(
    reviewId     INTEGER, 
    priid Integer, 
    fwords Text,
    Gr Text,
    dslow Text,
    orating Text,
    comments Text,
    FOREIGN KEY(reviewId) REFERENCES pdsource(id)
)
我将把
LogCat
错误粘贴到这里

06-17 14:49:22.006: I/SqliteDatabaseCpp(6423): sqlite returned: error code = 1, msg = no such table: pdreview, db=/data/data/com.first.personalitydevelopment/databases/PersonalityDevelopment.db
06-17 14:49:22.042: E/SQLiteDatabase(6423): Error inserting orating=good Gr=Noun missing fwords=hmm prid=1 dslow=medium comments=Excellent
06-17 14:49:22.042: E/SQLiteDatabase(6423): android.database.sqlite.SQLiteException: no such table: pdreview: , while compiling: INSERT INTO pdreview(orating,Gr,fwords,prid,dslow,comments) VALUES (?,?,?,?,?,?)

请参阅链接的第4.3节,以创建一个帮助器类来管理数据库

此外,不需要用引号括起列名。 在pdreview的create语句中声明了prid,但在insert中引用了prid。 您还需要执行 “PRAGMA foreign_keys=ON”每次打开数据库以启用外键时


检查这是否有效

尚未创建第二个表

要检查您的表是否在数据库中,您可以通过adb访问它

转到android SDK>plaform tools目录并执行命令

>亚洲开发银行壳牌公司

>sqlite3/data/data/com.first.personalitydevelopment/databases/personalitydevelopment.db

.表格
>从pdreview中选择*

*第一个返回数据库的所有表

如果您的表不在那里,则可能是由于脚本问题,请执行第二个表脚本

如果它不是在那里创建的,那么脚本中就有错误(我不知道sqlite是否敏感,因为我看到您的引用“id”不是“id”,可能这就是错误)

如果成功创建了表,则必须知道无法修改以前创建的数据库。第一次创建数据库时,它将在onCreate中执行脚本,稍后,如果要更新,则有两个选项:

  • 你的应用已经上市:你必须更新数据库的版本,这样android才能执行onUpgrade功能,在那里你必须删除旧表并执行新脚本

  • 您正在开发:通过设置清除数据,onCreate将重新执行(或卸载应用程序)


看到这个,我想这个表不存在。msg=没有这样的表:pdreviewYes您是正确的。在创建表时,它本身就产生了问题。我已经检查了脚本更多次。但它仍然产生了问题。我启用了外键。我还更改了prid。但它仍然不起作用。是的。正如你所说的,我已经卸载了,然后又做了。谢谢。现在它固定了。它很好。好的:考虑接受这个答案。不过,请记住在将来的案例中实施onUpgrade方法。是的,我已经实施了。感谢您的及时帮助。