位置: 编程技术 - 正文
推荐整理分享总结初次使用SQLite的错误点(sqlyog使用),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:sql使用教程,sqlyog使用,第一次使用sql server,sql使用教程,sql使用教程,sql使用步骤,sql使用步骤,sql使用步骤,内容如对您有帮助,希望把文章链接给更多的朋友!
完整代码及功能说明在下一篇文章中,这里只挑选项目的几个大bug。
1.在写查询所有数据的函数getAllData()时,由于写了db.close(),提前关闭了数据库导致错误。(后来找到这个原因后我就注释了)(其实我不懂为什么会出错,我觉得query操作已经把数据内容导进Cursor对象了,那把数据库关闭了也没有问题吧?可是就是有问题。。。)
顺便把ConvertToMember也贴出来,功能就是把Cursor对象的内容转到Member[]。注意到上面两个函数我都用了许多Log.e来调试,差不多每一行就返回一句日志信息,目的是检查程序运行到到底哪一行崩溃的(当时查了好久,把我也搞崩溃了。。。毕竟菜鸟)。当时Eclipse没有提示我到底是哪里出错,所以我只能手动慢慢找,出错信息(更过分的是这只是warn,不是error)如下:在找到是运行到下面这行代码出问题后,我再用try和catch来捕捉到具体的错误原因。
具体的错误原因为:很长很罗嗦,但是我们最重要的是抓住两个点,第一个是错误内容描述,第二个是你的哪些代码导致了这个错误,分别如下:
和
根据这些信息,上网查找了一番,在这个网页找到提示 。最后把db.close()注释掉!解决!!
2. 第二个错误说来有点逗比,问题代码如下
我把memberDAO.getAllData()的操作放在onCreate外面了,这个问题和第一个问题都是导致APP完全无法打开,一打开就sorry,XXX停止运行。而且报一样的错误:当然把memberDAO.getAllData()的操作放到onCreate里面就OK了。
3.第三个出现的bug是我写了getOneData(long ID)这个函数,作用是根据ID找到数据库中对应的那条数据。
但是在实际使用过程中,我发现它没有检索到任何记录,一开始我以为是语法逻辑上出了问题,还用db.query又试了一次,发现还是不行。经过努力,发现问题出在数据库中的_id是自动递加的,而且不会应为删除操作而改变。例如:_id name phone position
1 John 0
2 Mike 1
3 Mary 2
前三列是实际存储在数据库的数据,最后一项position是在屏幕中看到的列表的位置,现在看起来position和_id是有关系的,我们貌可以用position去得到_id,而我在getOneData函数中也确实是这样做的,但是当我们删除了一条记录后,比如说第二条,情况变成:
_id name phone position
1 John 0
3 Mary 1
然后在增加一条记录:
_id name phone position
1 John 0
3 Mary 1
4 Herry 2可以看到,如果在经过多次的删除和新增操作后,position和_id将不具有任何关系,所以不可以用position直接得到_id。这就是getOneData的问题所在。
4. 第四个出现的问题是:
需要先判断得到的数组members是否为空,如果为空的话,调用members.length会出错。起始就是数组长度为0和数组为null的区别,参考 。[置顶] 分享一个Android工具下载地址 国内网络问题,学习开发Android有很大阻碍,提供一个网站.开发的时候很有帮助,
android app 内存分析 最近app的oom异常比较多,重点要求解决oom的bug,所以着重研究了一下eclipse中的mat分析内存的方法。针对阅读页的分析比较繁琐,代码也比较多,不多说
activity 的启动模式 详细实验报告。。。 activity的启动模式有4种:standard(默认模式),singleTop,singleTask,singleInstance四种模式的作用:文档中解释的intent.setFlags中的Flag测试1:manifest中未设置
标签: sqlyog使用
本文链接地址:https://www.jiuchutong.com/biancheng/385221.html 转载请保留说明!友情链接: 武汉网站建设