我在我的数据库中有一个表,当添加新记录时,我正在检查记录是否存在使用id.如果它存在,我想更新记录,如果它没有添加新记录.但我得到了例外:
2006年至2259年/?E/SQLiteDatabase:插入错误id = 080333 phone = 080333 total_owed = 15050.0 total_debts = 0 name = Alison Jones android.database.sqlite.SQLiteConstraintException:列id不唯一(代码19)
这是检查记录是否存在的方法:
public boolean checkIfExists(String tableName, String value) {
SQLiteDatabase database = this.getReadableDatabase();
String Query = "Select * from " + tableName + " where " + DEBTOR_ID + " = " + value;
Cursor cursor = database.rawQuery(Query, null);
if(cursor.getCount() <= 0){
cursor.close();
return false;
}
cursor.close();
return true;
}
Run Code Online (Sandbox Code Playgroud)
它在这里被使用:
debtor.setDebtorName(params[0]);
debtor.setPhoneNumber(params[1]);
debtor.setTotalAmountOwed(Double.parseDouble(params[6]));
debtor.setTotalDebts(0);
if (databaseHandler.checkIfExists(DebtDatabaseHandler.DEBTOR_TABLE_NAME, params[1])) {
Log.d("NewDebtFragment", "Record already exist"); …Run Code Online (Sandbox Code Playgroud) 我正在使用登录/注册应用程序进行培训,因为我是一个初学者,除了一个小问题之外,其他所有功能都可以正常工作,但是我不知道如何解决它,我尝试了搜索,但是在这里找不到任何内容我的数据库
fun userPresent (user: String,pass: String):Boolean {
val db = writableDatabase
val query = "select * from $TABLE_NAME where username = $user and password = $pass"
val cursor = db.rawQuery(query,null)
if (cursor.count <= 0) {
cursor.close()
return false }
cursor.close()
return true }
Run Code Online (Sandbox Code Playgroud)
mainactivity.kt
if (database.userPresent(user = username,pass = password)) {
intent.putExtra("text", "Welcome , $username $password")
startActivity(intent)
Toast.makeText(this,"Logged In Successfully",Toast.LENGTH_SHORT).show()
} else {
Toast.makeText(this,"Wrong Username/Password",Toast.LENGTH_SHORT).show()
}
Run Code Online (Sandbox Code Playgroud)
我的logCat错误
android.database.sqlite.SQLiteException: no such column: ss (code 1 SQLITE_ERROR): , while compiling: select * …Run Code Online (Sandbox Code Playgroud) 我在 asset 文件夹中有一个 db 文件,如何使用它。我必须能够读取和写入数据库文件如果我使用
SqliteDatabase.open(context.openassest().open(filrname),null);未找到异常数据库文件不检查。我在我的腿上正确完成的语法请参阅内容
人们已经问过这个问题,但经过许多人的步骤后,我仍然无法解决问题,请帮助。\ni还在清单文件中添加了权限
\n\n<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>\n<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>\nRun Code Online (Sandbox Code Playgroud)\n\n这是 logcat 错误。
\n\n07-17 15:23:58.253 14526-14526/com.techmobile2.yogahome E/AndroidRuntime: FATAL EXCEPTION: main\nProcess: com.techmobile2.yogahome, PID: 14526\njava.lang.RuntimeException: Unable to start activity ComponentInfo{com.techmobile2.yogahome/com.techmobile2.yogahome.SettingPage}: android.database.sqlite.SQLiteCantOpenDatabaseException: unknown error (code 14): Could not open database\n at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2417)\n at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2480)\n at android.app.ActivityThread.access$800(ActivityThread.java:151)\n at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1377)\n at android.os.Handler.dispatchMessage(Handler.java:102)\n at android.os.Looper.loop(Looper.java:155)\n at android.app.ActivityThread.main(ActivityThread.java:5725)\n at java.lang.reflect.Method.invoke(Native Method)\n at java.lang.reflect.Method.invoke(Method.java:372)\n at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1030)\n at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:825)\n Caused by: android.database.sqlite.SQLiteCantOpenDatabaseException: unknown error (code 14): Could not open database\n at android.database.sqlite.SQLiteConnection.nativeOpen(Native Method)\n at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:235)\n at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:219)\n at android.database.sqlite.SQLiteConnectionPool.openConnectionLocked(SQLiteConnectionPool.java:468)\n at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:190)\n at …Run Code Online (Sandbox Code Playgroud) 我想在 sqlite 数据库中存储视频。PS我不想存储路径而是实际的视频内容。我已将视频转换为字节数组并将字节数组存储在 sqlite 数据库中。检索后,bytearray 被转换为文件。但是视频没有播放。请帮忙。
我有一个sqlite数据库,我想将数据库更改为Room database。
表之一没有任何主键,只有两个外键。
我使用以下查询在房间之前创建了表:
CREATE TABLE student_performance(
class_id int ,
student_id char(10),
class_date date ,
absent boolean DEFAULT 0,
delay boolean DEFAULT 0,
positive int DEFAULT 0,
negative int DEFAULT 0,
quiz float ,
FOREIGN KEY (student_id , class_id) REFERENCES student(student_id , class_id)
ON DELETE CASCADE
ON UPDATE CASCADE);
Run Code Online (Sandbox Code Playgroud)
现在我为房间定义表:
@Entity(tableName = "performance",
foreignKeys = {@ForeignKey(
entity = StudentEntry.class,
parentColumns = {CLASS_ID, STUDENT_ID},
childColumns = {CLASS_ID, STUDENT_ID},
onDelete = CASCADE, onUpdate = CASCADE)})
public class PerformanceEntry {
. …Run Code Online (Sandbox Code Playgroud) 我是 Android 开发的新手,我正在构建一个应用程序。我目前卡在登录屏幕上,因为没有最新的教程可以引导我逐步创建和链接数据库。
我想要一个数据库,以便在按下注册按钮时将信息存储到数据库中。
我目前只有 activity_main.xml 和 MainActivity.kt,这是创建空白活动的基础知识。