这个问题在这里已有答案:
我正在创建一个注册应用程序,当我单击注册按钮时,它表示用户表不存在。
我已经更新数据库版本并卸载应用程序,但它仍然说它不存在。它甚至在浏览器上说该表就在那里。有人帮忙吗?
public static final String DATABASE_NAME = "FitnessApp.db";
public static final String TABLE_USER = "user_table";
public static final String USER_COL_1 = "user_id";
public static final String USER_COL_2 = "user_first_name";
public static final String USER_COL_3 = "user_last_name";
public static final String USER_COL_4 = "user_age";
public static final String USER_COL_5 = "user_email";
public static final String USER_COL_6 = "user_password";
public static final String USER_COL_7 = "user_confirm_password";
public DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, 1);
SQLiteDatabase db = this.getWritableDatabase();
this.mContext = context;
}
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table " + TABLE_USER + " (user_id INTEGER PRIMARY
KEY AUTOINCREMENT, " +
"user_first_name TEXT," +
"user_last_name TEXT," +
"user_age TEXT," +
"user_email TEXT," +
"user_password TEXT," +
"user_confirm_password TEXT)");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int
newVersion) {
db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);
db.execSQL("DROP TABLE IF EXISTS " + TABLE_USER);
}
public boolean insertUserData(String user_first_name, String user_last_name, String user_age, String user_email,
String user_password, String user_confirm_password){
SQLiteDatabase db = this.getWritableDatabase();
ContentValues contentValues = new ContentValues();
contentValues.put(USER_COL_2,user_first_name);
contentValues.put(USER_COL_3,user_last_name);
contentValues.put(USER_COL_4,user_age);
contentValues.put(USER_COL_5,user_email);
contentValues.put(USER_COL_6,user_password);
contentValues.put(USER_COL_7,user_confirm_password);
long result = db.insert(TABLE_USER, null, contentValues);
if(result == -1)
return false;
else
return true;
}
public Boolean checkUserData(String user_email){
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery("Select * from TABLE_USER where USER_COL_5=?", new String[]{user_email});
if(cursor.getCount() > 0) return false;
else return true;
}
当我运行此代码时,我从logcat获取此代码:
android.database.sqlite.SQLiteException: no such table: TABLE_USER (code 1): , while compiling: Select * from TABLE_USER where USER_COL_5=? 我已经尝试更新数据库并卸载应用程序。
发布于 2019-04-15 16:51:01
当您查询时,
db.rawQuery("Select * from TABLE_USER where USER_COL_5=?", new String[]{user_email});
你需要传递TABLE_USER值,所以只需将其更改为:
db.rawQuery("Select * from " + TABLE_USER + " where USER_COL_5=?", new String[]{user_email});
https://stackoverflow.com/questions/-100006598
复制相似问题