Java Sql从Column中选择Month

时间:2015-10-09 15:58:18

标签: java sql

我在我的SQL数据库中将日,月和年存储为整数。我检查了一下,通过将它们打印到文本字段来存储正确的数字。

我有这种方法,我希望得到月号x保存的所有数据 但它崩溃了。有人能指出我如何检索保存到月号x的所有数据的正确方向。

这是我得到的

@SuppressLint("NewApi")
public Cursor getMonth(int month) {

    SQLiteDatabase db = this.getWritableDatabase();

    Cursor c = db.rawQuery("SELECT * FROM TABLE_PRODUCTS WHERE MONTH = "
            + month, null, null);

    if (c != null) {
        c.moveToFirst();
    }
    db.close();
    return c;
}

这是错误代码

10-09 19:01:27.942: E/AndroidRuntime(610): FATAL EXCEPTION: main
10-09 19:01:27.942: E/AndroidRuntime(610): java.lang.NoSuchMethodError:     
10-09 19:01:27.942: E/AndroidRuntime(610):  at      
android.database.sqlite.SQLiteDatabase.rawQuery
com.waffles.vatsandbats.MyDBHandler.getMonth(MyDBHandler.java:85)

我有这个代码可以获取所有行并且工作正常

public Cursor getAllRows() {

    SQLiteDatabase db = this.getWritableDatabase();

    String where = null;
    Cursor c = db.rawQuery("SELECT * FROM " + TABLE_PRODUCTS, null);

    if (c != null) {
        c.moveToFirst();
    }
    db.close();
    return c;
}

1 个答案:

答案 0 :(得分:3)

您可以尝试从rawQuery调用中删除其中一个参数:

Cursor c = db.rawQuery("SELECT * FROM TABLE_PRODUCTS WHERE MONTH = "
            + month, null);

看看文档: http://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html#rawQuery(java.lang.String, java.lang.String[])