java - 在 Android Studio 中将数据插入 SQlite 数据库

标签 java android sqlite

我目前正在使用 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/

相关文章:

java - Java 中的字符串池的行为是否类似于 LRU 缓存?

java - Android 类型 new View.OnClickListener(){} 未定义方法 startActivity(Intent)

java - 我的简单数组程序没有给出预期的输出

android - 对话框通用函数 - 基于用户按钮按下返回 bool 值

android - 如何为 ListView 中的每一行获取选定的单选按钮

ios - ViewController 中的 SQLite 错误 14

java - 如何使用 onUpgrade() 添加多个表而不丢失任何数据或表

SQL 查询,其中 = 另一个表的值

java - 单击 ListView 上的按钮会显示相同的输出

android - 当无法解析具有 "downloads"权限的内容提供程序时,PackageInstaller 崩溃