Android 添加sqlite数据库的新列后无法保存
在将新列添加到sqlite后,我在保存数据时遇到了一些困难。e、 g下例中的列_contact_grp 在我的合同课上:Android 添加sqlite数据库的新列后无法保存,android,sqlite,android-sqlite,Android,Sqlite,Android Sqlite,在将新列添加到sqlite后,我在保存数据时遇到了一些困难。e、 g下例中的列_contact_grp 在我的合同课上: public final static String _ID = BaseColumns._ID; public final static String COLUMN_CONTACT_NAME = "name"; public final static String COLUMN_CONTACT_NUMBER = "number"; public f
public final static String _ID = BaseColumns._ID;
public final static String COLUMN_CONTACT_NAME = "name";
public final static String COLUMN_CONTACT_NUMBER = "number";
public final static String COLUMN_CONTACT_GRP = "group";
在我的Dbhelper类中:
@Override
public void onCreate(SQLiteDatabase db) {
// Create a String that contains the SQL statement to create the pets table
String SQL_CREATE_CONTACTS_TABLE = "CREATE TABLE " + NameEntry.TABLE_NAME + " ("
+ NameEntry._ID + " INTEGER PRIMARY KEY AUTOINCREMENT, "
+ NameEntry.COLUMN_CONTACT_NAME + " TEXT NOT NULL, "
+ NameEntry.COLUMN_CONTACT_NUMBER + " TEXT,"
+ NameEntry.COLUMN_CONTACT_GRP + " TEXT );";
// Execute the SQL statement
db.execSQL(SQL_CREATE_CONTACTS_TABLE);
}
在我的主要活动中:
ContentValues values = new ContentValues();
values.put(NameEntry.COLUMN_CONTACT_NAME, "Name");
values.put(NameEntry.COLUMN_CONTACT_NUMBER, "1234");
values.put(NameEntry.COLUMN_CONTACT_GRP, "testing");
该程序“过去工作和保存良好”,但在我添加新数据时保存失败。当我删除附加代码(列_CONTACT _GRP相关代码)时,它将再次工作,能够在我的listview上正确保存和显示姓名和号码。任何人都可以指导我在哪里查找错误 单词“组”是SQLite关键字,请使用另一个关键字,选中此项单词“组”是SQLite关键字,请使用另一个关键字,选中此项增加数据库版本并在onUpgrade方法中写入查询以在表中添加列。增加数据库版本并在onUpgrade方法中写入查询以在表中添加列。应使用方法 当数据库需要升级时调用。实施 应该使用此方法删除表、添加表或执行其他操作 它需要升级到新的架构版本 示例
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
if (oldVersion < 1) { // Add your Version .
db.execSQL(DATABASE_ALTER);
}
}
private static final String DATABASE_ALTER = "ALTER TABLE "
+ TABLE_NAME + " ADD COLUMN " + COLUMN_ONE + " string;";
@覆盖
public void onUpgrade(SQLiteDatabase db,int-oldVersion,int-newVersion){
如果(旧版本<1){//添加您的版本。
execSQL(数据库改变);
}
}
私有静态最终字符串数据库\u ALTER=“ALTER TABLE”
+表_NAME+“添加列”+列_ONE+“字符串;”;
您应该使用方法
当数据库需要升级时调用。实施
应该使用此方法删除表、添加表或执行其他操作
它需要升级到新的架构版本
示例
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
if (oldVersion < 1) { // Add your Version .
db.execSQL(DATABASE_ALTER);
}
}
private static final String DATABASE_ALTER = "ALTER TABLE "
+ TABLE_NAME + " ADD COLUMN " + COLUMN_ONE + " string;";
@覆盖
public void onUpgrade(SQLiteDatabase db,int-oldVersion,int-newVersion){
如果(旧版本<1){//添加您的版本。
execSQL(数据库改变);
}
}
私有静态最终字符串数据库\u ALTER=“ALTER TABLE”
+表_NAME+“添加列”+列_ONE+“字符串;”;