Android SQLiteException:没有这样的列:firstname(代码1):
我正在处理数据库,我有以下DbHelper类。 我是SQLite数据库的初学者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 +
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