Android SQLiteException:没有这样的列:firstname(代码1):

Android SQLiteException:没有这样的列:firstname(代码1):,android,performance,android-layout,android-intent,Android,Performance,Android Layout,Android Intent,我正在处理数据库,我有以下DbHelper类。 我是SQLite数据库的初学者 public class DbHelper extends SQLiteOpenHelper { private static final int DATABASE_VERSION = 1; private static final String CREATE_TABLE = "CREATE TABLE "+DbContract.TABLE_NAME +

我正在处理数据库,我有以下DbHelper类。 我是SQLite数据库的初学者

public class DbHelper extends SQLiteOpenHelper
{
    private static final int DATABASE_VERSION = 1;
    private static final String CREATE_TABLE =
            "CREATE TABLE "+DbContract.TABLE_NAME
            +"("+DbContract.COLUMN_ID +" INTEGER PRIMARY KEY AUTOINCREMENT,"
            +DbContract.COLUMN_FIRST_NAME+" text,"
            +DbContract.COLUMN_LAST_NAME+" text,"
            +DbContract.COLUMN_MOBILE_NUMBER+" text,"
            +DbContract.COLUMN_SYNC_STATUS+" integer)";

    private static final String DROP_TABLE = "drop table if exists "+DbContract.TABLE_NAME;

    public DbHelper(Context context)
    {
        super(context,DbContract.DATABASE_NAME, null, DATABASE_VERSION);
    }

    @Override
    public void onCreate(SQLiteDatabase db)
    {
        db.execSQL(CREATE_TABLE);
        //Log.d("createTable", "Table is Creater: ");

    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
    {
        db.execSQL(DROP_TABLE);
        onCreate(db);
    }

    public void saveToLocalDatabase(String Fname, String Lname, String MobileNumber,int SyncStatus,SQLiteDatabase sqLiteDatabase)
    {
        ContentValues contentValues = new ContentValues();
        contentValues.put(DbContract.COLUMN_FIRST_NAME,Fname);
        contentValues.put(DbContract.COLUMN_LAST_NAME,Lname);
        contentValues.put(DbContract.COLUMN_MOBILE_NUMBER,MobileNumber);
        contentValues.put(DbContract.COLUMN_SYNC_STATUS,SyncStatus);

        sqLiteDatabase.insert(DbContract.TABLE_NAME,null,contentValues);
    }

    public Cursor readFromLocalDatabase(SQLiteDatabase sqLiteDatabase)
    {
        String[] projection = {DbContract.COLUMN_FIRST_NAME, DbContract.COLUMN_LAST_NAME, DbContract.COLUMN_MOBILE_NUMBER, DbContract.COLUMN_SYNC_STATUS};

        return (sqLiteDatabase.query(DbContract.TABLE_NAME,projection,null,null,null,null,null));
    }

    public void updateLocalDatabase(String Fname, String Lname, String MobileNumber, int SyncStatus,SQLiteDatabase sqLiteDatabase)
    {
        ContentValues contentValues = new ContentValues();
        contentValues.put(DbContract.COLUMN_SYNC_STATUS, SyncStatus);

        String selection = DbContract.COLUMN_FIRST_NAME + " LIKE ?" +DbContract.COLUMN_LAST_NAME+" LIKE ?" +DbContract.COLUMN_MOBILE_NUMBER+" LIKE ?";
                String[] selection_args = {Fname,Lname,MobileNumber};
                sqLiteDatabase.update(DbContract.TABLE_NAME, contentValues, selection, selection_args);
    }
    }
航海日志显示:

日志上写得很清楚

 Caused by: android.database.sqlite.SQLiteException: no such column: firstname (code 1): , while compiling: SELECT firstname, lastname, mobilenumber, syncstatus FROM contactinfo

你们能检查一下你们的表结构吗,它有firstname列吗?请检查所有列。

如果您稍后添加了列,则需要卸载应用程序并重新安装。
 Caused by: android.database.sqlite.SQLiteException: no such column: firstname (code 1): , while compiling: SELECT firstname, lastname, mobilenumber, syncstatus FROM contactinfo