返回 0 而不是实际值

Returning 0 instead of the actual value

我在 SQLiteStudio 3.1.0 中使用相同的 SQL 查询,并且使用我传入的相同参数,它可以正常工作。当我使用相同的 SQL并在我的 VB 项目中使用下面的代码 returns 0 而不是正确的值。

Private Function GetData() As Object
     Dim sql As String = "Select Data from Table where Option = ?"
     Return FunctionObject(sql, New List(Of Object) From {"This is a Test"})
End Sub

Public Function FunctionObject(ByVal sql As String, ByVal parameters As List(Of Object)) As Object
    Using sqlconnection As New SQLiteConnection(ConnectionString)
          sqlconnection.Open()
          Using Cmd As New SQLiteCommand(sql, sqlconnection)
                Dim par As SQLiteParameter
                For Each parm As Object In parameters
                    par = Cmd.CreateParameter()
                    par.Value = parm
                   Cmd.Parameters.Add(par)
                Next
          FunctionObject = Cmd.ExecuteScalar()
          End Using
   End Using
End Function

我将对象列表传入参数的方法。连接字符串起作用是因为它使其他 sql 查询起作用。我有一组使用 OleDb 的相同代码,其构建方式与此完全相同,并且它使用相同的 SQL 语句。那么我是否遗漏了一些可以使行为不同于 SQLite 和 OleDb 连接和 executeScalar 的东西,因为一个 returns 0 而另一个 returns 是正确的字符串?

结果是数据库字段出错了。它应该是一个 VarChar(200),但它是一个 Numeric(200)。因此,如果您遇到返回错误数据的问题,那么您应该查看 table 本身。我从 SQLite 中学到的是它 returns 一个 vbCr,因此您应该将 .ToString().Replace(vbCr, String.Empty) 添加到 ExecuteScalar()。