1

我有以下表结构

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:空 bindArgs

如何解决这个问题?

4

3 回答 3

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+"'");
}
于 2013-05-11T05:12:43.890 回答
1

您不能使用 execSql 来更新数据。它执行一个不是SELECT/INSERT/UPDATE/DELETE.

您应该使用更新方法来更新数据库。

于 2013-05-11T05:06:35.710 回答
1

像这样使用

字符串查询=“更新 tv_show SET episode_status=epStat,其中 show_name=showName 和 season_name=seasonName”;db.rowquery(查询,空);

于 2013-05-11T05:12:18.113 回答