2017-04-03 3 views
-3

Ich versuche gerade, Daten aus meiner Datenbank anzuzeigen, die ich gerade erstellt habe. Aber wenn ich versuche, es in meinem Telefon zu starten, hört es immer auf. Dies ist mein CodeDie App wurde gestoppt, während versucht wurde, Daten aus der Datenbank anzuzeigen. Android Studio

Benutzer bearbeiten Screen.java

TextView textView; 
    String text = " "; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_edit_users); 

     // added 

     textView = (TextView) findViewById(R.id.textView); 

     DatabaseHelper db = new DatabaseHelper(this); 

     // inserting users 
     db.addUsers(new Users("1", "Julian", "[email protected]",  "seguiran")); 

     // reading and displaying all users (you can remove it on where it should be placed 

     List<Users> users = db.getAllUsers(); 

     for (Users u : users) 
     { 
      String log = "ID number:" + u.getIDnumber() + "Name:" + u.getName() + 
        "Email:" + u.getEmail() + "Password:" + u.getPassword(); 

      text = text + log; 
     } 

     textView.setText(text); 
    } 

DatabaseHelper.java

public DatabaseHelper(Context context) { 
     super(context, DATABASE_NAME, null, DATABASE_VERSION); 
    } 


    @Override 
    public void onCreate(SQLiteDatabase db) { 
     String CREATE_USERS_TABLE = "CREATE TABLE" + TABLE_USERS + "(" 
       + KEY_IDNUMBER + "INTEGER PRIMARY KEY," + KEY_NAME + "TEXT," 
       + KEY_EMAIL + "TEXT," + KEY_PASSWORD + "TEXT," + ")"; 

     db.execSQL(CREATE_USERS_TABLE); 

    } 

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

    } 

    void addUsers (Users users) { 
     SQLiteDatabase db = this.getWritableDatabase(); 

     ContentValues values = new ContentValues(); 
     values.put("KEY_NAME", users.getName()); 
     values.put("KEY_EMAIL", users.getEmail()); 
     values.put("KEY_PASSWORD", users.getPassword()); 

     db.insert(TABLE_USERS, null, values); 
     db.close(); 

    } 

    Users getUsers (int idnumber) { 
     SQLiteDatabase db = this.getWritableDatabase(); 

     Cursor cursor = db.query(TABLE_USERS, new String[] {KEY_IDNUMBER, KEY_NAME, KEY_EMAIL, KEY_PASSWORD}, KEY_IDNUMBER 
     + "=?", new String[] {String.valueOf(idnumber)}, null, null, null, null); 

     if (cursor != null){ 
      cursor.moveToFirst(); 
     } 

     Users users = new Users (Integer.parseInt(cursor.getString(0)),  cursor.getString(1), cursor.getString(2), cursor.getString(3)); 

     return users; 


    } 

    public List<Users> getAllUsers(){ 
     List<Users> usersList = new ArrayList<>(); 

     String selectQuery ="SELECT * FROM " + TABLE_USERS; 

     SQLiteDatabase db = this.getWritableDatabase(); 
     Cursor cursor = db.rawQuery(selectQuery, null); 

     if (cursor.moveToFirst()) { 
      do { 
       Users users = new Users(); 
       users.setIDnumber(Integer.parseInt(cursor.getString(0))); 
       users.setName(cursor.getString(1)); 
       users.setEmail(cursor.getString(2)); 
       users.setPassword(cursor.getString(3)); 

       usersList.add(users); 
      } while (cursor.moveToNext()); 
     } 

     return usersList; 
    } 

    public int updateUsers (Users users) { 
     SQLiteDatabase db = this.getWritableDatabase(); 

     ContentValues values = new ContentValues(); 
     values.put("KEY_NAME", users.getName()); 
     values.put("KEY_EMAIL", users.getEmail()); 
     values.put("KEY_PASSWORD", users.getPassword()); 

     return db.update(TABLE_USERS, values, KEY_IDNUMBER + "=?", 
       new String[]{String.valueOf(users.getIDnumber())}); 

    } 

    public void deleteUsers (Users users) { 

     SQLiteDatabase db = this.getWritableDatabase(); 
     db.delete(TABLE_USERS, KEY_IDNUMBER + "=?", 
     new String[]{String.valueOf(users.getIDnumber())}); 

     db.close(); 
    } 

    public int getUsersCount() { 

     String countQuery = "SELECT * FROM " + TABLE_USERS; 
     SQLiteDatabase db = this.getWritableDatabase(); 
     Cursor cursor = db.rawQuery(countQuery, null); 
     cursor.close(); 

     return cursor.getCount(); 
    } 

Users.java

public class Users 
    { 
     int IDnumber; 
     String Name; 
     String Email; 
     String Password; 

     public Users(int i, String string, String cursorString, String s) { 
      this.Name = Name; 
      this.Email = Email; 
      this.Password = Password; 
     } 

     public Users() { 

     } 

     public Users(String s, String julian, String cursorString, String seguiran) { 
     } 

     public int getIDnumber() { 
      return IDnumber; 
     } 

     public void setIDnumber(int IDnumber) { 
      this.IDnumber = IDnumber; 
     } 

     public String getName() { 
      return Name; 
     } 

     public void setName(String name) { 
      Name = name; 
     } 

     public String getEmail() { 
      return Email; 
     } 

     public void setEmail(String email) { 
      Email = email; 
     } 

     public String getPassword() { 
      return Password; 
     } 

     public void setPassword(String password) { 
      Password = password; 
     } 
    } 

Logcat

4-03 12:14:14.591 2418-2418/com.example.aadre.saferhomeph V/FA: onActivityCreated 
04-03 12:14:14.651 2418-2418/com.example.aadre.saferhomeph E/SQLiteLog: (1) near "TABLEusers": syntax error 
04-03 12:14:14.651 2418-2418/com.example.aadre.saferhomeph D/AndroidRuntime: Shutting down VM 
04-03 12:14:14.651 2418-2418/com.example.aadre.saferhomeph W/dalvikvm: threadid=1: thread exiting with uncaught exception (group=0x41d85c08) 
04-03 12:14:14.671 2418-2418/com.example.aadre.saferhomeph E/AndroidRuntime: FATAL EXCEPTION: main 
                      Process: com.example.aadre.saferhomeph, PID: 2418 
                      java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.aadre.saferhomeph/com.example.aadre.saferhomeph.Edit_Users_Screen}: android.database.sqlite.SQLiteException: near "TABLEusers": syntax error (code 1): , while compiling: CREATE TABLEusers(idnumber INTEGER PRIMARY KEY, nameTEXT, email TEXT, password TEXT) 
                       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2339) 
                       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2391) 
                       at android.app.ActivityThread.access$900(ActivityThread.java:166) 
                       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1281) 
                       at android.os.Handler.dispatchMessage(Handler.java:102) 
                       at android.os.Looper.loop(Looper.java:146) 
                       at android.app.ActivityThread.main(ActivityThread.java:5511) 
                       at java.lang.reflect.Method.invokeNative(Native Method) 
                       at java.lang.reflect.Method.invoke(Method.java:515) 
                       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283) 
                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099) 
                       at dalvik.system.NativeStart.main(Native Method) 
                       Caused by: android.database.sqlite.SQLiteException: near "TABLEusers": syntax error (code 1): , while compiling: CREATE TABLEusers(idnumber INTEGER PRIMARY KEY, nameTEXT, email TEXT, password TEXT) 
                       at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method) 
                       at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:1113) 
                       at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:690) 
                       at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588) 
                       at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58) 
                       at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:31) 
                       at android.database.sqlite.SQLiteDatabase.executeSql(SQLiteDatabase.java:1806) 
                       at android.database.sqlite.SQLiteDatabase.execSQL(SQLiteDatabase.java:1737) 
                       at com.example.aadre.saferhomeph.DatabaseHelper.onCreate(DatabaseHelper.java:38) 
                       at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:252) 
                       at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:164) 
                       at com.example.aadre.saferhomeph.DatabaseHelper.addUsers(DatabaseHelper.java:50) 
                       at com.example.aadre.saferhomeph.Edit_Users_Screen.onCreate(Edit_Users_Screen.java:33) 
                       at android.app.Activity.performCreate(Activity.java:5322) 
                       at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1093) 
                       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2303) 
                       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2391)  
                       at android.app.ActivityThread.access$900(ActivityThread.java:166)  
                       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1281)  
                       at android.os.Handler.dispatchMessage(Handler.java:102)  
                       at android.os.Looper.loop(Looper.java:146)  
                       at android.app.ActivityThread.main(ActivityThread.java:5511)  
                       at java.lang.reflect.Method.invokeNative(Native Method)  
                       at java.lang.reflect.Method.invoke(Method.java:515)  
                       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283)  
                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099)  
                       at dalvik.system.NativeStart.main(Native Method)  
04-03 12:14:14.791 2418-2430/com.example.aadre.saferhomeph V/MediaPlayer: message received msg=2, ext1=0, ext2=0 
04-03 12:14:14.791 2418-2430/com.example.aadre.saferhomeph V/MediaPlayer: playback complete 
04-03 12:14:14.791 2418-2430/com.example.aadre.saferhomeph V/MediaPlayer: callback application 
04-03 12:14:14.791 2418-2430/com.example.aadre.saferhomeph V/MediaPlayer: back from callback 
04-03 12:14:14.791 2418-2430/com.example.aadre.saferhomeph V/MediaPlayer: message received msg=7, ext1=0, ext2=0 
04-03 12:14:14.791 2418-2430/com.example.aadre.saferhomeph V/MediaPlayer: unrecognized message: (7, 0, 0) 
04-03 12:14:14.791 2418-2430/com.example.aadre.saferhomeph V/MediaPlayer: callback application 
04-03 12:14:14.791 2418-2430/com.example.aadre.saferhomeph V/MediaPlayer: back from callback 
04-03 12:14:19.561 2418-2456/com.example.aadre.saferhomeph W/DynamiteModule: Local module descriptor class for com.google.firebase.auth not found. 

pls help

+0

[Leider hat MyApp gestoppt. Wie kann ich das lösen?] (Http://stackoverflow.com/q/23353173/5221149) – Andreas

+0

Mögliche Duplikate von [Leider hat MyApp aufgehört. Wie kann ich das lösen?] (Http://stackoverflow.com/questions/23353173/unidymy-myapp-has-stopped-how-cani-solve-this) – Manu

Antwort

0

Remove "" nach TEXT von create table

String CREATE_USERS_TABLE = "CREATE TABLE " + TABLE_USERS + "(" 
     + KEY_IDNUMBER + " INTEGER PRIMARY KEY," + KEY_NAME + " TEXT," 
     + KEY_EMAIL + " TEXT," + KEY_PASSWORD + " TEXT" + ")"; 

db.execSQL(CREATE_USERS_TABLE); 
+0

immer noch App hat zu stoppen und zu schließen :( –

+0

posten Sie Ihre logcat – user2025187

+0

Edited. Added Logcat –

0

Abfrage auf diese Weise erstellen schreiben String CREATE_USERS_TABLE = "Tabelle erstellen, wenn nicht contactmaster (id integer Primärschlüssel AUTOINCREMENT, Name varchar existiert (50), Mob Nummer (10)) ";

+0

Es schließt sich automatisch, nachdem ich auf den Button geklickt habe :( –

+0

welcher Fehler bekommst du? –

Verwandte Themen