java - 检查数据库中是否存在条目

标签 java android sql

我想检查我的数据库中是否存在条目。

我试过:

private void saveIt() {     
    MenuItem item = menu.findItem(R.id.menu_2);

    myDB = this.openOrCreateDatabase(MY_DATABASE_NAME, MODE_PRIVATE, null);    
    Cursor c = myDB.rawQuery("SELECT * FROM " + MY_DATABASE_TABLE + " WHERE idwp= '" + id + "'", null);
    if(c == null)
    {
        item.setIcon(R.drawable.b);
        try {
            myDB.execSQL("INSERT INTO "+MY_DATABASE_TABLE+" (titel, extra, html) VALUES ('"+titel.replace("'", "\"")+"','"+extra.replace("'", "\"")+"','"+html.replace("'", "\"")+"');");
        }
        finally
        {
            if (myDB != null)
                myDB.close();
        }
        Toast.makeText(getApplicationContext(), "saved", Toast.LENGTH_SHORT).show();
    }
    else
    {
        Toast.makeText(getApplicationContext(), "already exist", Toast.LENGTH_SHORT).show();
    }
    myDB.close();
}

但它总是说“已经存在”。我看过我的数据库。没有条目 where id = xxx!

感谢您的帮助!

更新: 我发现了一个错误: INSERT INTO ... extra, html, id <- 我忘记了 id!

这是一个解决问题的好社区!

最佳答案

Cursor 不会是null 但它可能是,你需要使用这个:

if(c.getCount() > 0) {
    Toast.makeText(getApplicationContext(), "already exist", Toast.LENGTH_SHORT).show();
}
else {
    // Does not exist!
}

您还可以使用任何 Cursor#move 方法,因为它们返回 truefalse 取决于是否有有效数据光标。

关于java - 检查数据库中是否存在条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13017801/

相关文章:

java - Jersey 中的 JSON 序列化 - 如何忽略用于序列化 map 的 XmlJavaTypeAdapter?

java - SQL 命令在 servlet 中未正确结束

java - 如何在 Java 中使用三重 des(3des) 的三个键

Android:如何在 MapView 上执行附近搜索

sql - 获取下一个未使用的ID的最有效方法

sql - 将文本转换为日期

java - 设置android.webkit.Web TextView类的文本颜色?

android - 进度条在 Swiperefreshlayout 中显示更大

Android - 找不到 Activity (我错过了什么,你怎么知道的)

mysql - 加入Left或WHERE解决方案-最有效?