【问题标题】:Multiple entries into a SQLite DBSQLite 数据库中的多个条目
【发布时间】:2014-04-23 15:03:19
【问题描述】:

当我在我的数据库中输入一个字符串时,我可以检索它。但是如果我打开数据库并再次将另一个字符串放入数据库并关闭它,则条目不存在...

            entry.open();
            entry.putChampion1IntoDb(jsonString);
            entry.close();



            entry.open();
            entry.putChampion2IntoDb(jsonString2);
            entry.close();

    public long putChampion1IntoDb(String json) {
        ContentValues cv = new ContentValues();
        cv.put(KEY_CHAMPION_1, json);

        return mDatabase.insert(DATABASE_TABLE, null, cv);
    }

    public long putChampion2IntoDb(String json) {
        ContentValues cv = new ContentValues();
        cv.put(KEY_CHAMPION_2, json);

        return mDatabase.insert(DATABASE_TABLE, null, cv);
}

然后当我调用我的数据库类来检索数据时,字符串返回 null

public JSONObject getChampions2() throws JSONException {
        Cursor c = mDatabase.query(DATABASE_TABLE, mColumns, null, null, null, null, null);
        c.moveToFirst();
        String jsonFeed = c.getString(c.getColumnIndex(KEY_CHAMPION_2));
        JSONObject json = new JSONObject(jsonFeed);
        return json;
}

也许我使用 c.moveToFirst(); 浏览数据库时出错了。

我会有大约 5 列和 1 行。 (至少在我的脑海里我是这样想象的)


|冠军1|冠军2|冠军3|冠军4|冠军5|

我第一次使用.open() 和.putChampionIntoDB(string),关联的键是第一列。 游标与行关联正确吗?所以,c.moveToFirst() 移动到存储我所有信息的第一行,对吗?

先谢谢了!

【问题讨论】:

    标签: android sqlite android-sqlite


    【解决方案1】:

    我认为您不了解数据库的工作原理。每次调用 insert 时,都是在插入新行。你真的有这样的数据: |冠军1|冠军2|冠军3|冠军4|冠军5|

    |一些数据 |null |null |null |null |

    |null |somedata |null |null |null |

    等等。这就是为什么当您检索第一行并尝试获取 KYY_CHAMPION2 时它为空。

    我觉得,你真的需要做表

    |_id|冠军|

    并将数据的每个部分存储在单独的行中。然后你可以轻松地迭代 throw 它们。

    如果您仍想将数据存储在一行中,则需要在第一次之后调用 db.update() 而不是 db.insert()。但是当您调用 update 时,您必须确定要更新哪一行。如果您没有某些列作为主键,则可能会出现问题。

    【讨论】:

    • 谢谢!说得通。所以,|_id|champion_key_1| |_id|champion_key_2| .... 以此类推... 很难在此评论中添加行
    猜你喜欢
    • 2013-04-17
    • 2010-12-17
    • 2011-12-02
    • 2023-03-08
    • 1970-01-01
    • 2012-10-15
    • 2012-04-11
    • 2012-07-14
    • 2012-01-25
    相关资源
    最近更新 更多