I have created this class for the names of database tables :
public class TableDatas {
    public TableDatas() {
    }
    public static abstract class TableInfo implements BaseColumns//columns of tables
    {
        public static final String first_Name = "first_name" ;
        public static final String last_Name = "last_name" ;
        public static final String sex  = "sex" ;
        public static final String birth_date = "birth_date" ;
        public static final String db_name = "UserInfo" ;
        public static final String tbl_name = "UserData" ;
    }
}
in the db helper class i created a cursor function :
    public Cursor getInfo(DatabaseOperat dop) {
            SQLiteDatabase sq = dop.getReadableDatabase();
            String columns[] = {TableInfo.first_Name, TableInfo.last_Name, TableInfo.sex, TableInfo.birth_date};
            Cursor CR = sq.query(TableInfo.tbl_name, columns, null, null, null, null, null);
            return CR;
        }
And in the mainActivity i did this to save the data of the columns in array lists :
 DatabaseOperat DOP = new DatabaseOperat(CTX);
        Cursor CR = DOP.getInfo(DOP);
        DOP.getWritableDatabase();
        CR.moveToFirst();
        while (!CR.isAfterLast()) {
            Fnames.add(CR.getString(CR.getColumnIndex(TableDatas.TableInfo.first_Name)));
            Lnames.add(CR.getString(CR.getColumnIndex(TableDatas.TableInfo.last_Name)));
            Birthdates.add(CR.getString(CR.getColumnIndex(TableDatas.TableInfo.sex)));
            Sex.add(CR.getString(CR.getColumnIndex(TableDatas.TableInfo.birth_date)));
            // Adding contact to list
        }
            CR.close();
            Toast.makeText(getApplicationContext(), "Cursor Success", Toast.LENGTH_LONG).show();
The error in getting is the following :
android.database.sqlite.SQLiteException: ...no such column: first_name (code 1): , while compiling: SELECT first_name, last_name, sex, birth_date FROM UserData .Any idea where the error is ?
 
    