2013-06-06 2 views
0

Я прочитал несколько тем по темам, подобным этому, однако я не смог найти на нем большой информации. Я пытаюсь добавить столбец в существующую таблицу базы данных, и читать из него на классе контент-провайдера, но он не собирается через, по классу DBHelper я делаю СТОЛ ALTER следующимSQLite с андроидом, не добавляющим столбец

public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
    if (oldVersion<2) { 
     db.execSQL("ALTER TABLE SongInfo ADD COLUMN playcount INTEGER DEFAULT 0"); 
    }  
} 

мою версию число равно 1, и когда я запускаю его, он получает столбец playcount не существует, я пытаюсь получить столбец, вызвав его на класс contentProvider, есть ли что-то еще? мне нужно обновить в другой части кода или, предположим, принять ALTER TABLE и просто сделать столбец, читаемый с начала программы, спасибо.

+0

сделали вы попробуйте добавить ',' в конце вашего заявления SQL? – waqaslam

+0

Да и он делает то же самое, есть ли способ сделать это изменение и проверить физически на столе, если это было сделано? Я знаю, что на эмуляторе вы можете проверить DDMS, но где я могу найти таблицу внутри моего мобильного телефона ... –

+0

@AndreyArias вы можете просто запустить запрос, чтобы вернуть все результаты из таблицы, если вы хотите просмотреть его содержимое. Не нужно пытаться и фактически просматривать его в телефоне. На более близком примечании, у меня была эта проблема раньше и не могла ее решить. Вместо того, чтобы обновлять существующую таблицу, мне пришлось отказаться от таблицы и воссоздать ее. Это было не весело –

ответ

0

попробовать

db.beginTransaction(); 
db.execSQL("..."); 
db.setTransactionSuccessful(); 
+0

Не повезло с этой частью кода, проблема, с которой я столкнулась, - это попытаться извлечь ее из ContentProvider, у нее нет этого столбца. –

+0

попробуйте установить точку останова на строке db.execSQL(). Может быть, вы DB уже версия 2? – Y2i

+0

Не повезло ни с чем, есть ли еще одна строка кода, которую я должен написать где-нибудь еще, чтобы сделать таблицу пригодной для записи для успешного выполнения кода? У меня есть класс DBHelper и класс ContentProvider –

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