I have a table in database MS_EVENT_CONFIRMATION, this table consists of 3 column :
- EVENT_Id
- MEMBER_USERNAME
- EVENT_CONFIRMATION
And I want to make a code to update EVENT_CONFIRMATION Column, but I got an error that always said no such column : ....
Here is my code :
Create table
db.execSQL("CREATE TABLE IF NOT EXISTS " + MS_EVENT_CONFIRMATION
+ "(" + EVENT_ID + " INTEGER, " + MEMBER_USERNAME
+ " TEXT, " + EVENT_CONFIRMATION + " TEXT, PRIMARY KEY("
+ EVENT_ID + ", " + MEMBER_USERNAME + "), FOREIGN KEY ("
+ MEMBER_USERNAME + ") REFERENCES " + MS_MEMBER + "("
+ MEMBER_USERNAME + "), FOREIGN KEY (" + EVENT_ID
+ ") REFERENCES " + MS_EVENT + "(" + EVENT_ID + "));");
This is where I insert the same table :
String defaultConfirmation = "pending";
String Query = "SELECT * FROM " + MS_GROUP_DETAIL + " WHERE "
+ GROUP_ID + "=?";
Cursor c = ourDatabase.rawQuery(Query, new String[] { groupId });
int iMember = c.getColumnIndex(MEMBER_USERNAME);
String username = "";
ContentValues cv2 = new ContentValues();
for (c.moveToFirst(); !c.isAfterLast(); c.moveToNext()) {
username = c.getString(iMember);
if (!checkConfirmation(eventId, username)) {
cv2.put(EVENT_ID, eventId);
cv2.put(MEMBER_USERNAME, username);
cv2.put(EVENT_CONFIRMATION, defaultConfirmation);
ourDatabase.insert(MS_EVENT_CONFIRMATION, null, cv2);
}
}
This is Where I want to pass the data from my activity to database :
case R.id.bDoAttendingEvent:
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage("You choose to attend this event?")
.setCancelable(false)
.setPositiveButton("Yes",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int id) {
myDb.open();
string = "attend";
myDb.confirmEvent(eventId, Username, string);
attend.setBackgroundColor(Color.BLUE);
notAttend.setBackgroundColor(Color.GRAY);
confirmation.setText("Confirmation : Attend");
myDb.close();
}
})
.setNegativeButton("No",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int id) {
dialog.cancel();
}
});
AlertDialog alert = builder.create();
alert.show();
break;
And this is the database file, where I want to update the column : `
public void confirmEvent(String eventId, String username, String string) {
// TODO Auto-generated method stub
ContentValues cv = new ContentValues();
cv.put(EVENT_CONFIRMATION, string);
ourDatabase.update(MS_EVENT_CONFIRMATION, cv, MEMBER_USERNAME + "="
+ username + " AND " + EVENT_ID + "=" + eventId, null);
}
Logcat :
12-18 22:18:15.966: E/SQLiteLog(16892): (1) no such column: adminadmin
12-18 22:18:15.966: D/AndroidRuntime(16892): Shutting down VM
12-18 22:18:15.966: W/dalvikvm(16892): threadid=1: thread exiting with uncaught exception (group=0x41da7c08)
12-18 22:18:15.986: E/AndroidRuntime(16892): FATAL EXCEPTION: main
12-18 22:18:15.986: E/AndroidRuntime(16892): Process: com.thesis.teamizer, PID: 16892
12-18 22:18:15.986: E/AndroidRuntime(16892): android.database.sqlite.SQLiteException: no such column: adminadmin (code 1): , while compiling: UPDATE MsEventConfirmation SET EventConfirmation=? WHERE Username=adminadmin AND EventId=1
12-18 22:18:15.986: E/AndroidRuntime(16892): at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
12-18 22:18:15.986: E/AndroidRuntime(16892): at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:1113)
12-18 22:18:15.986: E/AndroidRuntime(16892): at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:690)
12-18 22:18:15.986: E/AndroidRuntime(16892): at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
12-18 22:18:15.986: E/AndroidRuntime(16892): at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58)
12-18 22:18:15.986: E/AndroidRuntime(16892): at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:31)
12-18 22:18:15.986: E/AndroidRuntime(16892): at android.database.sqlite.SQLiteDatabase.updateWithOnConflict(SQLiteDatabase.java:1706)
12-18 22:18:15.986: E/AndroidRuntime(16892): at android.database.sqlite.SQLiteDatabase.update(SQLiteDatabase.java:1654)
12-18 22:18:15.986: E/AndroidRuntime(16892): at com.thesis.teamizer.Database.confirmEvent(Database.java:1128)
12-18 22:18:15.986: E/AndroidRuntime(16892): at com.thesis.teamizer.EventDetail$1.onClick(EventDetail.java:112)
12-18 22:18:15.986: E/AndroidRuntime(16892): at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:167)
12-18 22:18:15.986: E/AndroidRuntime(16892): at android.os.Handler.dispatchMessage(Handler.java:102)
12-18 22:18:15.986: E/AndroidRuntime(16892): at android.os.Looper.loop(Looper.java:146)
12-18 22:18:15.986: E/AndroidRuntime(16892): at android.app.ActivityThread.main(ActivityThread.java:5602)
12-18 22:18:15.986: E/AndroidRuntime(16892): at java.lang.reflect.Method.invokeNative(Native Method)
12-18 22:18:15.986: E/AndroidRuntime(16892): at java.lang.reflect.Method.invoke(Method.java:515)
12-18 22:18:15.986: E/AndroidRuntime(16892): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283)
12-18 22:18:15.986: E/AndroidRuntime(16892): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099)
12-18 22:18:15.986: E/AndroidRuntime(16892): at dalvik.system.NativeStart.main(Native Method)
Can you please help tell me where is my mistake? thank you in advance