奇怪的 sqlite 问题。不从变量和参数插入/更新一致的值

发布于 2024-10-26 20:23:11 字数 1205 浏览 2 评论 0原文

最近我遇到了很多数据库问题。我目前的情况是,记录不是用我告诉它的值创建的。它创建“00”而不是“100”。奇怪的是,这只发生在 android 模拟器中。我正在使用的设备(Driod Incredible)可以正常运行相同的代码。不过,我还没有在手机上看过数据库,因为eclipse由于某种原因没有打开data文件夹。当我决定从模拟器中提取数据库时,我才发现这一点(因为我遇到了其他 sqlite 问题,如果您精通该领域,请查看我的其他问题)。由于游标索引错误,索引大小为 0,我比预期更早地强制关闭。这是因为我正在查找的值是 100,而它被创建为 00。这是什么鬼?

public void createEmptyProfile(String SaveSlot) {
 ContentValues initialValues = new ContentValues();
    //ITEM 100
    initialValues.put(ITEM, "100");
    initialValues.put(VALUE1, "100");
    initialValues.put(SAVE_SLOT, SaveSlot);
    initialValues.put(CATEGORY, "S");
    mDb.insert(DATABASE_PUSHERS_TABLE, null, initialValues);
    initialValues.clear();
    //ITEM 99       
    initialValues.put(ITEM, "99");
    initialValues.put(VALUE1, "0");
    initialValues.put(SAVE_SLOT, SaveSlot);
    initialValues.put(CATEGORY, "S");
    mDb.insert(DATABASE_PUSHERS_TABLE, null, initialValues);
    initialValues.clear();
return;

数据库有项目 99,但项目 00 而不是 100。所有其他值都是正确的。有很多项目。

表创建:

"create table profiles (_id integer primary key autoincrement, " +
        "save_slot text not null,item text, value1 text, " +
        "value2 text, category text);"

I've been running into quite a few database problems lately. My current situation is that a record is not created with the the value I tell it to. It creates "00" instead of "100". The weird thing is that this only happens in the android emulator. The device i'm using (Driod Incredible) runs the same code fine. However, I have not looked at the database on the phone, because eclipse does not open the data folder for some reason. I only discovered this when i decided to pull the database from emulator(because of other sqlite issues that i am having please look at my other questions if you are proficient in this area) . I got a force close earlier than expected from a cursor index error, index size of 0. This is because the value i'm looking for is 100 and it was created as 00. Whats the dill?

public void createEmptyProfile(String SaveSlot) {
 ContentValues initialValues = new ContentValues();
    //ITEM 100
    initialValues.put(ITEM, "100");
    initialValues.put(VALUE1, "100");
    initialValues.put(SAVE_SLOT, SaveSlot);
    initialValues.put(CATEGORY, "S");
    mDb.insert(DATABASE_PUSHERS_TABLE, null, initialValues);
    initialValues.clear();
    //ITEM 99       
    initialValues.put(ITEM, "99");
    initialValues.put(VALUE1, "0");
    initialValues.put(SAVE_SLOT, SaveSlot);
    initialValues.put(CATEGORY, "S");
    mDb.insert(DATABASE_PUSHERS_TABLE, null, initialValues);
    initialValues.clear();
return;

the database has item 99, but item 00 instead of 100. All other values are correct. There are numerous items.

table create:

"create table profiles (_id integer primary key autoincrement, " +
        "save_slot text not null,item text, value1 text, " +
        "value2 text, category text);"

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

只是在用心讲痛 2024-11-02 20:23:11

我添加了一个单引号并修复了它。

initialValues.put(ITEM, "100");

initialValues.put(ITEM, "'100'");

I added a single quote and that fixed it.

from

initialValues.put(ITEM, "100");

to

initialValues.put(ITEM, "'100'");
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文