我正在从网络上获取有关项目的信息,我希望我的应用程序检查某些行是否存在。如果它们确实存在,那么应用程序应该更新这些行,否则它应该创建新行:
try {
mDb.execSQL("UPDATE ["
+ ParseReciverAddList.tableName
+ "] SET purchased = " + pCheck
+ " WHERE id =" + (thisId));
mDb.execSQL("UPDATE ["
+ ParseReciverAddList.tableName
+ "] SET name = '" + (PName)
+ "' WHERE id =" + (thisId));
mDb.execSQL("UPDATE ["
+ ParseReciverAddList.tableName
+ "] SET quantity = '" + (pQuantity)
+ "' WHERE id =" + (thisId));
Log.d("p", "e");
} catch (Exception e) {
Log.d("p", "ne");
mDb.execSQL("INSERT INTO ["+ParseReciverAddList.tableName+"] VALUES ("+thisId+","+pCheck+", '"+PName+"','"+pQuantity+"');");
}
我想我会尝试更新它,如果它抛出Exception
那么这意味着行不存在并且它将创建它。
但是,我遇到了一个问题:即使该行不存在,它也不会抛出Exception
. catch
关于为什么在行已经存在时它不触发子句的任何想法?