【发布时间】:2012-02-06 07:58:51
【问题描述】:
我正在使用以下代码,但遇到了一些问题:
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;
}
当我使用调试而不是运行return true 时,即使它在else 语句中,它也会直接达到return false。请告诉我是什么问题以及如何正确执行此操作。
【问题讨论】:
-
我没有清楚明白你在这里想说什么,你能不能对我说得更具体一点。
-
好吧,我做得对吗?其次,当我使用调试器而不是执行 return true 时,它运行 return false。第三,运行此代码后,我看不到数据库中存储的任何内容。
-
"运行应用时返回true。调试应用时返回false。"是不是你说的场景?执行转到“else”块,因为在调试时,Cursor c 变为 NULL。调用 db 事务相关方法之一时,使用 try catch 块查找是否发生任何异常。
-
好的,我正在使用此代码 Cursor c = mDb.rawQuery(updateQuery, valVars); mDb.setTransactionSuccessful(); }catch (Exception e){ mDb.endTransaction();扔 e; } mDb.endTransaction();现在一切工作正常但是当我检查数据库时它没有存储任何东西......有什么想法吗?
标签: java android eclipse sqlite