2010-12-13 61 views
0

我想知道查詢以檢查DataBase中的特定記錄是否已存在或不是我的應用程序。選擇查詢以檢查SQLite數據庫中的現有記錄android

我已經爲這些做了一個功能,但它不能正常工作。

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 2010-12-13 10:30:33

+0

請不要一遍又一遍地提出同樣的問題。您可以編輯您的問題進行更新,您可以評論答案以獲取更多信息,如果找不到合適的答案,您可以提供賞金。 – Will 2010-12-13 12:40:56

回答

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 2010-12-13 09:12:01

+0

有一個「接近實時」的刷新,但不過我們倆都是對的:) – WarrenFaith 2010-12-13 09:47:48

+1

'name'周圍的引號也缺失:「SELECT * FROM「+ TABLE_NAME +」WHERE「+」name「+」='「+ name +」'「 – ccheneson 2010-12-13 10:32:34

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」,而不是 「表名WHERE名」。