sqlite no such table
来源:互联网 发布:软件著作权 英文 编辑:程序博客网 时间:2024/05/16 19:41
在有时会在不同时刻创建数据表,这时候会创建多个OpenHelper操作数据库,有可能就会碰到no such table错误。
分析原因:创建数据库的表的时候,先判断数据库名是否相同,如果数据库名相同,并且数据库的版本名也是相同的,那么就会出现后面那张要创建的表通过OpenHelper的onCreate会创建失败,因为数据库名字和数据库版本名相同,就意味只操作同一个数据库,所以只会调用先前的OpenHelper的onCreate方法。
如果要创建成功后面的数据表有三种解决方法:
一、创建另外的数据库存放后面需要创建的表。(实际需求一般不这样做,一个项目不建议创建多个数据库)
二、将数据库的创建全部都写在一个OpenHelper里面。就没有先后顺序了版本也只有一个,不会出现多个OpenHelpe数据库的版本问题。直接在第一个OpenHelper里面将所有创建数据表的SQL语句执行完。
三、将后面创建表的SQL语句写在后面那个OpenHelper类的onUpgrade方法中,并且将(第一次创建数据库时,版本大小为0)版本在以前的基础上提升(将版本号变大),
如果当前传入的数据库版本号比上次创建或升级的版本号高,SQLiteOpenHelper就会调用onUpdate()方法。
实践发现。如果用第三种方法,在再次进入应用,调用第一个OpenHelper的构造方法,判断版本version的时候会出现版本向下转不了的情况,由于提升版本后,保存的是后面那个OpenHelper的高版本号,再次进入调用第一个OpenHelper的构造方法,两个版本不同,并且版本高于目前现在的这个OpenHelper的版本号,所以还是不可行,会出现onDowngrade转不了的错误。
还是建议使用第二种方法
- sqlite no such table
- sqlite 报 no such table 错误
- Android sqlite no such table异常
- Android sqlite no such table异常
- Android sqlite , no such table "t_item"
- no such table: Z_METADATA ios sqlite 3 问题解析
- sqlite中报no such table的错误解决方法
- SQLite error,no such table的处理方法
- Android—Greendao:SQLite Exception: no such table Error [duplicate]
- Android-70-SQLite出错:no such table: XXXTbl
- 使用SQLite数据库时出现“no such table”的解决方法
- android.database.sqlite.SQLiteException: no such table解决方法
- asp.net sqlite error no such table的解决方案
- android替代版本 SQLite 报 no such table
- [已解决]android SQLite报错 no such table
- greenDao使用中android.database.sqlite.SQLiteException: no such table
- Android Studio中使用SQLite问题:android.database.sqlite.SQLiteException: no such table: XXX (code 1)
- Django --- no such table: django_admin_log
- [bzoj1060][ZJOI2007]时态同步(树上dp)
- IEEE CSO 2009 修订版论文要求(英文说明)
- 大数加法简易理解并实现
- 最新手机号段归属地数据库(2016年7月15日)
- 一个IEEE论文LaTeX模板,可能较旧
- sqlite no such table
- # JAVA中集合解析篇一 ArrayList解析
- diffusion simulation
- 最新行政区划代码省市区数据库(2016年7月1日 )
- Latex作者单位的写法—AND 首页脚注
- Blocks(poj3734)组合数学
- js的隐式转换问题
- swift中使用OC的方法;在OC中调用swift方法
- 贰:Modbus常用功能码协议详解