0
public void onCreate(SQLiteDatabase db) {
   String CREATE_TABLE= "CREATE TABLE " + Constants.TABLE1_NAME + "(" +
           Constants.KEY_ID + " INTEGER PRIMARY KEY, "+Constants.EMP_NAME+" Text, " + Constants.PHONE_NUMBER_NAME+" TEXT, " + Constants.EMP_ID+" INT ); ";
    db.execSQL(CREATE_TABLE);
}

public int getEmpId(){
    int EmpId=0;
    SQLiteDatabase db=this.getReadableDatabase();

    String query="SELECT "+Constants.EMP_ID +" FROM "+Constants.TABLE1_NAME;
    Cursor cursor=db.rawQuery(query,null);
    if(cursor.moveToFirst())
    {EmpId=cursor.getInt(0);}

    cursor.close();
    db.close();

    return EmpId;

}

android.database.sqlite.SQLiteException: no such column: id (code 1): , while compiling: SELECT id FROM info at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method) at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:889) at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:500) at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588) at android.database.sqlite.SQLiteProgram.(SQLiteProgram.java:58) at android.database.sqlite.SQLiteQuery.(SQLiteQuery.java:37) at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:44) at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1316) at android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1255) at Data.DatabaseHandeler$override.getEmpId(DatabaseHandeler.java:61) at Data.DatabaseHandeler$override.access$dispatch(DatabaseHandeler.java) at Data.DatabaseHandeler.getEmpId(DatabaseHandeler.java:0) at imageview.example.maged.taskforseautomation.MainActivity$override.suresignin(MainActivity.java:60) at imageview.example.maged.taskforseautomation.MainActivity$override.onClick(MainActivity.java:75) at imageview.example.maged.taskforseautomation.MainActivity$override.access$dispatch(MainActivity.java) at imageview.example.maged.taskforseautomation.MainActivity.onClick(MainActivity.java:0) at android.view.View.performClick(View.java:4780) at android.view.View$PerformClick.run(View.java:19866) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5254) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)

ylka
  • 293
  • 8
  • 14
  • If you added the column only later, you can uninstall your app to remove the old database and create a new one with the updated schema. – laalto Jul 06 '17 at 13:41

2 Answers2

0

In your table you did not create colum id, and you are specifying in your SQL query, so thats why its showing error. Try loggin your table create query and watch clearly

Yasir Ameen
  • 65
  • 2
  • 9
  • can you write your mean answer ?? – maged abdelkhalik Jul 06 '17 at 14:11
  • you can visit here, it will give you the complete info aboutt SQLite http://yasirameen.com/2016/02/android-sqlite-database-login-system/ Or you can use Realm http://yasirameen.com/2016/02/android-sqlite-database-login-system/ – Yasir Ameen Jul 06 '17 at 14:45
0

use this as your select statement String query="SELECT "+Constants.KEY_ID +" FROM "+Constants.TABLE1_NAME;

There is no column Constants.EMP_IDin your database schema. Check your Create table command.

krishan
  • 1,141
  • 1
  • 12
  • 24
  • i made that but i didn't receive any data public class MainActivity extends private void suresignin(){ Information info=new Information(); String empId=EmpID.getText().toString(); int EMPID=Integer.parseInt(empId); info.setEmpId(EMPID); if(db.getEmpId()==info.getEmpId()){ Log.v("this is True data","good again"); Toast.makeText(getApplicationContext(),db.getEmpId(),Toast.LENGTH_LONG).show(); } } – maged abdelkhalik Jul 06 '17 at 14:27
  • Did you insert something in the database? Where is your insert function? – krishan Jul 06 '17 at 17:02
  • private void SaveInfoTodb(){ Information info=new Information(); String empId=EmpID.getText().toString(); int EMPID=Integer.parseInt(empId); info.setEmpName(empName.getText().toString()); info.setEmpPhone(PhoneNum.getText().toString()); info.setEmpId(EMPID); db.addinfo(info); db.close(); } – maged abdelkhalik Jul 06 '17 at 18:04
  • need to see your db.addinfo() method? Or else verify that db has the entry by pulling out the database. – krishan Jul 07 '17 at 05:47
  • public void addinfo(Information info){ SQLiteDatabase db=this.getWritableDatabase(); ContentValues values=new ContentValues(); values.put(Constants.EMP_NAME,info.getEmpName()); values.put(Constants.KEY_ID,info.getEmpId()); values.put(Constants.PHONE_NUMBER_NAME,info.getEmpPhone()); db.insert(Constants.TABLE1_NAME,null,values); Log.v("first added in database","good"); db.close(); } – maged abdelkhalik Jul 08 '17 at 05:22
  • whare are you?? – maged abdelkhalik Jul 11 '17 at 21:01