2016-11-23 4 views
-3

Я пытался найти, почему мое приложение падает при старте, и отладчик говорит, чтоОшибка при вставке значения в дБ

«E/SQLiteLog: (1) нет такой таблицы: Категории E/SQLiteDatabase: Ошибка вставляя Name = Салаты android.database.sqlite.SQLiteException: нет такой таблицы: Категории (код 1):, при компиляции: (?) INSERT INTO Категории (Name) VALUES»

Даже Тхо после того как я посмотрел в мой код, кажется, как и таблицы, и ошибка не должна появляться.

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

Удалите и запустите приложение снова на своем устройстве, я думаю, проблема связана с вашей версией базы данных (потому что после первого запуска вы изменили столбец таблицы, так что они не получают обновления из-за той же версии базы данных). –

+0

@ReadyAndroid Действительно. Так неудобно ... Спасибо, человек! – JasonM

ответ

0

Вы не Give пространства перед использованием TEXT этого

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

Прямо сейчас, я передаю данные только в «CREATE_CATEGORIES», и там говорится об ошибке, поэтому я сомневаюсь, что причиной ошибки является CREATE MEALS, но в любом случае спасибо. – JasonM

0

Измените значение private static final int DATABASE_VERSION = 1; к private static final int DATABASE_VERSION = 2; Может быть, вы изменили структуру базы данных и забыли обновить его таким образом. Скажите, если это сработает.

0

// Создаем объект обработчика базы данных MyDatabaseHelper dbHelperDriver = new MyDatabaseHelper (this);

// ввод категории с использованием объекта dbHelperDriver.addCategory ("TestCategory");

Смежные вопросы