Запросы к базе данных SQLite в Android Activity - говорят, что столбец не найден, хотя он существует - PullRequest
0 голосов
/ 10 августа 2010

См. Заголовок для объяснения.

Вот метод, который я использую:

public Cursor getClientByName(String name) throws SQLException {

    name = name.trim();

    Cursor mCursor = 

        mDb.query(true, DATABASE_TABLE, new String[] {KEY_ROWID, KEY_NAME}, KEY_NAME + "=" + name, null,
                null, null, null, null);

    if (mCursor != null) {
        mCursor.moveToFirst();
    }

    return mCursor;

}

А вот и вызов метода:

list.setOnItemClickListener(new OnItemClickListener() {
        public void onItemClick(AdapterView<?> parent, View view,
            int position, long vId) {

            String name = ((TextView) view).getText().toString();

            // Toast.makeText(AvoidForeclosure.this, name, Toast.LENGTH_LONG).show();

            Cursor cD = db.getClientByName(name);
            cD.moveToLast();
            int id = cD.getInt(0);

          Intent intent = new Intent();
          intent.setClass(view.getContext(), CurrentMarketValue.class);
          intent.putExtra("clientId", id);
          startActivity(intent);

        }
      });

Любая идея, почему было бы выбрасывать «Столбец не найден с именем = Test», хотя мой проводник БД показывает, что действительно есть столбец с именем и значением в строке с именем Test?

1 Ответ

1 голос
/ 11 августа 2010
public Cursor getClientByName(String name) throws SQLException {

        name = name.trim();

        String q = "SELECT _id, name FROM " + DATABASE_TABLE + " WHERE name=?";

        Cursor mCursor = mDb.rawQuery(q, new String[] { name });


        if (mCursor != null) {
            mCursor.moveToFirst();
        }

        return mCursor;

    }

Исправляет это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...