Java 数据库中的事务在android中不工作
我正在使用以下代码,但遇到一些问题:Java 数据库中的事务在android中不工作,java,android,eclipse,sqlite,Java,Android,Eclipse,Sqlite,我正在使用以下代码,但遇到一些问题: mDb.beginTransaction(); String updateQuery ="Query entered here"; String[] valVars = { Variables initialized here }; Cursor c = mDb.rawQuery(updateQuery, valVars); if (c != null) { mDb.setTransactionSuccessful(); mDb.endTr
mDb.beginTransaction();
String updateQuery ="Query entered here";
String[] valVars = { Variables initialized here };
Cursor c = mDb.rawQuery(updateQuery, valVars);
if (c != null)
{
mDb.setTransactionSuccessful();
mDb.endTransaction();
return true;
}
else
{
mDb.endTransaction();
return false;
}
当我使用debug而不是运行
return true
时,即使在else语句中,它也会直接返回false。请告诉我问题是什么以及如何正确执行此操作。使用此结构,如中所述:
我不清楚你想说什么,你能至少对我说得更具体一点吗?我做的一切都对吗?其次,当我使用调试器而不是执行returntrue时,它会运行returnfalse。第三,一旦我运行了这段代码,我就看不到数据库中存储的任何东西。“当你运行应用程序时,它返回true。当你调试应用程序时,它返回false。”这是你在这里指的场景吗?执行转到“else”块,因为在调试时,游标c变为NULL。使用try-catch块查找在调用db事务相关方法之一时是否发生异常。确定我正在使用此代码游标c=mDb.rawQuery(updateQuery,valVars);mDb.setTransactionSuccessful();}catch(异常e){mDb.endTransaction();throw e;}mDb.endTransaction();}现在一切正常,但当我检查数据库时,它没有存储任何内容。。。有什么想法吗?
db.beginTransaction();
try {
...
db.setTransactionSuccessful();
} finally {
db.endTransaction();
}