选择查询以检查android中SQLite数据库中的现有记录

时间:2010-12-13 09:02:09

标签: android sqlite select duplication

我想知道查询以检查数据库中的特定记录是否已存在于我的应用程序中。

我为这些做了一个功能,但它无法正常工作。

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));
} 

任何人都可以帮助我。

谢谢, 大卫

3 个答案:

答案 0 :(得分:1)

你能更具体一点吗? “没有正常工作”并不是真正的问题描述。

无论如何,您的查询缺少一些空格:

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

答案 1 :(得分:0)

第一个问题:您的data.Vector.get(position)返回一个字符串作为结果? 第二:如果你的rawquery不起作用,那么试试:

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

也许这可能会对你有所帮助

答案 2 :(得分:0)

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


>TABLE_NAME + "WHERE" + "name"

将是" TablenameWHEREname"而不是" Tablename WHERE name"。