如何在SQLite Android中插入和更新数据
如何在SQLite Android中插入和更新数据
我从服务器获取数据并将其存储在本地数据库(即SQLite)中。在SQLite中插入了重复的值。
所以我的条件是:
- 检查SQLite数据库是否为空,如果是则插入记录
- 检查SQLite的id列是否已经存在,如果是则更新,否则插入
我已经这样做了:
SQLiteDatabase db = dbhelp.getWritableDatabase(); ContentValues values = new ContentValues(); String sqlq = "Select clid from client_detail"; Cursor cccs = db.rawQuery(sqlq, null); if (cccs.getCount()== 0) { values.put("clid", queryValues.get("clid")); values.put("_id", queryValues.get("_id")); values.put("client_id", queryValues.get("client_id")); values.put("client_name", queryValues.get("client_name")); values.put("client_mobile", queryValues.get("client_mobile")); values.put("client_phone", queryValues.get("client_phone")); values.put("client_email", queryValues.get("client_email")); values.put("client_address", queryValues.get("client_address")); db.insert("client_detail", null, values); }else{ if (cccs.moveToFirst()) { do{ Log.d("Client ID",""+cccs.getString(0)); clid.add(cccs.getString(0)); String temp = cccs.getString(0); Log.d("Clid",temp); if(temp.equals(queryValues.get("clid"))) //检查数据库中的每个id是否存在 { values.put("clid", queryValues.get("clid")); values.put("lawyer_id", queryValues.get("_id")); values.put("client_id", queryValues.get("client_id")); values.put("client_name", queryValues.get("client_name")); values.put("client_mobile", queryValues.get("client_mobile")); values.put("client_phone", queryValues.get("client_phone")); values.put("client_email", queryValues.get("client_email")); values.put("client_address", queryValues.get("client_address")); db.update("client_detail", values, null, null); } else{ values.put("clid", queryValues.get("clid")); values.put("lawyer_id", queryValues.get("_id")); values.put("client_id", queryValues.get("client_id")); values.put("client_name", queryValues.get("client_name")); values.put("client_mobile", queryValues.get("client_mobile")); values.put("client_phone", queryValues.get("client_phone")); values.put("client_email", queryValues.get("client_email")); values.put("client_address", queryValues.get("client_address")); db.insert("client_detail", null, values); } }while(cccs.moveToNext()); } }