Подтвердить что ты не робот

Метод SQLite.query(), предложение WHERE принимает только строки с двойными кавычками

У меня есть переменная:

String owner="Mike";
String[] columns ={"quantity", "price","owner"}

Мой курсор пытается получить
Cursor findEntry = db.query("sku_table", columns, "owner="+owner, null, null, null, null);

У меня ошибка, ошибка столбца

android.database.sqlite.SQLiteException: no such column: owner: , while compiling: SELECT quantity, price, owner, FROM sku_table WHERE owner=Mike

Но если я возьму этот запрос:

SELECT quantity, price, owner, FROM sku_table WHERE owner=Mike

и добавьте "" в Mike и протестируйте в браузерах sqlite для выполнения запроса, я возвращаю строку.  Рабочий запрос выглядит так:

SELECT quantity, price, owner, FROM sku_table WHERE owner="Mike"

Кто-нибудь может рассказать о том, как включить двойные кавычки? Помимо использования \" Благодарю!

4b9b3361

Ответ 1

Извините, но это именно то, почему вы должны работать с тем, что предлагает этот метод! @Leandros и @Jake помогают в совершенно неправильном направлении! Извините, что...

Единственное решение, которое вы должны использовать, следующее:

Cursor findEntry = db.query("sku_table", columns, "owner=?", new String[] { owner }, null, null, null);

ps: Да, я проголосовал за оба ответа, так как они могут работать, но не могут быть использованы.

Update:

Если вам нужно больше одного условия, просто добавьте его, как если бы вы делали обычный запрос

Cursor findEntry = db.query("sku_table", columns, "owner=? and price=?", new String[] { owner, price }, null, null, null);

Порядок элементов ? и new String[] {...} должен быть одним и тем же!

Ответ 2

SELECT quantity, price, owner, FROM sku_table WHERE owner='Mike' это правильный SELECT. Вы забыли '' (одинарные кавычки)

Ответ 3

 public Cursor show_vol(String  vol,String bk,String hadnu)
           { 
              SQLiteDatabase db = this.getReadableDatabase();
              String[] columns ={"hadith"};//colums name that you select

              Cursor res = db.query("volume2", columns, "hadithno=?", new String[] { hadnu }, null, null, null);

 //volume2 is table name  and hadithno is colume name  l
//select hadith from volume2 where hadithno=hadnu  //working like s

 1. List item

              return res;
           }

Ответ 4

Cursor findEntry = db.query("sku_table", columns, "owner='"+owner+"'", null, null, null, null);

Ответ 5

Я знаю, что это старый вопрос, но вы также можете сделать это следующим образом:

Cursor findEntry = db.query("sku_table", columns, "owner=\'"+owner+"\'", null, null, null, null);

Я просто сделал это в своем приложении, и он работал, как ожидалось.

Ответ Джейка был похож, но, вероятно, не будет работать без\перед '

Ответ 6

Самый простой способ - использовать SELECT col1, col2 FROM table_name WHERE col = 'something'; точно так же, как Leandros, моя проблема заключалась в одинарных кавычках, thnx