2

という名前の1 つの列を持つcontacts.dbという名前のテーブルを持つデータベースがあります。文字列変数名の値として持っている連絡先名がテーブルのレコードとして既に保存されているかどうかを確認するクエリをフォーマットし、そうでない場合は追加するか、何もしません。私が書いたコードは次のとおりです。TABLE_NAMEContactname

SQLiteDatabase db = events.getReadableDatabase();
int rawNum = DatabaseUtils.queryNumEntries(db, TABLE_NAME, 
                        "Contactname=?", new String[] {contactName}); 
    if(rawNum==0){
        addRecord(contactName);
        addedCounter+=1;
    }
    else{
        savedCounter+=1;
    }

しかし、アプリは強制的に閉じられます。クエリに何か問題があることがわかりますか? 行があるかどうかを確認し、行数が 0 の場合は連絡先を追加します。

4

1 に答える 1

4

おそらく、開発キットを更新する時が来ました。

コードで使用される署名付きのメソッドは、API レベル 11 で導入されました。

public static long queryNumEntries (SQLiteDatabase db, String table, String selection, String[] selectionArgs)

API レベル 1 には、引数が 2 つのメソッドしかありませんでした。

public static long queryNumEntries (SQLiteDatabase db, String table)
于 2012-06-26T18:18:22.310 に答える