2017-02-06 8 views
-1
 DataHelper.java 


     /** 
     * Created by Home on 2/3/2017. 
     */ 
     public class DataHelper extends SQLiteOpenHelper { 
      public static final String DATABASE_NAME = "Student.db"; 
      public static final String TABLE_NAME = "Student_info"; 
      public static final String COL_3 = "_Id"; 

      public static final String COL_1 = "EmailId"; 
      public static final String COL_2 = "Password"; 





      public DataHelper(Context context) { 
       super(context, DATABASE_NAME, null, 1); 


      } 

      @Override 
      public void onCreate(SQLiteDatabase db) { 
       String sql = "Create table " + TABLE_NAME + "(_Id INTEGER PRIMARY KEY AUTOINCREMENT , EmailId TEXT ,Password TEXT)"; 

         //db.execSQL("CREATE TABLE " + PERSON_TABLE_NAME + "(" + 
          //  PERSON_COLUMN_ID + " INTEGER PRIMARY KEY, " + 
          // PERSON_COLUMN_NAME + " TEXT, " + 
           // PERSON_COLUMN_GENDER + " TEXT, " + 
           //PERSON_COLUMN_AGE + " INTEGER)" 
         //); 
       db.execSQL(sql); 

      } 

      @Override 
      public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
       db.execSQL("DROP TABLE IF EXISTS" + TABLE_NAME); 
       onCreate(db); 

      } 


      public Boolean insertData(String emailId, String password){ 
       SQLiteDatabase db = this.getWritableDatabase(); 
       ContentValues contentValues = new ContentValues(); 
       contentValues.put(COL_1, emailId); 
       contentValues.put(COL_2, password); 
       long result = db.insert(TABLE_NAME, null, contentValues); 

       if(result != -1){ 
        return true; 
       }else { 
        return false; 
       } 

      } 


     } 





     //This is the MainActivity Class 

     MainActivity.java 


     public class MainActivity extends AppCompatActivity { 
      DataHelper db; 
      EditText editText, editText1; 
      Button button; 

      @Override 
      protected void onCreate(Bundle savedInstanceState) { 
       super.onCreate(savedInstanceState); 
       setContentView(R.layout.activity_main); 

       db = new DataHelper(this); 


       editText = (EditText)findViewById(R.id.editText); 
       editText1 = (EditText)findViewById(R.id.editText1); 
       button = (Button) findViewById(R.id.button); 

       button.setOnClickListener(new View.OnClickListener() { 
        @Override 
        public void onClick(View v) { 
         Boolean result = db.insertData(editText.getText().toString(), editText1.getText().toString()); 
         if(result == true) { 
          Toast toast = Toast.makeText(MainActivity.this, "Login Successful", Toast.LENGTH_SHORT); 
          toast.show(); 
         }else{ 
          Toast toast = Toast.makeText(MainActivity.this, "Login UnSuccessful", Toast.LENGTH_SHORT); 
          toast.show(); 
         } 
        } 
       }); 



      } 
     } 

В DataHelper.java классе метод insertData продолжает возвращаться ложным. Я искал подобные проблемы, но не решил. Я не думаю, что в MainActivity.java есть ошибка. Я новичок в андроиде. Спасибо за помощь.android.database.sqlite.SQLiteException: таблица Student_info не имеет столбец с именем EMAILID (код 1):

+0

Возможно, вам нужно будет отобразить структуру таблицы –

+0

Строка sql = "Создать таблицу" + TABLE_NAME + "(_" + Id + "INTEGER PRIMARY KEY AUTOINCREMENT," + COL_1 + "TEXT," + COL_2 + " ТЕКСТ) "; – Pranita

ответ

0

Удалите приложение вручную, чтобы очистить старую таблицу Попробовать это (я думаю, что вы забыли поставить точку с запятой в строке SQL)

String sql = "Create table " + TABLE_NAME + "(_Id INTEGER PRIMARY KEY AUTOINCREMENT , EmailId TEXT ,Password TEXT);" 
0

Попробуйте очистить данные для приложения, так что база данных создается заново. Возможно, он был создан ранее с разными столбцами.