添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

SQLite为开源的嵌入式关系数据库,支持事务,在android项目开发中常被用到。


在android项目开发中若想使用SQLite数据库必须继承抽象类SQLiteOpenHelper,要实现两个方法onCreate()和onUpgrade()方法。先看API介绍:onCreate(SQLiteDatabase db)Called when the database is created for the first time.    onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)

Called when the database needs to be upgraded.

onCreate()方法当数据库第一次被创建时调用,onUpgrade()方法当数据库进行版本升级时被调用。初次用SQLite数据库的一些开发者们可能都会犯一个错误,就是把建表语句都写在onCreate()方法中。这样写可能也不会出错,但当有时候需要补充建表时,把建表语句写在这里就会遇到android.database.sqlite.SQLiteException:
no such table: reportinfo (code 1):异常。之所以会出现这个异常是因为onCreate()方法已经不会再被调用,because the database had already been created.
解决这个异常的方法是把补充建表的语句放在onOpen()方法中,话不多说看APIonOpen(SQLiteDatabase db)Called when the database has been opened.onOpen方法当数据库被打开时就会调用,放在这里的话就能保证补充创建表的语句一定会被调用。这就有效的避免了粗心而引起的no such table异常。

原文地址: http://blog.csdn.net/justdoittoday/article/details/45538635

如果你在操作表的过程中出现no such table : **: , while compiling的问题,说明你已经找到问题的大致问题,因为表面的问题是debug操作表的过程中,程序会中断跳出。 网上大部分的解决办法是让你检查表(如表名是否正确、关键字是否一致),或是重新整理你的程序,或是你引用了外部的库;如果程序确实没有问题,有可能是eclipse的bug,有人提议你删除apk重新编译。 I'm starting into SQLite and databases in Android and I just found this issue. I have read a lot of similar questions but I have not found a solution yet.This is the error I'm getting:E/ Android Runtime... 二、数据模型引用错误; 总结:建立数据表时肯定用问题,静下心来细细检查,肯定会发现疏忽的地方。 记得调试时,有问题解决不掉时,重启eclipse,有可能错误就消失了,没办法——就是那莫怪! 大家在使用第三方数据库lib ----ormlite的时候有时候可能会出现No such table 的错误提示,大部分情况网上说的诸如字段名称不一致等等情况,今天我遇到的情况不是由于这些原因. 产生原因:已经创建过诸如User表之后,部署到手机上,此时数据库已经初始化完成.但是现在有需求又新加了一个表,诸如Article表,此时代码都写完了,此时部署到手机上,调用新表里面的xxDao.creat 今天在做一个简单的 android 数据库开发的时候,遇到了no such table 的错误,一开始是因为表里面有一个列名后面忘记写,所以错误了。 但是改正后,在真机上调试的时候还是no such table ,然后我找了很久,都没有发现代码有错。最后我发现了用真机进行调试的时候,如果不手动先卸载原来的程序, 数据库是不会因为重新调试而重新建立,也就是我一直对之前建立的错误的数据库进行操作,因为列数 今天在学习项目时,一直报错no such table Users。说找不到Users表。我就纳闷了,数据库是复制过去的,检查表名也没有写错。这是怎么回事呢?检查了半天才发现原来是数据库的路径错了。 我把数据库复制到SD卡中,但是却用的 Android 自带的继承 sqlite openhelper的方式中getreadabledatabase()方法来获取的数据库。大家都知道, Android 中默认的数据... 问题:一个数据库,两张表,第一张表可以添加数据,第二张表却显示no such table 解决办法:private static final int DB_VERSION = 2;将此version改为2,与第一张表区分开来。 Cursor c = db.rawQuery("select * from stock where name=?" ,new String[]{"南方航空"}); 原因是表名不对,我把db的文件名和表名混为一谈了,把这个表名改正确就可以,改成Cursor c = db.rawQuery("select * from db where name=?" ,new String[]{"南方航空"} 今天在学习 android SQLite 出现 android sqlite no such table 错误提示,提示的意思我没有创建我要插入的表,网上也没有搜索一下,也尝试了,发现还是没有解决到我的问题,我最后通过进入DDMS-File Explorer查看我应用下面有没有创建database,发现已经存在,我将database输出,通过其他工具打开发现里面没有我要插入的表。解决办法只是需要文件删除后... 网上搜了各种方法:卸载重新安装、升级本地库版本 都无效,最终解决办法如下(https://www.icode9.com/content-2-652100.html),mark一下 CashierDBHelper helper = new CashierDBHelper(this, "main.db"); SQLite Database db = helper.getWri table Database(); //在初始化greenDao的地方加上这一行 db.disableWriteAheadLogging.