我正试着在Kotlin用Sqlite创建一张table

pkwftd7m  于 2022-11-15  发布在  SQLite
关注(0)|答案(2)|浏览(134)

我正试着在Kotlin用Sqlite创建一张table。我试图在表中保留一个字符串类型的数据,但它显示为0,我该怎么办?我使用了VARCHAR、NVARCHAR、TEXT,结果没有改变。

try{
        val veritabani=this.openOrCreateDatabase("Urunler", Context.MODE_PRIVATE,null)
        veritabani.execSQL("CREATE TABLE IF NOT EXISTS urunler (id INTEGER PRIMARY KEY, isim TEXT , fiyat INT) " )
         veritabani.execSQL( "INSERT INTO urunler (isim, fiyat ) VALUES ('asda',100)")

        val cursor =veritabani.rawQuery("SELECT * FROM urunler " ,null)

        val idColumnIndex=cursor.getColumnIndex("id")
        val isimColumnIndex=cursor.getColumnIndex("isim")
        val fiyatColumnIndex=cursor.getColumnIndex("fiyat")

        System.out.println("deneme11")

        while(cursor.moveToNext()){
            System.out.println("ID :${cursor.getInt(idColumnIndex)}")
            System.out.println("isim :${cursor.getInt(isimColumnIndex)}")
            System.out.println("fiyat :${cursor.getInt(fiyatColumnIndex)}")

        }

    }
    catch (e:Exception){

        System.out.println("error"+ e.message);
    }

输出如下所示

I/System.out: ID :1
I/System.out: isim :0
I/System.out: fiyat :100
i86rm4rw

i86rm4rw1#

您的代码尝试检索一个整数,因为您使用getInt()来获取列isim的值。
您应该使用getString()

System.out.println("isim :${cursor.getString(isimColumnIndex)}")
h79rfbju

h79rfbju2#

我建议你使用房间数据库,如果你想在旧的应用程序中使用数据库,那么你可以使用房间的旧依赖。

def room_version = "1.1.1"

implementation "android.arch.persistence.room:runtime:$room_version"
annotationProcessor "android.arch.persistence.room:compiler:$room_version"
testImplementation "android.arch.persistence.room:testing:$room_version"

相关问题