SQLite SELECT from VB.Net application (Win32)



我正在尝试从SQL数据库中获取结果并将其保留为变量。但是使用我的代码(见下文)它返回 0(零)。任何想法我做错了什么?

谢谢

Function getName(name As String)
    Dim SQLconnect As New SQLite.SQLiteConnection()
    Dim SQLcommand As SQLite.SQLiteCommand
    SQLconnect.ConnectionString = "Data Source=C:toolsnames.sqlite;"
    SQLconnect.Open()
    SQLcommand = SQLconnect.CreateCommand
    SQLcommand.CommandText = "SELECT * FROM names WHERE name = " & name & " LIMIT 1;"
    Dim sqlResponse As String = SQLcommand.ExecuteNonQuery()

End Function

编辑:我正在使用"返回sqlResponse"进行返回

首先,sql 应该是(我认为):

SQLcommand.CommandText = "SELECT * FROM names WHERE name = '" & name & "' LIMIT 1;"

我不确定文本在SQLite中是如何表示的,但是您需要某种分隔符,例如SQL Server中的单引号。

第二件事,使用参数化查询来阻止自己被SQL注入

劫持

第三,SELECT 使用 ExecuteReader,如果您只需要一个项目,请尝试 ExecuteScalar。执行非查询用于插入、更新删除。

执行NonQuery不返回值,因此它将始终0。您需要使用

Dim sqlResponse As String = SQLcommand.ExecuteScalar()

相关内容

  • 没有找到相关文章

最新更新