【问题标题】:Unable to save after adding new column of sqlite database [duplicate]添加sqlite数据库的新列后无法保存[重复]
【发布时间】:2017-12-13 16:52:16
【问题描述】:

在我将新列添加到我的 sqlite 后,我在保存数据时遇到了一些困难。例如下面示例中的 column_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 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");

该程序“以前可以正常工作并保存良好”,但是当我添加新数据时它无法保存。当我删除附加代码(COLUMN_CONTACT_GRP 相关代码)时,它将再次工作,能够在我的列表视图上正确保存和显示名称和编号。任何人都可以指导我应该在哪里寻找错误?

【问题讨论】:

    标签: android sqlite android-sqlite


    【解决方案1】:

    单词“组”是SQLite关键字,使用另一个关键字,检查这个link

    【讨论】:

      【解决方案2】:

      你应该使用 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;";
      

      【讨论】:

        【解决方案3】:

        增加您的数据库版本并在 onUpgrade 方法中写入查询以在表中添加一列。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2014-08-15
          • 1970-01-01
          • 1970-01-01
          • 2021-09-12
          • 2013-09-04
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多