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

我已经为此发挥了一个功能,但是它无法正常工作。

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

任何人都可以帮我吗?

谢谢大卫

有帮助吗?

解决方案

您可以更具体吗? “没有正常工作”不是一个真正的问题描述。

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

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

其他提示

第一个问题:你 data.Vector.get(position) 结果返回字符串?第二:如果您的原始Query不起作用,请尝试:

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

也许这可能会帮助您

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


>TABLE_NAME + "WHERE" + "name"

将是“ tableNameWhereName”,而不是“名称的tablename”。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top