2016-11-23 4 views
-3

Einfügen habe ich versucht, warum Abstürze beim Start meiner App zu finden, und Debugger sagen, dassFehler beim Wert in db

„E/SQLiteLog: (1) ein solche Tabelle: Kategorien E/SQLiteDatabase: Fehler-Namen Einfügen = Salate android.database.sqlite.SQLiteException: keine solche Tabelle: Kategorien (Code 1):, beim Kompilieren: INSERT INTO Kategorien (Name) VALUES (?) "

Auch nachdem ich in meinen Code geschaut habe, scheint es Wie die Tabelle Kategorien gemacht wird und Fehler sollte nicht angezeigt werden.

public class DatabaseHandler extends SQLiteOpenHelper { 

// All Static variables 
// Database Version 
private static final int DATABASE_VERSION = 1; 

// Database Name 
private static final String DATABASE_NAME = "contactsManager"; 

// Contacts table name 
private static final String TABLE_CONTACTS = "contacts"; 

// Contacts Table Columns names 
private static final String KEY_ID = "id"; 
private static final String KEY_NAME = "name"; 
private static final String KEY_PH_NO = "phone_number"; 

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

// Creating Tables 
@Override 
public void onCreate(SQLiteDatabase db) { 
    String CREATE_CONTACTS_TABLE = "CREATE TABLE " + TABLE_CONTACTS + "(" 
      + KEY_ID + " INTEGER PRIMARY KEY," + KEY_NAME + " TEXT," 
      + KEY_PH_NO + " TEXT" + ")"; 
    db.execSQL(CREATE_CONTACTS_TABLE); 
} 

// Upgrading database 
@Override 
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
    // Drop older table if existed 
    db.execSQL("DROP TABLE IF EXISTS " + TABLE_CONTACTS); 

    // Create tables again 
    onCreate(db); 
} 
+1

Deinstallieren Sie die App und führen Sie die App erneut auf Ihrem Gerät aus. Ich denke, das Problem hängt mit Ihrer Datenbankversion zusammen (weil Sie nach der ersten Ausführung Änderungen in der Tabellenspalte hatten, so dass sie aufgrund Ihrer Datenbankversion nicht aktualisiert werden). –

+0

@ReadyAndroid Tatsächlich. So peinlich ... Danke Mann! – JasonM

Antwort

0

Sie haben keinen Raum geben, bevor TEXT Verwendung dieses

private static final String CREATE_MEALS = "CREATE TABLE " 
    + Meals + "(" + KEY_ID + " INTEGER PRIMARY KEY," + mealsName 
    + " TEXT unique," + desc + " TEXT," + size + " TEXT," 
    + price + " TEXT" + ")"; 
+0

Im Moment übergebe ich Daten nur an "CREATE_CATEGORIES" und dort steht ein Fehler, also bezweifle ich, dass der Fehler CREATE MEALS an dieser Stelle verursacht, aber trotzdem danke. – JasonM

0

Ändern Sie den Wert von private static final int DATABASE_VERSION = 1;-private static final int DATABASE_VERSION = 2; Vielleicht haben Sie die Datenbankstruktur geändert und vergessen haben, es auf diese Weise zu aktualisieren. Sag mir, ob es funktioniert hat.

0

// Objekt des Datenbank-Handlers erstellen MyDatabaseHelper dbHelperDriver = new MyDatabaseHelper (this);

// Kategorie mit dem Objekt einfügen dbHelperDriver.addCategory ("TestCategory");

Verwandte Themen