如何在 VB.Net 中放入整数值的 SQL WHERE 子句?

How to put SQL WHERE clause with integer value in VB.Net?

好的,如果这对您来说太简单了,我很抱歉,但我有点困惑,我不知道我需要什么方法。请多多包涵。

在 SQL Server Management Studio 中,我有一个获取活动用户信息的查询。

SELECT DISTINCT UserID FROM tblUserInfo WHERE IsActive = '1'

我的问题是我不知道或者我忘记了如何在 VB.Net.

中放置带有整数值的 where 子句

这是我的代码

Public Shared Function FnGetUserID() As List(Of String)
        Dim lstUserID As New List(Of String)

        Dim cmd As New SqlCommand()
        Try
            cmd.Connection = DBConn.getConn()
            cmd.CommandType = CommandType.Text
            cmd.Connection.Open()

            Dim sql As String = ""
            sql += " SELECT DISTINCT UserID FROM tblUserInfo"

            cmd.CommandText = sql

            Dim sqlRdr As SqlDataReader = cmd.ExecuteReader
            While sqlRdr.Read
                lstUserID.Add(sqlRdr.Item("UserID").ToString)
            End While

            cmd.Connection.Close()
            cmd.Dispose()
        Catch ex As Exception
            cmd.Dispose()
            'lstSite = Nothing
        End Try

        Return lstUserID
    End Function

我想到了这个

Dim sql As String = ""
sql += " SELECT DISTINCT UserID FROM tblUserInfo WHERE IsActive = @IsActive"

cmd.CommandText = sql

parameter.ParameterName = "@IsActive"
parameter.Value = "1"
cmd.Parameters.Add(parameter)

不知道这样说对不对。 请帮我解决一下这个。谢谢。

您可以使用Parameters.AddWithValue

Dim sql = "SELECT DISTINCT UserID FROM tblUserInfo WHERE IsActive = @IsActive"

cmd.CommandText = sql

Dim isActive = 1

cmd.Parameters.AddWithValue("@IsActive", isActive)

您的代码看起来是正确的。

如果列 IsActive 是一个整数,您可以将命令文本设置为以下之一:

"SELECT DISTINCT UserID FROM tblUserInfo WHERE IsActive = 1"

"SELECT DISTINCT UserID FROM tblUserInfo WHERE IsActive = '1'"

如果要使用参数,使用命令文本是正确的:

"SELECT DISTINCT UserID FROM tblUserInfo WHERE IsActive = @IsActive"

使用参数时,您必须确保将其添加到 sql 命令对象中:

    Dim parameter As SqlClient.SqlParameter = New SqlClient.SqlParameter

    parameter.ParameterName = "@IsActive"
    parameter.Value = "1"
    cmd.Parameters.Add(parameter)

在调用 ExecuteReader 之前必须将参数添加到命令中。