人生的烦恼,多在于知道的太多,而做的太少。

Android sqlite3 错误

Android 笔记 zhangman523@gmail.com 786℃ 0评论

在使用游标 Cursor 是获取列值的时候最好确定列名是否与数据库一至

[codesyntax lang=”java” lines=”normal”]

    if(localcursor.moveToFirst())
                    {
                        do {
                            Item item = new Item();
                            //item.id = localcursor.getInt(1);
                            item.setDid(localcursor.getInt(2));
                            item.setTitle(localcursor.getString(3));
                            item.setType(localcursor.getString(4));
                            item.setCollection(localcursor.getInt(5));
                            item.setAnswer(localcursor.getString(6));
                            ilist.add(item);
                        } while (localcursor.moveToNext());
                    }

[/codesyntax]

这样写,可能获取的值不是与你想象中的一样。可能会错开。
最好是下面这种写法

[codesyntax lang=”java” lines=”normal”]

    if(localcursor.moveToFirst())
                    {
                        do {
                            Item item = new Item();
                            //item.id = localcursor.getInt(1);
                            item.setDid(localcursor.getInt(localcursor.getColumnIndex(StaticPerson.I_DID)));
                            item.setTitle(localcursor.getString(localcursor.getColumnIndex(StaticPerson.I_TITLE)));
                            item.setType(localcursor.getString(localcursor.getColumnIndex(StaticPerson.I_TYPE)));
                            item.setCollection(localcursor.getInt(localcursor.getColumnIndex(StaticPerson.I_COLLECTION)));
                            item.setAnswer(localcursor.getString(localcursor.getColumnIndex(StaticPerson.I_ANSWER)));
                            ilist.add(item);
                        } while (localcursor.moveToNext());
                    }

[/codesyntax]

StaticPerson.I_DID 为表的自动名称

这样更加准确的获取每个列的值

转载请注明:zhangman523 » Android sqlite3 错误

喜欢 (0)
发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址