SQLite Query возвращает ноль - PullRequest
       4

SQLite Query возвращает ноль

1 голос
/ 13 октября 2011

Что я сделал


У меня есть Gridview, который заполняет мою базу данных идентификаторами изображений. Теперь я настроил onItemClickListner, чтобы получить imageID -> это работает! Теперь я хотел бы выполнить поиск в моей БД с этим imageID, но он всегда возвращает «ноль», но этого не должно быть, потому что, если заполнить мою БД именно этими imageID. Структура таблицы такова: RowID | ИСТОЧНИК | ИНФОРМАЦИЯ В Info я сохранил imageID

Вопрос


Как мне изменить Курсор, чтобы я мог получать записи через ИНФО. Здесь вы найдете код моего курсора:

Код:


    //Es wird nach der ID des smiley gesucht.
    public Cursor getSmiley(String info) throws SQLException {

        Cursor mCursor =

        this.mDb.query(true, DATABASE_TABLE, new String[] { INFO, SOURCE,
                }, INFO + "=" + info, null, null, null, null, null);
        if (mCursor != null) {
            mCursor.moveToFirst();
        }
        return mCursor;
    }

Как получить imageID-обратно


    public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
    Toast.makeText(SFilterConfigActivity.this, "" + position, Toast.LENGTH_SHORT).show();


    //Hier wird herrausgefunden welche ID das Bild hat und in den jeweiligen String gespeichert
    source = String.valueOf(v.getId());
    Log.v("IMAGEID", source);
    SmileyHelper.open();

    Cursor c = SmileyHelper.getSmiley(source);
    startManagingCursor(c);

        if (c != null){
            String size = String.valueOf(c.getCount());
            Log.v("WhatsInC", size);
        }


    if (c.moveToFirst()) { 
        do { 
        text = c.getString(c.getColumnIndex(SmileyDBAdapter.SOURCE));
        Log.v("WHATINTEXT", text);
        smiley = c.getString(c.getColumnIndex(SmileyDBAdapter.INFO)); 
        Log.v("WHATINSMILEY", smiley);
        } while (c.moveToNext());
    SmileyHelper.close();

Дополнительная информация:

  1. WhatIsInC, возвращает «0».

Если вам нужно больше кода, просто скажите мне Спасибо за вашу помощь заранее! С уважением сафари

1 Ответ

2 голосов
/ 13 октября 2011
public Cursor getEmpByDept(String Dept)
  {
   SQLiteDatabase db=this.getReadableDatabase();
   String [] columns=new String[]{"_id",colName,colAge,colDeptName};
   Cursor c=db.query(viewEmps, columns, colDeptName+"=?", 
    new String[]{Dept}, null, null, null);
   return c;
  }

db.query имеет следующие параметры:

 1.String Table Name: The name of the table to run the query against
 2.String [ ] columns: The projection of the query, i.e., the columns to retrieve
 3.String WHERE clause: where clause, if none pass null
 4.String [ ] selection args: The parameters of the WHERE clause
 5.String Group by: A string specifying group by clause
 6.String Having: A string specifying HAVING clause
 7.String Order By by: A string Order By by clause

Итак, в вашем запросе

this.mDb.query(DATABASE_TABLE, new String[] { INFO, SOURCE },INFO + " = '" + info + "'" , null, null, null, null, null);

или

this.mDb.query(DATABASE_TABLE,new String[] {INFO, SOURCE},INFO + " = ?",new String[]
{info},null, null, null, null);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...