android不添加列的SQLite

android不添加列的SQLite,android,sqlite,alter-table,Android,Sqlite,Alter Table,我读了一些关于类似主题的帖子,但是我找不到任何关于它的大信息。我试图向现有的数据库表中添加一列,并在contentprovider类中从中读取,但没有通过,在DBHelper类中,我按照如下方式执行ALTER表 public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { if (oldVersion<2) { db.execSQL("ALTER TABLE SongInfo A

我读了一些关于类似主题的帖子,但是我找不到任何关于它的大信息。我试图向现有的数据库表中添加一列,并在contentprovider类中从中读取,但没有通过,在DBHelper类中,我按照如下方式执行ALTER表

public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    if (oldVersion<2) {
        db.execSQL("ALTER TABLE SongInfo ADD COLUMN playcount INTEGER DEFAULT 0");
    }       
}
public void onUpgrade(SQLiteDatabase db,int-oldVersion,int-newVersion){
如果(旧版本尝试


您是否尝试在sql语句的末尾添加
?是的,它也是这样做的,是否有方法进行更改并在表上进行物理检查(如果已完成)?我知道在模拟器上,您可以检查DDM,但我在哪里可以在手机内查找表…@AndreyArias您可以运行查询以返回所有结果如果您希望查看表中的内容,请从表中删除。无需尝试在电话中实际查看。更相关的是,我以前遇到过此问题,无法解决它。我没有更新现有表,而是被迫删除表并重新创建。这并不有趣,您使用了drop table,然后通过调用o从头开始创建表n创建并添加所需的额外列?如果这是我得到的结果,则在运行查询以检索表中的所有结果之后,可以执行此操作以检查是否已创建该列:if(cursor.getColumnIndex(“playcount”)>=0{…}这段代码没有成功,我遇到的问题是,当试图从ContentProvider检索它时,它在db.execSQL()上没有可用列设置断点行。可能您的DB已经是版本2了吗?没有什么好运气,是否还有一行代码我必须在其他地方编写,以使表可写,以便代码能够很好地执行?我有DBHelper类和ContentProvider类我对此文本有点怀疑:“我的版本号是1,当我运行它时,它得到的列playcount不存在,我试图通过在contentProvider类上调用来获取该列”。这是什么意思“我试图通过在contentProvider类上调用来获取该列”?客户端代码(UI)最好使用ContentResolver。您是否已将数据库的版本号从1更改为2?如果更改,onUpgrade将自动运行。请杀了我,我刚刚将版本号变量从1更改为2,并且成功了…非常感谢!!
db.beginTransaction();
db.execSQL("...");
db.setTransactionSuccessful();