lundi 4 avril 2016

java.lang.IllegalStateException: Couldn't read row 0, col 3 from CursorWindow

I am getting this error which I'm got stuck up

java.lang.IllegalStateException: Couldn't read row 0, col 3 from CursorWindow. Make sure the Cursor is initialized correctly before accessing data from it.

Code

    // Upgrading database
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        // Drop older table if existed
    //  db.execSQL("DROP TABLE IF EXISTS " + TABLE_USER);
        db.execSQL("DROP TABLE IF EXISTS actselflocaldb ");

        // Create tables again
        onCreate(db);
    }

    /**
     * All CRUD(Create, Read, Update, Delete) Operations
     */

    // Adding new contact
    void addContact(User user) {

        SQLiteDatabase db = this.getWritableDatabase();


        ContentValues values = new ContentValues();

        values.put(KEY_USERNAME, user.getUname().toString());

        values.put(KEY_FIRSTNAME, user.getFirstname().toString());
        values.put(KEY_LOCATION, user.getLoc().toString());
        values.put(KEY_DEVICEID, user.getCheckSum().toString());
        values.put(KEY_CHECKSUM, user.getDevId().toString());

        // Inserting Row

        /*db.insert(TABLE_USER, null, values);*/
        db.insert("actselflocaldb", null, values);

        db.close(); // Closing database connection
    }

    // Getting single contact
    /*User getContact(int id) {
        SQLiteDatabase db = this.getReadableDatabase();

        Cursor cursor = db.query(TABLE_USER, new String[] { KEY_PH_NO,
                KEY_COUNTRY, KEY_PH_NO, KEY_REALNAME,KEY_NICKNAME }, KEY_PH_NO + "=?",
                new String[] { String.valueOf(id) }, null, null, null, null);

        Cursor cursor = db.query("actselflocaldb", new String[] { KEY_PH_NO,
                KEY_COUNTRY, KEY_PH_NO, KEY_REALNAME,KEY_NICKNAME }, KEY_PH_NO + "=?",
                new String[] { String.valueOf(id) }, null, null, null, null);
        if (cursor != null)
            cursor.moveToFirst();

        User user = new User(cursor.getString(0));
        return user;
    }*/

    // Getting All Contacts
    public List<User> getAllContacts() {
        List<User> userList = new ArrayList<User>();
        // Select All Query
        String selectQuery = "SELECT  * FROM actselflocaldb" ;

        SQLiteDatabase db = this.getWritableDatabase();
        Cursor cursor = db.rawQuery(selectQuery, null);

        // looping through all rows and adding to list
        if (cursor.moveToFirst()) {
            do {
                User user = new User();
                user.setUname(cursor.getString(0));
                user.setLoc(cursor.getString(1));
                user.setFirstname(cursor.getString(2));
                user.setCheckSum(cursor.getString(3));
                user.setDevId(cursor.getString(4));

                    // Adding contact to list
                userList.add(user);
            } while (cursor.moveToNext());
        }

        db.close();
        // return contact list
        return userList;
    }

I have updated to colums in the application from that I am getting this error. what is the problem? I have traced above error in the stack trace.
Please help me some one to get out of the hell.

Aucun commentaire:

Enregistrer un commentaire