0

I am working on a Sqlite Sample.although I am completely doing the same thing (mybe not)in the sample .I am getting this exception below .So I have checked mycolumnName "KEY_Pass" and It exist But eclips says that my column name "pass".I know.Its probably a silly question.But really need your help.I cant figure out myself

    table users has no column named pass
 while compiling: INSERT INTO users(pass,name) VALUES (?,?
 while compiling: SELECT name, id, pass FROM users

this is my code

public class MydatabaseClass {

    private static final String DatabaseName="mydb";
    private static final String  TableName="users";
    private static final int version=1;

    private static final String KEY_Username="name";
    private static final String KEY_Pass="pass";
    private static final String KEY_Id="id";

    SQLiteDatabase ourdatabase;
    Context ourContext;
    myHelper ourhelper;
    public MydatabaseClass(Context con){

        ourContext=con;
    }

    public MydatabaseClass OpenDB(){

        ourhelper=new myHelper(ourContext);
        ourdatabase=ourhelper.getWritableDatabase();

        return this;
    }

    public MydatabaseClass CloseDb(){

        ourhelper.close();
        return this;
    }


    public void addthat(String name,String password){
        ContentValues cv=new ContentValues();
        cv.put(KEY_Username, name);
        cv.put(KEY_Pass, password);
        ourdatabase.insert(TableName, null, cv);


    }

    public String getThat(){

        String[] columns={KEY_Username,KEY_Id,KEY_Pass};
        Cursor cursor=ourdatabase.query(TableName, columns, null, null, null, null, null);
        int rowID=cursor.getColumnIndex(KEY_Id);
        int uName=cursor.getColumnIndex(KEY_Username);
        int pass=cursor.getColumnIndex(KEY_Pass);
        String str="";
    for (cursor.moveToFirst();!cursor.isAfterLast();cursor.moveToNext()){

        str=str+"Name :"+cursor.getString(uName)+"Pass :"+cursor.getString(pass);


    }
        return str;


    }



    public class myHelper extends SQLiteOpenHelper{


String query="CREATE TABLE "+TableName+"("
        + KEY_Id+" INTEGER PRIMARY KEY AUTOINCREMENT , "+KEY_Username+" TEXT NOT NULL, "
        +KEY_Pass +" TEXT NOT NULL);";
        public myHelper(Context context) {
            super(context, DatabaseName, null, version);
            // TODO Auto-generated constructor stub
        }

        @Override
        public void onCreate(SQLiteDatabase db) {

            db.execSQL(query);
        }
  • Have you already recreated the database by e.g. uninstalling the app first? See http://stackoverflow.com/questions/21881992/when-is-sqliteopenhelper-oncreate-onupgrade-run – laalto May 14 '14 at 10:08

1 Answers1

0

This expression

KEY_Pass="pass";

says that KEY_Pass is the Java name for the column, the SQL name for the field is "pass". You'll need to create a table with field name pass, not KEY_Pass.

Lie Ryan
  • 62,238
  • 13
  • 100
  • 144