android - Updating 2 Column of a SQL LITE Database from Different Method Not Working?
问题描述
I am using this to create a Database.
String CreateMainTable = "CREATE TABLE " + SURVEY_TABLE + "("
+ COLUMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, "
+ SURVEY_ID + " TEXT, " //nullable
+ PRIMARY_DATA + " TEXT, " //nullable
+ MEMBER_DATA + " TEXT, " //nullable
+ DETAILS_DATA + " TEXT, " //nullable
+ PROPERTY_DATA + " TEXT, " //nullable
+ EARNING_DATA + " TEXT " //nullable
+ ")";
db.execSQL(CreatePrimaryTable);
After creating I insert the survey ID keep the other filed blank.
public boolean AddInitialData(FullDataSet surveyDBModel) {
try {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues contentValues = new ContentValues();
contentValues.put(SURVEY_ID, surveyDBModel.getID());
contentValues.put(PRIMARY_DATA, surveyDBModel.getPrimaryData());
contentValues.put(MEMBER_DATA, surveyDBModel.getMemberData());
contentValues.put(DETAILS_DATA, surveyDBModel.getKhanaDetailsData());
contentValues.put(PROPERTY_DATA, surveyDBModel.getKhanaPropertyData());
contentValues.put(EARNING_DATA, surveyDBModel.getKhanaIncomeExpense());
long insert = db.insert(SURVEY_TABLE, null, contentValues);
if (insert == -1) {
return false;
} else {
return true;
}
} catch (Exception e) {
e.printStackTrace();
}
return true;
}
Then I use 2 methods to insert values in Two-column from 2 different activities as I need to update them at a different times using the survey ID .
Update Details :
public void updateDetails(String details, String ID) {
Log.e("$$$$", "Update DETAILS");
SQLiteDatabase sqLiteDatabase = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(DETAILS_DATA, details);
String selection = SURVEY_ID + " LIKE ?";
String[] selectionArgs = {ID};
int count = sqLiteDatabase.update(
SURVEY_TABLE,
values,
selection,
selectionArgs);
Log.e("Status ----> ", "-- > " + count);
}
Update Property :
public void updateProperty(String property, String ID) {
SQLiteDatabase sqLiteDatabase = this.getWritableDatabase();
Log.e("$$$$", "Update Property");
ContentValues values = new ContentValues();
values.put(PROPERTY_DATA, property);
String selection = SURVEY_ID + " LIKE ?";
String[] selectionArgs = {ID};
int count = sqLiteDatabase.update(
SURVEY_TABLE,
values,
selection,
selectionArgs);
Log.e("Status ----> ", "-- > " + count);
}
The First value is updating easily, But the 2nd Column is not updating.Either one is updating. Please help me to find my error.
public static final String SURVEY_ID = "SURVEY_ID";
public static final String PRIMARY_DATA = "PRIMARY_DATA";
public static final String MEMBER_DATA = "MEMBER_DATA";
public static final String DETAILS_DATA = "DETAILS_DATA";
public static final String PROPERTY_DATA = "PROPERTY_DATA";
public static final String EARNING_DATA = "EARNING_DATA";