Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/226.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_Sqlite_Sqliteopenhelper - Fatal编程技术网

Android SQLite数据库查询功能是否不替换?使用选择参数

Android SQLite数据库查询功能是否不替换?使用选择参数,android,sqlite,sqliteopenhelper,Android,Sqlite,Sqliteopenhelper,我的数据库类中有一个get函数,用于从数据库中获取特定的行 public Line getLine(String date){ SQLiteDatabase sql = db.getWritableDatabase(); Cursor cursor; Line line = new Line(); try{ cursor = sql.query(Db_name,null,DATE_COL+"=?",new String[] {date},null

我的数据库类中有一个get函数,用于从数据库中获取特定的行

 public Line getLine(String date){
    SQLiteDatabase sql = db.getWritableDatabase();
    Cursor cursor;
    Line line = new Line();
    try{
        cursor = sql.query(Db_name,null,DATE_COL+"=?",new String[] {date},null,null,null);
        line = new Line(cursor.getInt(0),cursor.getString(1),cursor.getString(2),cursor.getString(3).equals("YES"));
    }
    catch (Exception e){
        e.getCause();
    }
    finally {
        if (sql.isOpen())
            sql.close();
    }
    return line;
}`
但是,当我运行它时,光标没有得到正确的查询,当取消Bug时,它看起来是这样的:

SQLiteQuery:从a28a9a2015中选择*其中日期\列=

所以它保留了这个?并且没有把日期字符串放在那里。。 我试过类似的方法-

 cursor = sql.query(Db_name,null,DATE_COL+"="+date,null,null,null,null);

同样的结果


有指针吗?

您需要将光标移动到第一个位置

cursor = sql.query(Db_name,null,DATE_COL+"=?",new String[] {date},null,null,null);
if (cursor.moveToFirst()) {
     // TODO
}

否则,光标位于位置-1,无法获取任何数据。符号“?”正在替换对sqlite的内部请求,所以在游标中您将看到“?”

如有疑问,请使用
DatabaseUtils#dumpCursor
cursor = sql.query(Db_name,null,DATE_COL+"=?",new String[] {date},null,null,null);
if (cursor.moveToFirst()) {
     // TODO
}