Android开发时,sqlite创建表成功,insert不报错,但没有数据插入的原因
在android开发过程中,经常要通过sqlite来存储一些数据,这种应用应该是再平常不过了,但是有时难免一时疏忽,就会出现sqlite创建表成功,insert不报错,但没有数据插入。
具体问题详见如下代码:
Context ctx;
SQLiteDatabase db = dbOpenHelper.getWritableDatabase();
// 开启事务
db.beginTransaction();
try{
// 数据库操作
for (...) {
// 插入数据
db.insert(table, values);
}
// 设置事务标志为成功,当结束事务时就会提交事务
//(一定要记得添加这句,否则就会出现insert成功,但数据库没数据)
db.setTransactionSuccessful();
}
catch(Exception ex){
} finally {
// 结束事务方法时会检查事务的标志是否为成功,
// 如果程序执行此方法之前调用了setTransactionSuccessful()方法设置事务的标志为成功则提交事务
// 如果没有调用setTransactionSuccessful() 方法则回滚事务。
db.endTransaction();
}