2012-04-20 11 views
2

私は現在、アンドロイドデータベースで値を追加、表示、削除する作業を行っていますが、不幸にも追加と表示の部分だけをカバーしています。アンドロイドデータベースから行を削除する

私は、あなたがクラスDeleteEntryViewModuleに渡される変数moduleDeleteを入力するDeleteEntryと呼ばれるクラスを持っています。このクラスは、このshowEvent()メソッド私はビルダーから値を取ると、私はこのコードを実行することができるように変数にそれらを配置するにはどうすればよい

private void showEvents(Cursor cursor) { 
StringBuilder builder = new StringBuilder("Saved Events:\n"); 
while (cursor.moveToNext()){ 
    long id = cursor.getLong(0); 
    String module = cursor.getString(1); 
    String day = cursor.getString(2); 
    String starttime = cursor.getString(3); 
    String duration = cursor.getString(4); 
    String typeofsession = cursor.getString(5); 
    String room = cursor.getString(6); 
    builder.append(id).append(": "); 
    builder.append(module).append(": "); 
    builder.append(day).append(": "); 
    builder.append(starttime).append(": "); 
    builder.append(duration).append(": "); 
    builder.append(typeofsession).append(": "); 
    builder.append(room).append("\n "); 
} 
TextView text = (TextView) findViewById(R.id.text); 
text.setText(builder); 
} 

を使用して、その行のすべての値を返すために、この値を使用しています。

private void removeEvent (String module, String day, String starttime, String duration, String typeofsession, String room){ 
    try{ 
    SQLiteDatabase db = events.getWritableDatabase(); 
    ContentValues values = new ContentValues(); 
    values.put(DAY, day); 
    values.put(MODULE, module); 
    values.put(STARTTIME, starttime); 
    values.put(DURATION, duration); 
    values.put(TYPEOFSESSION, typeofsession); 
    values.put(ROOM, room); 
    db.replaceOrThrow(TABLE_NAME, null, values); 
    }catch(SQLiteException ex){ 
     Toast toast = Toast.makeText(this, "Broken", 10); 
     toast.show(); 
    } 

}

おかげ

答えて

0

は、コードの代わりに、db.replaceOrThrow

​​

の下に使用してみてください、あなたがdb.replaceOrThrowを使用しているなぜあなたは説明できます?

+1

私は行db.insertOrThrowを追加するために行ったことに従っていましたが、置換を気にしなかっただけでnullの列が埋められます。私はあなたの修正を挿入し、すべてが正しくコンパイルされているが、実際に実行するとSQL例外がスローされます。私はこのandroid.database.sqlite.SQLiteExceptionに絞るためにそれをデバッグしました:そのような列:CM111:、コンパイル中:タイムテーブルから削除WHEREモジュール= CM111しかし、私は何もSQLステートメントで間違って見ることができません? ご協力いただきありがとうございます – user1341620

関連する問題