Android SQLite数据库查询未返回结果

Android SQLite数据库查询未返回结果,android,sql,database,sqlite,android-sqlite,Android,Sql,Database,Sqlite,Android Sqlite,我为我的应用程序设置了一个SQLite DB,我有很多DB事务可以工作,但由于某种原因,其中一个查询没有返回任何结果。如有任何建议,我们将不胜感激。查询如下所示: Log.d("DEBUG EXPREPORTS", "SELECTING report id 1"); expList = expData.queryHelper2("SELECT * FROM " +MySQLiteHelper.TABLE_EXPENSES +" WHERE rep

我为我的应用程序设置了一个SQLite DB,我有很多DB事务可以工作,但由于某种原因,其中一个查询没有返回任何结果。如有任何建议,我们将不胜感激。查询如下所示:

Log.d("DEBUG EXPREPORTS", "SELECTING report id 1");
        expList = expData.queryHelper2("SELECT * FROM " 
                +MySQLiteHelper.TABLE_EXPENSES +" WHERE reportid = " 
+ "'"+ 1 +"'", null);
查询帮助程序2:

public List<ExpensesFields> queryHelper2(String query, String[] selectionArgs){

        List<ExpensesFields> queryResults = new ArrayList<ExpensesFields>();
        Cursor cursor = database.rawQuery(query, selectionArgs);

         cursor.moveToFirst();

            while (!cursor.isAfterLast()) {
              ExpensesFields expense = cursorToexpense(cursor);
              queryResults.add(expense);
              cursor.moveToNext();
            }
            // Make sure to close the cursor
            cursor.close();
            return queryResults;
    }
返回所有行。我使用以下代码将项目添加到表中:

expData = new ExpensesDataSource(getActivity());
            expData.open();
            expData.createExpenses("", "", "", "", "", "", "", "",
                    "", "", "", "", "", "", "",Integer.parseInt(reportID.getText().toString()));
这看起来像:

public ExpensesFields createExpenses( String type ,String paidVia,String amount,String employee,
            String job,String extra,String costcode,String account,String task,String date,
            String vendor,String receipt,String city,String purpose,String description, int reportid ) {
        ContentValues values = new ContentValues();

        values.put(MySQLiteHelper.EXPENSES_COLUMN_TYPE, type);
        values.put(MySQLiteHelper.EXPENSES_COLUMN_PAIDVIA, paidVia);
        values.put(MySQLiteHelper.EXPENSES_COLUMN_AMOUNT, amount);
        values.put(MySQLiteHelper.EXPENSES_COLUMN_EMPLOYEE, employee );
        values.put(MySQLiteHelper.EXPENSES_COLUMN_JOB, job);
        values.put(MySQLiteHelper.EXPENSES_COLUMN_EXTRA, extra);
        values.put(MySQLiteHelper.EXPENSES_COLUMN_COSTCODE, costcode);
        values.put(MySQLiteHelper.EXPENSES_COLUMN_ACCOUNT, account);
        values.put(MySQLiteHelper.EXPENSES_COLUMN_TASK, task);
        values.put(MySQLiteHelper.EXPENSES_COLUMN_DATE, date);
        values.put(MySQLiteHelper.EXPENSES_COLUMN_VENDOR, vendor);
        values.put(MySQLiteHelper.EXPENSES_COLUMN_RECEIPT, receipt);
        values.put(MySQLiteHelper.EXPENSES_COLUMN_CITY, city);
        values.put(MySQLiteHelper.EXPENSES_COLUMN_PURPOSE, purpose);
        values.put(MySQLiteHelper.EXPENSES_COLUMN_DESCRIPTION, description);
        values.put(MySQLiteHelper.EXPENSES_COLUMN_REPORTID, reportid);
        long insertId = database.insert(
                MySQLiteHelper.TABLE_EXPENSES, null,
            values);
        Cursor cursor = database.query(MySQLiteHelper.TABLE_EXPENSES,
            allColumns, null, null,
            null, null, null);
        cursor.moveToFirst();
        ExpensesFields newexpense = cursorToexpense(cursor);
        cursor.close();
        return newexpense;
      }

我真的被难住了,所以非常感谢您的任何建议。

似乎您正在将id作为字符串进行匹配。数据中是否有空格,并且列的类型不是
INTEGER
?列的类型是INTEGER。我还没有检查空白,我现在就检查。有没有办法消除结果中的空白?我还添加了用于向dbIf添加条目的代码
reportid
Is INTEGER SELECT语句应该是“SELECT*from”+MySQLiteHelper.TABLE_EXPENSES+”其中reportid=“+1AH非常感谢,就是这样
public ExpensesFields createExpenses( String type ,String paidVia,String amount,String employee,
            String job,String extra,String costcode,String account,String task,String date,
            String vendor,String receipt,String city,String purpose,String description, int reportid ) {
        ContentValues values = new ContentValues();

        values.put(MySQLiteHelper.EXPENSES_COLUMN_TYPE, type);
        values.put(MySQLiteHelper.EXPENSES_COLUMN_PAIDVIA, paidVia);
        values.put(MySQLiteHelper.EXPENSES_COLUMN_AMOUNT, amount);
        values.put(MySQLiteHelper.EXPENSES_COLUMN_EMPLOYEE, employee );
        values.put(MySQLiteHelper.EXPENSES_COLUMN_JOB, job);
        values.put(MySQLiteHelper.EXPENSES_COLUMN_EXTRA, extra);
        values.put(MySQLiteHelper.EXPENSES_COLUMN_COSTCODE, costcode);
        values.put(MySQLiteHelper.EXPENSES_COLUMN_ACCOUNT, account);
        values.put(MySQLiteHelper.EXPENSES_COLUMN_TASK, task);
        values.put(MySQLiteHelper.EXPENSES_COLUMN_DATE, date);
        values.put(MySQLiteHelper.EXPENSES_COLUMN_VENDOR, vendor);
        values.put(MySQLiteHelper.EXPENSES_COLUMN_RECEIPT, receipt);
        values.put(MySQLiteHelper.EXPENSES_COLUMN_CITY, city);
        values.put(MySQLiteHelper.EXPENSES_COLUMN_PURPOSE, purpose);
        values.put(MySQLiteHelper.EXPENSES_COLUMN_DESCRIPTION, description);
        values.put(MySQLiteHelper.EXPENSES_COLUMN_REPORTID, reportid);
        long insertId = database.insert(
                MySQLiteHelper.TABLE_EXPENSES, null,
            values);
        Cursor cursor = database.query(MySQLiteHelper.TABLE_EXPENSES,
            allColumns, null, null,
            null, null, null);
        cursor.moveToFirst();
        ExpensesFields newexpense = cursorToexpense(cursor);
        cursor.close();
        return newexpense;
      }