2017-03-01 49 views
0

好的,我很抱歉,如果這對你來說太簡單了,但我有點困惑,我不知道我需要什麼方法。請多多包涵。如何把整數值的SQL WHERE子句放在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) 

我不知道這是否是正確與否。 請幫我這個。謝謝。

+0

如果它的參數始終爲1,爲什麼不只是'SELECT DISTINCT UserID FROM tblUserInfo where IsActive = 1' – Whencesoever

+1

你有沒有試過?你有什麼錯誤嗎?什麼錯誤? –

+0

_我不知道這是否正確。你試過了嗎? – Bugs

回答

1

您的代碼看起來是正確的。

如果列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之前,必須將該參數添加到命令中。

0

您可以使用Parameters.AddWithValue

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

cmd.CommandText = sql 

Dim isActive = 1 

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