Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/189.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Sqlite查询形式_Android_Database_Sqlite - Fatal编程技术网

Android Sqlite查询形式

Android Sqlite查询形式,android,database,sqlite,Android,Database,Sqlite,这两种功能我都有问题 // Insert a new contact in database public void insertInSignature(String TITLE_SI) { try { // Open Android Database Boolean b = checkIsDataAlreadyInDBorNot("DELIVERY_SLIP", "TITLE_SI", TITLE_SI);

这两种功能我都有问题

// Insert a new contact in database
public void insertInSignature(String TITLE_SI) {
    try {
        // Open Android Database
        Boolean b = checkIsDataAlreadyInDBorNot("DELIVERY_SLIP",
                "TITLE_SI", TITLE_SI);
        if(b==false)
        {
        // cursor is empty
        ContentValues initialValues = new ContentValues();
        initialValues.put("TITLE_SI", TITLE_SI);
        db.insertWithOnConflict("DELIVERY_SLIP", null, initialValues,
                SQLiteDatabase.CONFLICT_IGNORE);
        }
    } catch (SQLException sqle) {
        Log.e(TAG, "insertUser Error");
        Log.e(TAG, "Exception : " + sqle);
    } finally {
        // Close Android Database
        databaseHelper.close();
    }
}

public boolean checkIsDataAlreadyInDBorNot(String TableName,
        String dbfield, String fieldValue) {
    db = databaseHelper.getWritableDatabase();
    String Query = "Select * from " + TableName + " where " + dbfield + "="
            + "`"+ fieldValue+"`";
    Cursor cursor = db.rawQuery(Query, null);
    if (cursor.getCount() <= 0) {
        return false;
    }
    return true;
}
我有这个功能,当它不在数据库中时,我插入签名。。但是布尔函数返回一个SQLexception我不知道为什么我找到了关于表单的信息,但不是因为我的问题

这是我的日志。

我只是想知道我的数据库中是否存在该行

这是我的桌子


提前感谢如果您需要信息,请询问我,而不是每次要插入时都进行查询,为什么不使用ON CONFLICT IGNORE或ONC CONFLICT REPLACE使标题栏唯一?然后不需要检查,只需插入并让唯一性约束为您管理即可。

在SQL中,字符串用单引号分隔,而不是反勾号

为避免此类格式问题和SQL注入,应改用参数:

字符串查询=选择*FROM+TableName+WHERE+dbfield+=?; Cursor Cursor=db.rawQueryquery,新字符串[]{fieldValue};
谢谢,我使用你的两个回复,如果我能接受这两个,我会这么做。