首页 > 解决方案 > 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";

标签: androiddatabasesqlite

解决方案


推荐阅读