Search code examples
androidcursorandroid-sqlite

Couldn't read row 0, col -1 from CursorWindow


I'm trying to get records in my table. I'm using this code

        if(c!=null){
            if(c.moveToFirst()) {

                String tipId = c.getString(c.getColumnIndex(DAO.TIP_ID)).toString().trim();                 
                System.out.println("tipId: "+ tipId);

            }else{
                // Handle no rows returned
                System.out.println("Handle no rows returned");
            }
        }else{
            System.out.println("debug Cursor , cannot be created");
        }

But it gives me the following exception

Couldn't read row 0, col -1 from CursorWindow.  Make sure the Cursor is initialized correctly before accessing data from it.

and it refers to that line:

String tipId = c.getString(c.getColumnIndex(DAO.TIP_ID)).toString().trim();

hope anyone helps me to fix this. Thanks in advance.


Solution

  • In your code

      c.getColumnIndex(DAO.TIP_ID)
    

    is returning -1. This means value of DAO.TIP_ID doesnot match with any column name of table .Check if this value is correct and matches with a column name of the table you are accessing

    add following line before the line which causes problem and post the Logcat output here

     Log.v("out-data",DAO.TIP_ID+" "+c.getColumnIndex(DAO.TIP_ID)+" "+c.getColumnName(0));
    

    (add import statement import android.util.Log; in beginning of your code)