0

データベース内の特定のレコードがアプリケーションに既に存在するかどうかを確認するためのクエリを知りたいです。

これらの関数を 1 つ作成しましたが、正しく動作していません。

public boolean ifExisting(String name) {
    Cursor c = db.rawQuery("SELECT * FROM " + TABLE_NAME + "WHERE" + "name" + "=" + name, null);
    if(c.getCount() == 0)
     return false; 
else
     return true;
}

これは、複製プロセスをチェックする機能を実行する必要がある場所です。

if(dh.ifExisting(dataVector.get(position)) == true) {

} else {
dh.insert(dataVector.get(position));
} 

誰でも私を助けてください。

ありがとう、デビッド

4

3 に答える 3

1

もう少し具体的に教えていただけますか?「正常に動作しない」というのは、実際の問題の説明ではありません。

とにかく、クエリにいくつかのスペースがありません:

"SELECT * FROM " + TABLE_NAME + "WHERE" + "name" + "=" + name
// if you would print the string you would get this:
"SELECT * FROM TABLE_NAMEWHEREname=name"
于 2010-12-13T09:09:30.473 に答える
0

最初の質問:data.Vector.get(position)結果として文字列を返しますか? 2番目: rawqueryが機能しない場合は、次を試してください:

" where " + name + " like '"
                    + name + "'", null);

多分これはあなたを助けるかもしれません

于 2010-12-13T09:09:50.937 に答える
0
Cursor c = db.rawQuery("SELECT * FROM " + TABLE_NAME + "WHERE" + "name" + "=" + name, null); 


>TABLE_NAME + "WHERE" + "name"

「テーブル名WHERE名」ではなく「テーブル名WHERE名」になります。

于 2010-12-13T09:10:07.683 に答える