2016-06-03 10 views
-1

Wenn ich versuche, Daten in die Datenbank einzureichen, stürzt die App ab.Probleme beim Einfügen in DB

Hier sind die Teile der Java-Datei zum Erstellen und Einfügen von Daten in die Datenbank.

Meine Contract.java Klasse hat die folgenden Informationen:

public class Contract { 
    public static abstract class customReminder{ 
     public static final String TABLE_NAME = "CUSTOM_REMINDER"; 
     public static final String ID = "ID"; 
     public static final String TITLE = "TITLE"; 
     public static final String DESCRIPTION = "DESCRIPTION"; 
     public static final String DATE_TIME = "DATE_TIME"; 

     public static final String[] REMINDER_COLUMNS = {ID, TITLE, DESCRIPTION, DATE_TIME}; 

    } 

Meine DBHelper.java Klasse:

//SQLite statement for custom reminder table 
public static final String CUSTOM_REMINDER_TABLE = "CREATE TABLE " + Contract.customReminder.TABLE_NAME + "(" 
     + Contract.customReminder.ID + " INTEGER PRIMARY KEY AUTOINCREMENT," 
     + Contract.customReminder.TITLE + " TEXT," 
     + Contract.customReminder.DESCRIPTION + " TEXT," 
     + Contract.customReminder.DATE_TIME + " TEXT," 
     + ");"; 

@Override 
public void onCreate(SQLiteDatabase db) { 
    db.execSQL(CUSTOM_REMINDER_TABLE); 
} 

Meine CustumRemider.java Klasse:

public boolean createCustomReminder(String title, String description, String dateTime){ 
    ContentValues contentValues = new ContentValues(); 
    contentValues.put(mAllColumns[1], title); 
    contentValues.put(mAllColumns[2], description); 
    contentValues.put(mAllColumns[3], dateTime); 
    long result = mDatabase.insert(Contract.customReminder.TABLE_NAME, null, contentValues); 
    return result != -1; 
} 

ich die Datenbank auf meinem PC von Android heruntergeladen Device Monitor und öffnete es mit SQ LiteBrowser. Ich stelle fest, dass eine Tabelle android_metadata statt CUSTOM_REMINDER erstellt wird.

CREATE TABLE android_metadata (locale TEXT) 

ich weder wissen, wo die Abfrage kommt noch, warum es dies tut.

+0

Bitte senden Sie LogCat Fehler – LaurentY

+0

'erstellen android_metadata' Tabelle erzeugt wird, by Android & speichert Metadaten, die Android benötigt. Gibt es noch etwas falsch? Ein stacktrace des Absturzes wäre hilfreich – zapl

+0

Haben Sie irgendwo eine Instanz des SqliteOpenHelper erstellt? Die Tabelle wird erst erstellt, wenn Sie versuchen, die Datenbankverbindung zu öffnen –

Antwort

0

Sie müssen löschen Komma ändern ("") nach dem letzten Parameter in Tabelle Abfrage

public static final String CUSTOM_REMINDER_TABLE = "CREATE TABLE " + Contract.customReminder.TABLE_NAME + "(" 
    + Contract.customReminder.ID + " INTEGER PRIMARY KEY AUTOINCREMENT," 
    + Contract.customReminder.TITLE + " TEXT," 
    + Contract.customReminder.DESCRIPTION + " TEXT," 
    + Contract.customReminder.DATE_TIME + " TEXT" 
    + ");"; 

anstelle dieses

public static final String CUSTOM_REMINDER_TABLE = "CREATE TABLE " + Contract.customReminder.TABLE_NAME + "(" 
    + Contract.customReminder.ID + " INTEGER PRIMARY KEY AUTOINCREMENT," 
    + Contract.customReminder.TITLE + " TEXT," 
    + Contract.customReminder.DESCRIPTION + " TEXT," 
    + Contract.customReminder.DATE_TIME + " TEXT," 
    + ");";