这是我目前创建表格的代码:
@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
String CREATE_USER_TABLE = "CREATE TABLE " + TABLE_USERS + "(" + KEY_USERID + " INTEGER PRIMARY KEY,"
+ KEY_USERNAME + " TEXT," + KEY_PASSWORD
+ " TEXT" + ")";
Log.d("debug",CREATE_USER_TABLE);
db.execSQL(CREATE_USER_TABLE);
}
我想添加另一个添加数据的列,但是当我这样做时,我的应用程序崩溃了。我添加了score INT
,我更改了方法,以便为用户添加密码和用户名,我也可以添加分数,但它不起作用。做这项工作的最佳方法是什么?
另外,我希望添加另一个存储图像的表,我想将图像链接到另一个表中的每个用户。我该怎么做?
答案 0 :(得分:3)
当您通过在表中添加一些表或列来升级数据库时,您还必须在此时更改或升级,这也是更改数据库版本所必需的。
如果您要直接更新或添加任何列并尝试运行,那么它根本不会反映到您的数据库中。
因此,请确保始终升级版本并卸载旧版本的数据库,然后通过安装升级版本进行检查。
每次调用它时,都会检查此数据库和版本是否已存在。如果数据库不存在,它将通过调用onCreate()
来创建数据库,它将使用它存储数据库名称和版本号。如果确实存在,但当前版本的版本低于DATABASE_VERSION
中定义的版本,则会调用onUpgrade()
方法。
答案 1 :(得分:1)
由于该表已存在,除非先删除它,否则不能使用Create Table
,或者可以使用alter table
命令。