2010-12-13 9 views
0

データベースアプリケーションの特定のレコードが既に存在するかどうかを確認するクエリを知りたいとします。アンドロイドのSQLiteデータベースの既存のレコードを確認するクエリを選択してください。

私はこれらの機能を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)); 
} 

誰でも助けてください。

おかげで、 デビッド

+1

同じ質問をスパミングするのをやめてください!トリプル投稿:http://stackoverflow.com/questions/4427875/query-to-check-the-existing-record-in-the-sqlite-database-in-android http://stackoverflow.com/questions/4427660/照会データベース選択レコード – WarrenFaith

+0

を確認してください。同じ質問を何度も何度も繰り返さないでください。あなたはあなたの質問を編集してそれを更新することができます。あなたは答えにコメントをつけてより多くの情報を得ることができ、適切な回答が見つからない場合は賞金を提供することができます。 – Will

答えて

1

あなたは、もう少し具体的にすることはできますか? 「正常に機能していない」とは、実際の問題の説明ではありません。

とにかく、あなたのクエリは、いくつかのスペースが不足している:

"SELECT * FROM " + TABLE_NAME + "WHERE" + "name" + "=" + name 
// if you would print the string you would get this: 
"SELECT * FROM TABLE_NAMEWHEREname=name" 
+0

リアルタイムでリフレッシュすると参考になります。 – Thrawn80

+0

"ほぼリアルタイムでリフレッシュされますが、それでもどちらも正しいです:) – WarrenFaith

+1

' name'の前後の引用符もありません: "SELECT * FROM "+ TABLE_NAME +" WHERE "+" name "+" = "" + name + "'" – ccheneson

0

最初の質問を:あなたのdata.Vector.get(position)戻り、結果として文字列を? 第二:あなたのrawqueryはない作品を行う場合は、試してみてください。

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

多分これはあなたに

0
Cursor c = db.rawQuery("SELECT * FROM " + TABLE_NAME + "WHERE" + "name" + "=" + name, null); 


>TABLE_NAME + "WHERE" + "name" 

を助けるかもしれないではなく、 "名前テーブル名" の "TablenameWHEREname" になります。

関連する問題