Открытие базы данных SQLite в Android Studio Kotlin - PullRequest
1 голос
/ 04 мая 2020

Я очень новичок в Kotlin, поэтому, пожалуйста, потерпите меня. Я хочу открыть базу данных SQLite или создать ее, если она еще не существует. После этого я запустил соответствующие операторы для составления таблицы и т. Д. c. Я пытаюсь использовать SQLiteDatabase. Строка кода, которую я пробую, выглядит так:

val db = SQLiteDatabase.openOrCreateDatabase("database.db",null, SQLiteDatabase.OPEN_READWRITE)

Я получаю эту ошибку времени выполнения при попытке запустить приложение:

android.database.sqlite.SQLiteCantOpenDatabaseException: unknown error (code 1294 SQLITE_CANTOPEN_ENOENT[1294]): Could not open database

Я не придирчив к базе данных, я просто Я хочу простой способ чтения и записи в один из моих функций.

Это окружающий код:

package com.google.firebase.codelab.barcode_scanning

// Date/time formatting functions
import android.database.sqlite.SQLiteDatabase
import android.graphics.Color
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.recyclerview.widget.RecyclerView
import kotlinx.android.synthetic.main.item_row.view.*
import java.time.LocalDateTime
import java.time.format.DateTimeFormatter


class QrCodeAdapter(private val qrList: ArrayList<QrCode>) : RecyclerView.Adapter<QrCodeAdapter.QrHolder>() {

    //
    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): QrHolder {
        return QrHolder(LayoutInflater.from(parent.context).inflate(R.layout.item_row, parent, false))
    }

    override fun getItemCount() = qrList.size

    override fun onBindViewHolder(holder: QrHolder, position: Int) {
        //internal var dbHelper = DatabaseHelper(this)
        with(qrList[position]) {
            var objname = "Barcode Not Found"
            var statustext = ""
            // status: 0 = no record, 1 = dirty, 2 = clean, 3 = dwell, 4: dwell done
            var status = 0
            var lastcleaned = ""
            // objcategory: 0 = no record, 1 = contact object, 2 = dwell item
            var objcategory = 0
            var objcategorytext = ""
            // initial setup of current date/time
            var unixtime = System.currentTimeMillis()
            var currenttime = LocalDateTime.now()
            var timeformat = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS")
            var testtime = currenttime.format(timeformat).toString()

            //val db = SQLiteDatabase.openDatabase("//app/maindb.db", null, 0);
            val db = SQLiteDatabase.openOrCreateDatabase("database.db",null, null)
            //val sql = "SELECT COUNT(*) FROM main"
            //val statement = db.compileStatement(sql)
            //val result = statement.simpleQueryForLong()


            //Convert barcode output to string
            var barcodevalue = this.value.toString()
            // hide settings
            holder.itemView.textSettingsTitle.visibility=View.GONE
            holder.itemView.textboxName.visibility=View.GONE
}
...