我有一个android应用程序,需要检查数据库中是否有记录,如果没有,处理一些事情并最终插入它,并且只要数据存在就从数据库中读取数据。我使用SQLiteOpenHelper的子类来创建并获取SQLiteDatabase的可重写实例,如果它不存在,我认为它会自动处理创建表(因为执行该操作的代码位于onCreate(...)中。 ) 方法)。但是,当表尚不存在,并且第一个方法运行在SQLiteDatabase对象上时,我有一个查询调用(...),我的logcat显示“I/Database(26434)”的错误: sqlite返回:错误代码= 1,msg =没有这样的表:appdata“,果然,appdata表没有被创建。如何检查Android SQLite数据库中是否存在表?
任何想法为什么?
我正在寻找一种方法来测试表是否存在(因为如果没有,数据当然不在其中,并且我不需要直到我写入它才能读取它,这看起来似乎创建正确的表),或一种方法来确保它被创建,并且仅仅是空的,在时间上为第一次调用查询(...)
编辑
这是后贴下面的两个答案:
我想我可能已经发现了这个问题。出于某种原因,我决定为每个表创建不同的SQLiteOpenHelper,即使它们都访问同一个数据库文件。我认为重构该代码只使用一个OpenHelper,并在其onCreate内创建两个表可能会更好...
不错!谢谢你的工作 – Mayank 2015-01-08 05:22:14