2011-11-16 3 views
1

私はアンドロイドアプリケーションのsqliteデータベースを扱っています。 私はSQLiteDatabaseオブジェクト「更新」更新方法の中でSQLiteの "whereClause"を使う方法

SQLiteDatabase.update(String table, ContentValues values, String whereClause, String[] whereArgs) 

しかし、ここでの混乱の方法を使用してDB内の行を更新するには、のように「whereClause」どのように見えるでしょうか? 私はこれらの値を更新すると仮定します。

values.put("name", appInfo.getName()); 
values.put("package_name", appInfo.getPackageName()); 
values.put("version_name", appInfo.getVersionName()); 

package_maneの列が "com.mynamespace.db"の行を更新したいとします。どのように "whereClause"はここに書き込まれるべきですか?ありがとう。

答えて

4

あなたwhereClauseは次のようになります。whereArgsから

String whereClause = "package_mane = ?"; // package_name perhaps? 
String[] whereArgs = new String[]{"com.mynamespase.db"}; 

文字列whereClause?を置換するために使用されています。

8
db.update("table", values, "package_name = ?", new String[]{"com.mynamespase.db"}); 

もう一つの例:

db.update("table", values, "package_name = ? and other_field = ?", new String[]{"com.mynamespase.db", "test"}); 
3

あなたはこのようにそれを使用する必要があります。

SQLiteDatabase.update(table, "package_name=?", new String[] { "com.mynamespace.db" }); 

、あなたは文字列をCONCAT場合は他の問題とキャッシュの非効率を防ぎます。

2
db.update(TABLE_NAME, values, "package_name=com.mynamespase.db", null); 

// or 

String[] args = { "com.mynamespase.db" }; 
db.update(TABLE_NAME, values, "package_name=?", args); 
関連する問題