2017-03-01 7 views
0

오케이 이런 일이 너에게 너무 쉬운 일이라면 유감 스럽지만 나는 다소 혼란스럽고 나는 이것을 위해 필요한 접근법을 모른다. 나와 함께 견뎌주세요.VB.Net에서 SQL WHERE 절을 정수 값으로 넣는 방법은 무엇입니까?

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

사용할 수 있습니다.

"SELECT DISTINCT UserID FROM tblUserInfo WHERE IsActive = 1" 

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

당신이 매개 변수를 사용하려면, 명령 텍스트를 사용과 올바른 :

열이 isActive는 정수의 경우

, 당신은 다음 중 하나가 될 명령 텍스트를 설정할 수 있습니다

"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)