2013-05-11 2 views
1

У меня есть следующая структура таблицыобновление Android SQLite не удается

public class DBConnectionTableTVShow { 
    public static final String SHOWID = "show_id"; 
    public static final String SHOWNAME = "show_name"; 
    public static final String SHOWSEASON = "season_name"; 
    public static final String EPISODENAME = "episode_name"; 
    public static final String EPISODESTATUS = "episode_status"; 

    public static final String DBNAME = "entertainment_tracker"; 
    public static final String DBTABLE = "tv_show"; 
    public static final int VERSION = 1; 
} 

Теперь я хочу, чтобы обновить episode_status

я создал следующий метод

public void updateEpisodeStatus(String showName, String seasonName, String episodeNo, String epStat) { 
    db.execSQL("UPDATE tv_show SET " + 
       "episode_status='"+epStat+"'"+ 
       "WHERE show_name='"+showName+"' " + 
       "AND season_name='"+seasonName+"' " + 
       "AND episode_name='"+episodeNo+"'", 
       null); 
} 

Когда я пытаюсь использовать этот метод, который я я получаю ошибку:

java.lang.IllegalArgumentException: Empty bindArgs

Как это решить?

+2

Использование http://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html#update(java.lang.String, android.content.ContentValues, java.lang.String, ява .lang.String []) –

ответ

2

Удалите второй параметр, который передается как null, и он будет работать.

public void updateEpisodeStatus(String showName, String seasonName, String episodeNo, String epStat) { 
    db.execSQL("UPDATE tv_show SET " + 
       "episode_status='"+epStat+"'"+ 
       "WHERE show_name='"+showName+"' " + 
       "AND season_name='"+seasonName+"' " + 
       "AND episode_name='"+episodeNo+"'"); 
} 
1

Вы не можете использовать execSql для увеличения объема данных. Он выполняет один оператор SQL, который НЕ является SELECT/INSERT/UPDATE/DELETE.

Чтобы обновить БД, вы должны использовать Update Method.

+0

Я новичок в этом. Можете ли вы написать мне код? – LynAs

1

использовать как этот

Строка запроса = "Обновление tv_show SET episode_status = epStat где SHOW_NAME = showName и SEASON_NAME = seasonName"; db.rowquery (query, null);

Смежные вопросы