【发布时间】:2022-11-16 04:12:04
【问题描述】:
这是我创建数据库表的代码
public void onCreate(SQLiteDatabase db) {
String query = "CREATE TABLE " + TABLE_NAME +
"(" + COLUMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT," +
COLUMN_USERNAME + " TEXT, " +
COLUMN_PASSWORD + " INTEGER " + ")";
db.execSQL(query);
}
这是添加用户
public Boolean addUser(String username, String password){
SQLiteDatabase db = this.getWritableDatabase();
ContentValues cv = new ContentValues();
cv.put(COLUMN_USERNAME, username);
cv.put(COLUMN_PASSWORD, password);
long result = db.insert(TABLE_NAME, null, cv);
if (result == -1) {
Toast.makeText(context, "Failed", Toast.LENGTH_SHORT).show();
return false;
} else {
Toast.makeText(context, "Registration Successful!", Toast.LENGTH_SHORT).show();
return true;
}
}
每当我运行应用程序并输入用户名和密码时,它总是返回“失败”
在错误中我有这个:
E/SQLiteLog: (1)
E/SQLiteDatabase: Error inserting table USERS has no column named username (Sqlite code 1 SQLITE_ERROR): , while compiling: INSERT INTO USERS(username,password) VALUES (?,?), (OS error - 2:No such file or directory)
我到处看,我知道有类似的问题,但我似乎找不到我的错误。请帮忙
【问题讨论】:
-
如果您的应用程序的早期版本存在旧版本的数据库 - 您可以卸载您的应用程序(或清除其数据)以删除旧的数据库文件。然后创建一个带有此版本
onCreate()的新数据库。 -
现在注册成功了,不过也就这样了。当我转到文件资源管理器时,数据库文件夹没有出现,同样的错误仍然存在(错误:运行方式:/data 拥有者错误:0/1000,而不是 1000)。如果我在模拟器上运行它很好,但是当我在我的设备上运行它时,文件资源管理器中没有创建数据库。
标签: java android android-sqlite