我目前正在使用 SQlite 作为数据库构建一个登录应用程序。我已经创建了数据库,但无法插入数据。我尝试过使用多个在线教程和建议,但似乎无法破解。我总是收到未成功创建的 toast 消息,而不是正确安装的 toast 消息。任何帮助将不胜感激。
数据库创建代码:
public DatabaseHelper(Context context)
{
super(context, DATABASE_NAME, null, 1);
}
@Override
public void onCreate(SQLiteDatabase db)
{
db.execSQL("CREATE TABLE USER (USERNAME TEXT PRIMARY KEY, PASSWORD TEXT, FIRSTNAME TEXT, SECONDNAME TEXT, FINGERPRINT BLOB, FACE BLOB)");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
{
db.execSQL("DROP TABLE IF EXISTS USER");
}
// Inserting into database
public boolean insertUserData (String inputUsername, String inputPassword, String inputFirstName, String inputSecondName)
{
SQLiteDatabase db = this.getWritableDatabase();
ContentValues contentValues = new ContentValues();
contentValues.put("inputUsername", inputUsername);
contentValues.put("inputPassword", inputPassword);
contentValues.put("inputFirstName", inputFirstName);
contentValues.put("inputSecondName", inputSecondName);
long result = db.insert("User",null, contentValues);
if (result ==-1)
{
return false;
}
else
{
return true;
}
}
}
插入代码:
boolean insertData = db.insertUserData(UsernameInput, PasswordInput, Firstname, Secondname);
if (insertData)
{
Toast.makeText(getApplicationContext(), "Account successfully made", Toast.LENGTH_LONG).show();
}
else
{
Toast.makeText(getApplicationContext(), "Account not successfully made", Toast.LENGTH_SHORT).show();
}
startActivity(new Intent(Biometric_create_user.this,MainActivity.class));
Toast.makeText(getApplicationContext(), "Username : " + UsernameInput + "\nPassword: " + PasswordInput + "\nFirst Name : " + Firstname + "\nSecond Name : " + Secondname, Toast.LENGTH_LONG).show();
最佳答案
您的这一行拼写错误:
db = new DatabseHelper(this);
一定要检查并验证它。 此问题可能是由于此错误造成的。
另外,你正在写
SQLiteDatabase db = this.getWritableDatabase();
您确定该方法实现了 SQLiteOpenHelper 吗?
尝试更改此行:-
ContentValues ContentValues = new ContentValues();
致:-
ContentValues contentValues = new ContentValues ();
此外,在接下来的三行中进行相应的名称更改。
编辑:- 在 insertUserData 方法之外声明您的数据库。 好的,基本上你会写:-
db.insertUserData .......
您是否已声明 DatabaseHelper 数据库? 请分享该文件的完整代码。
此外,你还有这一行:-
long result = db.insert("User",null, contentValues)
您将表名写为 User,而实际表名是 USER。
关于java - 在 Android Studio 中将数据插入 SQlite 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60807272/