如何从SQLite中的特定列获取具有特定值的行?

时间:2015-03-07 22:54:31

标签: java android sql sqlite

我将数据保存在SQLite数据库中。用户可以选择保存其数据的名称。但是如何获得这一行?

我试过这个:

    public Cursor getRowByName(String rowName) {
    Cursor c = db.query(true, DATABASE_TABLE, ALL_KEYS,
            KEY_SAVENAME + "=?", new String[]{rowName}, null, null, null, null);
    if (c != null) {
        c.moveToFirst();
    }
    return c;
}

但是得到错误:

E/AndroidRuntime﹕ FATAL EXCEPTION: main
android.database.sqlite.SQLiteException: no such column: max (code 1): , while compiling: 
SELECT DISTINCT _id, saveName, date, time, month, erg, ergg, m, p, c, cg, x1, x2, 
x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, y1, y2, y3, y4, 
y5, y6, y7, y8, y9, y10, y11, y12, y13, y14, y15, y16, c1, c2, c3, c4, c5, c6, 
c7, c8, c9, c10, c11, c12, c13, c14, c15, c16, max, min, year FROM mainTable WHERE saveName=?

首先它没有列max,但后来我认识到我需要这个和更多列。但即使我有一个列(如max),我也会收到此错误。

我做错了什么?

1 个答案:

答案 0 :(得分:1)

当您更改数据库结构时,必须增加 DATABASE_VERSION 常量值,以便触发onUpgrade()方法(它将删除并重新创建)表格。