2 arvin ghost Arvin_ghost 于 2015.06.19 23:11 提问

SQLite insert数据不报错,但是数据库中没有该记录

检查了一遍,应该没什么错误啊,中间用了下cursor,为什么没有这条数据记录呢

//省略之前
sqLiteOpenHelper_userList=new SQLiteOpenHelper_UserList(User_Register.this,"UserList.db",1);

//省略其他
   sqLiteOpenHelper_userList.getWritableDatabase().execSQL("insert into userlist_inf values(null,?,?)",new String[]{userName,passWord});

4个回答

danielinbiti
danielinbiti   Ds   Rxr 2015.06.19 23:23
已采纳

看看logcat是否有什么信息提示或者错误提示。

danielinbiti
danielinbiti 回复Arvin_ghost: 这样也可以。用while(cursor.moveToNext())方式也行
2 年多之前 回复
Arvin_ghost
Arvin_ghost 回复danielinbiti: 查看db文件后才知道原来是插入成功但是遍历cursor时除了问题,谢谢谢谢,能不能再问一下遍历cursor的正确姿势是什么?for(cursor.moveToFirst();!cursor.isAfterLast();cursor.moveToNext())这样可以吗,会有可能抛出cursorindexoutofbounds异常?
2 年多之前 回复
danielinbiti
danielinbiti 回复Arvin_ghost: 1、把db文件拷贝到pc机上,确认一下数据库中是否有数据。2、加try{}catch(throwable ta)捕获错误看看,是不是报的是error,不是exception 3、userlist_inf后面跟上具体的字段,是不是字段不对应
2 年多之前 回复
Arvin_ghost
Arvin_ghost 没有报错,logcat没有输出
2 年多之前 回复
devmiao
devmiao   Ds   Rxr 2015.06.19 23:16

看下插入的是不是你预期的那个数据库。另外看看有没有try catch吃掉了错误。

frank_20080215
frank_20080215   2015.06.20 06:13

sqLiteOpenHelper_userList.getWritableDatabase().execSQL("insert into userlist_inf values(null,?,?)",new String[]{userName,passWord});
改成sqLiteOpenHelper_userList.getWritableDatabase().execSQL("insert into userlist_inf values(?,?)",new String[]{userName,passWord});
null去掉

Arvin_ghost
Arvin_ghost 不能这么改啊,第一列是_id integer primary key autoincrement啊
2 年多之前 回复
shanyezhihe
shanyezhihe   2015.06.23 13:29

检查一下表创建是否有问题,若无问题直接用insert方法试试

Csdn user default icon
上传中...
上传图片
插入图片