Android-SQLite删除和更新数据工作不正常
我用几个表创建了数据库,得到了一个名为friend的表。一个朋友的开销很少,有些开销可能会和另一个朋友分担。现在我正在尝试删除一个朋友,我正在尝试的是当该朋友与另一个朋友共享费用时,与另一个朋友共享的朋友的费用将添加到另一个朋友,并且该费用不会被删除。然后,不与其他朋友共享的费用将被直接删除,并且不会添加到任何朋友,因为该朋友有很多费用。现在的问题是,当我试图把费用加到另一个朋友身上时,它不起作用。我没有得到任何错误 这是我的代码:我认为问题发生在if(sharerList.size()>1)中,因为代码的其余部分运行良好Android-SQLite删除和更新数据工作不正常,android,sqlite,arraylist,Android,Sqlite,Arraylist,我用几个表创建了数据库,得到了一个名为friend的表。一个朋友的开销很少,有些开销可能会和另一个朋友分担。现在我正在尝试删除一个朋友,我正在尝试的是当该朋友与另一个朋友共享费用时,与另一个朋友共享的朋友的费用将添加到另一个朋友,并且该费用不会被删除。然后,不与其他朋友共享的费用将被直接删除,并且不会添加到任何朋友,因为该朋友有很多费用。现在的问题是,当我试图把费用加到另一个朋友身上时,它不起作用。我没有得到任何错误 这是我的代码:我认为问题发生在if(sharerList.size()>1)中
public void deleteFriend(String id) {
Log.d(LOGCAT, "delete");
SQLiteDatabase database = this.getWritableDatabase();
ArrayList<HashMap<String, String>> wordList = new ArrayList<HashMap<String, String>>();
String selectQuery = "SELECT * FROM FriendsExpenses WHERE friendId='" + id + "'";
SQLiteDatabase databaseread = this.getReadableDatabase();
Cursor cursor = databaseread.rawQuery(selectQuery, null);
if (cursor.moveToFirst()) {
do {
HashMap<String, String> map = new HashMap<String, String>();
map.put("expenseId", cursor.getString(0));
wordList.add(map);
} while (cursor.moveToNext());
}
for (int a=0; a<wordList.size();a++){
HashMap<String, String> ValexpenseId = wordList.get(a);
for (Entry<String, String> entry : ValexpenseId.entrySet()) {
String value = entry.getValue();
String selectQuery2 = "SELECT * FROM FriendsExpenses WHERE expenseId='" + value + "'";
SQLiteDatabase databaseread2 = this.getReadableDatabase();
Cursor cursor2 = databaseread2.rawQuery(selectQuery2, null);
ArrayList<HashMap<String, String>> sharerList = new ArrayList<HashMap<String, String>>();
if (cursor2.moveToFirst()) {
do {
HashMap<String, String> map = new HashMap<String, String>();
map.put("friendId", cursor2.getString(0));
wordList.add(map);
} while (cursor2.moveToNext());
}
else{};
if (sharerList.size() > 1){
String selectQuery3 = "SELECT expenseTotal FROM expenses WHERE expenseId='" + value + "'";
SQLiteDatabase databaseread3 = this.getReadableDatabase();
Cursor cursor3 = databaseread3.rawQuery(selectQuery3, null);
String expenseTotal = null;
if (cursor3.moveToFirst()) {
do {
expenseTotal = cursor3.getString(cursor3.getColumnIndex("expenseTotal"));
} while (cursor3.moveToNext());
}
for (int b=0; b<sharerList.size();b++){
HashMap<String, String> ValfriendId = sharerList.get(b);
for (Entry<String, String> entry2 : ValfriendId.entrySet()) {
String value2 = entry2.getValue();
String currentSpend = currentSpending(value2);
double currentSpending = (Double.parseDouble(currentSpend));
double expTotal = (Double.parseDouble(expenseTotal));
double newSpending = currentSpending + ((expTotal/sharerList.size()) /sharerList.size()-1);
updateSpending(value2, newSpending);
}
}
}
else
{
String deleteQuery = "DELETE FROM expenses where expenseId='" + value + "'";
Log.d("query", deleteQuery);
database.execSQL(deleteQuery);
}
}
}
String deleteQuery = "DELETE FROM friends where friendId='" + id + "'";
String deleteQuery2 = "DELETE FROM FriendsExpenses where friendId='" + id + "'";
Log.d("query", deleteQuery2);
Log.d("query", deleteQuery);
database.execSQL(deleteQuery2);
database.execSQL(deleteQuery);
}
public void deleteFriend(字符串id){
Log.d(LOGCAT,“删除”);
SQLiteDatabase=this.getWritableDatabase();
ArrayList wordList=新建ArrayList();
String selectQuery=“SELECT*FROM friendspenses,其中friendsid=”+id+“”;
SQLiteDatabase databaseread=this.getReadableDatabase();
Cursor Cursor=databaseread.rawQuery(selectQuery,null);
if(cursor.moveToFirst()){
做{
HashMap=newHashMap();
map.put(“expenseId”,cursor.getString(0));
添加(地图);
}while(cursor.moveToNext());
}
对于(int a=0;a 1){
String selectQuery3=“从expenseId='“+value+'”的费用中选择expenseTotal;
SQLiteDatabase databaseread3=this.getReadableDatabase();
游标cursor3=databaseread3.rawQuery(selectQuery3,null);
字符串expenseTotal=null;
if(cursor3.moveToFirst()){
做{
expenseTotal=cursor3.getString(cursor3.getColumnIndex(“expenseTotal”);
}while(cursor3.moveToNext());
}
for(int b=0;bsharerList
为空,因为您从未添加任何条目
可能还有其他复制/粘贴错误,例如getString(0)
withSELECT*