DUVIDA COM QUERY

 Tópico anterior Próximo tópico Novo tópico

DUVIDA COM QUERY

ASP.NET

 Compartilhe  Compartilhe  Compartilhe
#481088 - 21/04/2018 11:12:04

ALEVALE
JUNDIAI
Cadast. em:Março/2012


Pessoal bom dia,

Tenho uma função que executa um select com parâmetros, minha duvida é simples.

Basicamente minha função recebe 2 parâmetros (função (parâmetro 1,parâmetro 2))

Quando eu executo o SQL eu passo os parâmetros recebidos, tudo funcionando certinho,

Meu único problema é que tenho que verificar se os parâmetros estão preenchidos para alterar a query ou seja se não existir o parâmetro 1 o select será de uma forma senão existir o parâmetro 2 será de outro etc.

Faço isso usando IF, existe uma forma mais fácil de verificar ?

Exemplo:
If parametro 1 <> nothing then
                cmd.CommandText = "select * from tabela where parametro1=@parametro1"
                cmd.Parameters.AddWithValue("@parametro1", parametro1)
elseif parametro1  <> nothing and parametro2 <> nothing then
                cmd.CommandText = "select * from tabela where parametro1=@parametro1 and parametro2=@parametro2"
                cmd.Parameters.AddWithValue("@parametro1", parametro1)
                cmd.Parameters.AddWithValue("@parametro2", parametro1)
End if

---------------------------------------------------------------
"Já está provado por A+B que A+B num prova nada"
---------------------------------------------------------------

Resposta escolhida #481091 - 21/04/2018 13:15:01

LVFIOROT
SERRA
Cadast. em:Março/2012


    Function f(Optional parametro1 As String = Nothing, Optional parametro2 As String = Nothing) As SqlCommand
        Dim lista As List(Of String) = New List(Of String)
        Dim cmd As SqlCommand = New SqlCommand()
        Dim where As String = ""

        If Not parametro1 Is Nothing Then
            lista.Add("parametro1=@parametro1")
            cmd.Parameters.AddWithValue("@parametro1", parametro1)

        End If

        If Not parametro2 Is Nothing Then
            lista.Add("parametro2=@parametro2")
            cmd.Parameters.AddWithValue("@parametro2", parametro2)
        End If

        If lista.Count > 0 Then
            where = " where " + String.Join(" AND ", lista.ToArray())
        End If

        cmd.CommandText = "select * from tabela " + where

        Return cmd

    End Function




#481140 - 23/04/2018 22:14:01

ALEVALE
JUNDIAI
Cadast. em:Março/2012


You are the man !
Salvou meu dia...












---------------------------------------------------------------
"Já está provado por A+B que A+B num prova nada"
---------------------------------------------------------------

 Tópico anterior Próximo tópico Novo tópico


Tópico encerrado, respostas não sao permitidas
Encerrado por ALEVALE em 23/04/2018 22:14:08