我有一个Android应用程序,需要检查数据库中是否已经有记录,如果没有,则处理一些事情并最终将其插入,如果数据确实存在,则只需从数据库中读取数据即可。我正在使用SQLiteOpenHelper的子类来创建和获取SQLiteDatabase的可重写实例,我认为如果表不存在,该表将自动负责创建表(因为执行此操作的代码位于onCreate(... ) 方法)。
但是,当该表尚不存在,并且第一个方法对我拥有的SQLiteDatabase对象执行了对query(...)的调用时,我的logcat显示错误“ I / Database(26434):sqlite返回:error code = 1,msg =否这样的表:“ appdata”,当然,没有创建appdata表。
有什么想法吗?
我正在寻找一种方法来测试表是否存在(因为如果不存在,则数据肯定不在其中,并且在写入表之前似乎不需要读取它,这似乎可以创建表)正确),或一种确保它已被创建并且只是空的方法,以便在第一次调用query(...)时及时进行
编辑
这是在以下两个答案之后发布的:
我想我可能已经发现了问题。我出于某种原因决定应该为每个表创建一个不同的SQLiteOpenHelper,即使它们都访问相同的数据库文件。我认为将代码重构为仅使用一个OpenHelper,并在其onCreate中创建两个表可能会更好。