Это рекомендуемый способ использования rawQuery()
:
String selectQuery = "SELECT * FROM " + TABLE_TEAM + " WHERE " + TEAM_TABLE_NAME + " = ?";
Cursor c = db.rawQuery(selectQuery, new String[] {name});
так что вы передаете name
в качестве параметра запроса и избегаете риска sql внедрения .
В своем коде вы только проверяете, является ли объект Cursor
null
, а не содержит ли он какие-либо строки, и это правильно.
Так что верните результат getCount() > 0
так:
return c.getCount() > 0;
Это вернет true
, если имя уже существует в таблице .
Что касается ошибки no such column
, то это нечто иное.
Сначала убедитесь, что TEAM_TABLE_NAME
является правильным именем столбца, и если это так, возможно, вы внесли изменения в имена столбцов, которые не отражаются в базе данных.
Поэтому удалите приложение с устройства, чтобы удалить базу данных, а затем снова запустите ее, чтобы заново создать базу данных с новыми именами столбцов.