1

ここで問題が発生していますが、どこが間違っているのかわかりません。

問題は、挿入中に有効な整数値を挿入することですが、値を取得すると、次の行で DBNull 例外が発生します。

iTestValue = rTest("myscore")

完全なコードは次のとおりです。

    Dim nCn As SQLiteConnection
    ncn = New SQLiteConnection("Data Source=:memory:")
    ncn.Open()

    Dim cmdCreate1 As New SQLiteCommand(nCn)
    cmdCreate1.CommandText = "CREATE TABLE mytable (mytext TEXT,myscore INTEGER)"
    cmdCreate1.ExecuteNonQuery()
    cmdCreate1.CommandText = "CREATE INDEX idx_mytable_myscore ON mytable (myscore)"
    cmdCreate1.ExecuteNonQuery()

    Dim nTA As SQLiteTransaction
    nTA = nCn.BeginTransaction

    Dim nCmdIns As New SQLiteCommand("INSERT INTO mytable (mytext,myscore) VALUES (?,?)", nCn)

    Dim l&
    For l = 1 To UBound(uNPhones)
        nCmdIns.Parameters.Clear()
        nCmdIns.Parameters.Add(ExpandCat(uNPhones(l).Text), DbType.String)
        nCmdIns.Parameters.Add(uNPhones(l).Score, DbType.Int32)
        nCmdIns.ExecuteNonQuery()
        Application.DoEvents()
    Next l

    nTA.Commit()

    Dim nSelTest As New SQLiteCommand("SELECT * FROM mytable", nCn)
    Dim rTest As SQLiteDataReader
    rTest = nSelTest.ExecuteReader

    Dim iCountTest As Integer
    iCountTest = 0

    Do While rTest.Read
        Dim iTestValue As Integer
        iTestValue = rTest("myscore")
        Dim sTestValue As String
        sTestValue = rTest("mytext")
        iCountTest += 1
    Loop
4

0 に答える 0