如何在 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 之前必须将参数添加到命令中。
好的,如果这对您来说太简单了,我很抱歉,但我有点困惑,我不知道我需要什么方法。请多多包涵。
在 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 之前必须将参数添加到命令中。