2013-05-11 70 views
1

我有以下表結構的Android源碼更新失敗

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中,JAVA .lang.String []) – 2013-05-11 05:05:55

回答

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 2013-05-11 05:11:17

1

使用這樣

串查詢= 「更新TV_SHOW SET episode_status = epStat其中SHOW_NAME = showName和SEASON_NAME = seasonName」; db.rowquery(query,null);