Вы должны использовать статический метод DatabaseUtils .stringForQuery (), который уже есть в Android SDK, для простого извлечения значения, этот пример предназначен для бота String
, также есть метод для Long
stringForQuery(SQLiteDatabase db, String query, String[] selectionArgs)
Служебный метод для запуска запроса к БД и возврата значения в первом столбце первой строки.
Что-то вроде
String myString=DatabaseUtils.stringForQuery(getDB(),query,selectionArgs);
Этот пример должен был получить строковое значение, но вы можете легко приспособиться к получению Long
значения, и ваш запрос должен выглядеть примерно так:
select count(*) from mytable where field1='stringtocheckagainst'
если это возвращает число больше нуля, то поле уже существует в базе данных.
Также посмотрите код для обработки изменений ориентации.
ОБНОВЛЕНИЕ @nutone:
В API 11 и выше вы также можете использовать функции DatabaseUtils.queryNumEntries
для непосредственного получения количества (отфильтрованных) строк.
long count = DatabaseUtils.queryNumEntries(getDB(), table, query, selectionArgs);