dimanche 20 décembre 2015

mySQlite Database not working on real android device but working well on Emulator

I created an android application where I can INSERT,VIEW,DELETE and MODIFY data. All the functions are working well when I run it on my EMULATOR but when I export the apk into my device and install it,then the data is not visible. MY DatabaseHelper class is :

import android.content.ContentValues;
import android.content.Context;
import android.content.res.AssetManager;
import android.database.Cursor;
import android.database.DatabaseUtils;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.media.Image;
import android.util.Log;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.Arrays;

/**
 * Created by chawlaz on 11/12/15.
 */
public class DatabaseHelper extends SQLiteOpenHelper {
    public static final String DATABASE_NAME = "Newmember.db";
    public static final String TABLE_NAME = "register_member";
//    public static final String COL_1 = "S_NO";
    public static final String COL_2 = "REG_ID";
    public static final String COL_3 = "NAME";
    public static final String COL_4 = "AGE";
    public static final String COL_5 = "SEX";
    public static final String COL_6 = "HEIGHT";
    public static final String COL_7 = "WEIGHT";
    public static final String COL_8 = "DATE_OF_BIRTH";
    public static final String COL_9 = "FATHER_NAME";
    public static final String COL_10 = "CONTACT_NO";
    public static final String COL_11 = "E_MAIL";
    public static final String COL_12 = "DATE_OF_JOINING";
    public static final String COL_13 = "TRAINING_PERIOD";
    public static final String COL_14 = "AMOUNT";
    public static final String COL_15 = "VALID_TILL";
//    public static final String COL_15 = "NAME";
//    private static final String IMAGE = "image";

    public DatabaseHelper(Context context) {
        super(context, DATABASE_NAME, null, 1);

    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL(
                "CREATE TABLE IF NOT EXISTS " + TABLE_NAME + " ( " + COL_2 + " TEXT NOT NULL , "
                        + COL_3 + " TEXT NOT NULL , " + COL_4 + " TEXT NOT NULL , " + COL_5 + " TEXT NOT NULL , " + COL_6 + " TEXT NOT NULL , "
                        + COL_7 + " TEXT NOT NULL , " + COL_8 + " TEXT NOT NULL , " + COL_9 + " TEXT NOT NULL , " + COL_10 + " TEXT NOT NULL , "
                        + COL_11 + " TEXT NOT NULL , " + COL_12 + " TEXT NOT NULL , " + COL_13 + " TEXT NOT NULL , " + COL_14 + " TEXT NOT NULL , "
                        + COL_15 + " TEXT NOT NULL ) ;");
//        S_NO INTEGER PRIMARY KEY AUTOINCREMENT,REG_ID INTEGER ,NAME TEXT,AGE INTEGER,SEX TEXT,HEIGHT INTEGER,WEIGHT INTEGER,DATE_OF_BIRTH INTEGER,FATHER_NAME TEXT,CONTACT_NO INTEGER,E_MAIL TEXT,DATE_OF_JOINING INTEGER,TRAINING_PERIOD TEXT,AMOUNT INTEGER,VALID_TILL INTEGER"
        Log.d(TABLE_NAME, "onCreate ");
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        db.execSQL("DROP TABLE IF EXISTS");
        onCreate(db);
    }
    public boolean insertData( String reg_id , String name, String age, String sex, String height, String weight, String date_of_birth, String father_name, String contact_no, String e_mail, String date_of_joining, String training_period, String amount, String valid_till){
        SQLiteDatabase db = this.getWritableDatabase();
        ContentValues contentValues = new ContentValues();
        contentValues.put("REG_ID",reg_id);
        contentValues.put("NAME",name);
        contentValues.put("AGE",age);
        contentValues.put("SEX",sex);
        contentValues.put("HEIGHT",height);
        contentValues.put("WEIGHT",weight);
        contentValues.put("DATE_OF_BIRTH",date_of_birth);
        contentValues.put("FATHER_NAME",father_name);
        contentValues.put("CONTACT_NO",contact_no);
        contentValues.put("E_MAIL",e_mail);
        contentValues.put("DATE_OF_JOINING",date_of_joining);
        contentValues.put("TRAINING_PERIOD",training_period);
        contentValues.put("AMOUNT", amount);
        contentValues.put("VALID_TILL", valid_till);
//        contentValues.put("image", String.valueOf(image));
        db.insert("register_member", null, contentValues);
        return true;
    }
    public Cursor getData(){
        SQLiteDatabase db = this.getReadableDatabase();
        Cursor res =  db.rawQuery( "select * from " + TABLE_NAME , null );
        Log.d(TABLE_NAME, "getData ");
        return res;

    }

    public Cursor getContact(String reg_id, SQLiteDatabase sqLiteDatabase) {
        String[] projections = { COL_3 , COL_4 , COL_5 , COL_6 , COL_7 , COL_8 , COL_9 , COL_10 , COL_11 , COL_12 , COL_13 , COL_14 , COL_15 };
        String selection = COL_2 +" LIKE ?";
        String[] seletion_args={reg_id};
        Cursor cursor=sqLiteDatabase.query(TABLE_NAME, projections, selection, seletion_args, null, null, null);
        return cursor;

    }
    public int numberOfRows(){
        SQLiteDatabase db = this.getReadableDatabase();
        int numRows = (int) DatabaseUtils.queryNumEntries(db, TABLE_NAME);
        return numRows;
    }
    public boolean updateTable ( String reg_id,String name,String age,String sex,String height,String weight,String date_of_birth,String father_name,String contact_no,String e_mail,String date_of_joining,String training_period,String amount,String valid_till)
    {
        SQLiteDatabase db = this.getWritableDatabase();
        ContentValues contentValues = new ContentValues();
        contentValues.put("REG_ID",reg_id);
        contentValues.put("NAME",name);
        contentValues.put("AGE",age);
        contentValues.put("SEX",sex);
        contentValues.put("HEIGHT",height);
        contentValues.put("WEIGHT",weight);
        contentValues.put("DATE_OF_BIRTH",date_of_birth);
        contentValues.put("FATHER_NAME",father_name);
        contentValues.put("CONTACT_NO",contact_no);
        contentValues.put("E_MAIL",e_mail);
        contentValues.put("DATE_OF_JOINING",date_of_joining);
        contentValues.put("TRAINING_PERIOD",training_period);
        contentValues.put("AMOUNT",amount);
        contentValues.put("VALID_TILL",valid_till);
        db.update(TABLE_NAME, contentValues, "REG_ID = ? ", new String[] { reg_id } );
        return true;
    }
    public Integer deleteContact (String reg_id)
    {
        SQLiteDatabase db = this.getWritableDatabase();
        return db.delete(TABLE_NAME,
                "REG_ID = ? ",
                new String[] { reg_id });
    }
    public ArrayList<String> getAllMember()
    {
        ArrayList<String> array_list = new ArrayList<String>();

        //hp = new HashMap();
        SQLiteDatabase db = this.getReadableDatabase();
        Cursor res =  db.rawQuery( "select * from register_member", null );
        res.moveToFirst();

        while(res.isAfterLast() == false){
            array_list.add(res.getString(res.getColumnIndex(COL_2)));
            res.moveToNext();
        }
        return array_list;
    }

}

Can anyone give an idea on how to resolve this problem ?

Aucun commentaire:

Enregistrer un commentaire