0

我有这个函数应该从数据库中按 ID 返回对象。虽然请求的 ID 有数据,但没有返回数据。有人可以帮我解决这个问题。

代码:

public ChildRecord getChild(int id) {
        ChildRecord child = null;
        Log.v("--", "success13s ");
        Cursor c = database.rawQuery("SELECT * FROM child " + "WHERE childID="
                + id, null);
        Log.v("--", "success1 2");
        if (c != null)
            if (c.moveToFirst()) {
                do {
                    int childid = c.getInt(0);
                    String parent1 = c.getString(1);
                    String parent2 = c.getString(2);
                    String name = c.getString(3);
                    String dob = c.getString(4);
                    int gender = c.getInt(5);
                    String height = c.getString(6);
                    String weight = c.getString(7);
                    String etnicity = c.getString(8);
                    int type = c.getInt(9);
                    child = new ChildRecord(childid, name, dob, gender, height,
                            weight, etnicity, type, parent1, parent2);
                } while (c.moveToNext());
            }
        Log.v("--", "success1 ");
        return child;
    }

问题出在一线

Cursor c = database.rawQuery("SELECT * FROM child " + "WHERE childID="
                    + id, null); 
4

1 回答 1

0

我想首先明确这一点,如果您有“child”表,其中“childID”列是整数,并且有您传入的 id 的数据。查询字符串没有任何问题。

然后你应该检查:

  1. 你指的是“正确”的数据库

  2. 尝试在 SQLite DB 管理器中执行此查询,看看是否会给出结果。

  3. 如果您在 SQLite DB 管理器中有结果,但在代码中没有得到任何结果。问题必须来自您的“数据库”对象。

请试着告诉我你的结果。

于 2013-09-01T11:17:33.933 回答