Android SQL:检查数据库中的记录是不是存在

Posted

技术标签:

【中文标题】Android SQL:检查数据库中的记录是不是存在【英文标题】:Android SQL: Check if Record in Database ExistsAndroid SQL:检查数据库中的记录是否存在 【发布时间】:2011-07-30 21:53:16 【问题描述】:

我正在尝试根据特定 ID 查询我的数据库。

String sql = "SELECT * FROM mash WHERE recipe_id = '" + id + "'";
Cursor data = database.rawQuery(sql, null);

如果这是第一次运行活动,则该表将与 id 列一起存在,但不会有具有特定 id 的记录。如何检查该特定记录是否存在,如果不存在,请添加它?我发现很多关于检查特定列是否存在的内容,但没有关于检查特定记录是否存在的内容。

到目前为止,我已经尝试获取 id 列索引并检查它是否返回 -1,但由于某种原因它实际上返回 1。我可以在 if 语句中使用什么来验证 id 列尚未创建?

【问题讨论】:

【参考方案1】:
if (cursor.moveToFirst()) 
    // record exists
 else 
    // record not found

【讨论】:

【参考方案2】:

我的代码是:

public void addContact(String a, String b, String c, String d, SQLiteDatabase db)
    
        //cursor is use to check if data is availble then show row is exist if not then execute insert query.
        Cursor mCursor = db.rawQuery("SELECT * FROM " + TABLE_CONTACTS + " WHERE    email=? ", new String[]b);

        if (mCursor.moveToFirst())
        
            value=false;
            Toast.makeText(context,"Email alreay exist please enter anothe email id",Toast.LENGTH_LONG).show();
        
        else
        
            ContentValues values = new ContentValues();

            values.put(Database_Handler.NAME, a); // Contact Name
            values.put(Database_Handler.EMAIL, b);
            values.put(Database_Handler.PASSWORD, c);
            values.put(Database_Handler.NUMBER, d);

            db.insert(Database_Handler.TABLE_CONTACTS, null, values);
            Log.e("DATABASE OPERATION", "One row is insert");

            Toast.makeText(context,"Data insert Sucessfully",Toast.LENGTH_SHORT).show();
            db.close();
            value=true;

        
    

【讨论】:

以上是关于Android SQL:检查数据库中的记录是不是存在的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法检查游标是不是返回没有记录?

在 SQL 和 VB.NET 中检查日期是不是小于另一个

SQL 检查记录是不是存在

如何在SQL Server2005数据库中检查一个表是不是存在,如存在就删除表记录,如不存在就建表.

检查PhoneGap的记录是不是存在SQL

android 数据库升级会清空以前存的数据吗