Colocando dois IF no código!!

rubenmsoares

Power Member
Não sei come colocar o segundo.

Preciso de aplicar condições diferentes depois de executar a pesquisa, em que quando é executado o select e devolve os valores para caixa, mas quando uma das caixa tiver o valor 2 ele tem de executar outra condição.

Mas precisando de ele fazer a leitura a base dados com o comando If rs.Read() Then eu não sei onde devo colocar If caixaXYZ ="2" Then executa outra condição.

Tenho este código:

Protected Sub Bt_pesquisar_Click(sender As Object, e As EventArgs) Handles Bt_pesquisar.Click


strConnection = ConnectionStrings("GescomercialConnectionString").ConnectionString
dbConn = New SqlClient.SqlConnection(strConnection)
dbConn.Open()
strSQL = "SELECT * FROM tbl_clientes WHERE nif='" & caixapesquisanif.Text & "'"
dCmd = New SqlCommand(strSQL, dbConn)


Dim rs As SqlDataReader = dCmd.ExecuteReader
If rs.Read() Then
'existem valores??
caixapesquisanif.Text = ""
caixanif.Text = rs("nif")
caixanome.Text = rs("nome")
caixaresponsavel.Text = rs("responsavel")
caixalocalidade.Text = rs("localidade")
caixacontato.Text = rs("contato")
droptipocliente.Text = rs("tipo_cliente")


droptipocliente.BackColor = Drawing.Color.Beige
caixanif.BackColor = Drawing.Color.Beige
caixanome.BackColor = Drawing.Color.Beige
caixacontato.BackColor = Drawing.Color.Beige
caixalocalidade.BackColor = Drawing.Color.Beige
caixaresponsavel.BackColor = Drawing.Color.Beige


caixanif.Enabled = False
caixanome.Enabled = True
caixacontato.Enabled = True
caixalocalidade.Enabled = True
caixaresponsavel.Enabled = True
droptipocliente.Enabled = True


bt_atualizar.Enabled = True
bt_Eliminar.Enabled = True
bt_gravar.Enabled = False
bt_cancelar.Enabled = False
bt_novo2.Enabled = True
bt_editar2.Enabled = True
bt_eliminar2.Enabled = True
bt_gravar2.Enabled = True
bt_cancelar2.Enabled = True


Else
MessageBox("Cliente não encontrado")
caixapesquisanif.Text = ""
End If


End Sub
 
Eu nem olhei para o código mas pelo que vi estás a programar em VB???

Faz o seguinte:

If (comparação)

Elseif (comparação)

Else

Não te esqueças que em comparações podes sempre fazer várias usando AND e OR! (&& ou || respectivamente e depende da linguagem, já não uso Windows e muito menos VB...) abraço!

PS Agora que vi o código assim por alto percebi melhor o que querias fazer. Tens duas alternativas. Ou usas a estratégias que te disse, fazendo algo do género:

Código:
[COLOR=#EDEDED]If (rs.Read() AND existemvalores??) Then
[/COLOR]...
Elseif rs.Read() Then
...
Else ...

Ou então no código que tens no teu post, se onde tens "existemvalores??" colocares um outro if, não há problema nenhum... não é muito "católico", mas pelo que parece para o que estás a fazer, tem pouca importância. Abraço
 
Última edição:
Não estou a conseguir executar a pesquisa com o comando If (rs.Read() And estado_negocio = "Perdido") Then quando eu sei que o Nif em questão existe.


O estado_negocio = "Perdido" é o que está a impedir a pesquisa, porque colocando desta forma: If rs.Read() Then, é devolvido o Nif em questão.


Contudo eu preciso que ao ler a tabela e quando encontra os valores, se o estado_negocio = "Perdido" vou ter de execuar o segundo if neste caso o elseif.


Verifiquei também que ao colocar If (rs.Read() And estado_negocio = "Perdido") Then tendo de declarar o estado_negocio e então declaro assim:


Protected Sub Bt_pesquisar_Click(sender As Object, e As EventArgs) Handles Bt_pesquisar.Click
Dim estado_negocio As String


Antes das ligação a base dados.

Verifico que estado_negocio, fica sublinhado a vermelho com a indicação do seguinte erro " Warning Variable 'estado_negocio' is used before it has been assigned a value. A null reference exception could result at runtime.


Podem ajudar-me?


Obrigado
 
A lógica que estás a fazer não faz muito sentido para mim. Ao certo, qual é a segunda condição que queres que se execute quando o tal valor "2" aparece? É muito diferente do que fazes quando esse valor não é 2? Onde está essa variável "estado_negocio"?

O mais simples, dentro do que posso deduzir do que queres seria:
Código:
'...
if (rs.read()) Then
  ' Sem isto não vais ler os resultados
  'Código até preencheres a tal caixaXYZ
  If caixaXYZ ="2" Then
    'Faz aqui o que queres
  End if
' Continua com o resto do código
Else
  MessageBox("Cliente não encontrado")
  caixapesquisanif.Text = ""
End If
 
Back
Topo