[AJUDA] UPDATE EM SQL SERVER - VB.NET
Bom pessoal estou com um probleminha muito chato,
aparentemente esta tudo certo mas o programa nao esta fazendo o Update (atualização) do campo:
cmpLimiteErros, que para cada erro de senha no login ele subtrai 1 do total de 5 chances
Intao, se acertar a senha ele grava no campo cmpLimiteErros o valor 5 ou se erra subtrai 1,
ate que chege em 0 bloqueando o usuário.
A seguir o codigo:
Private Function LimiteDeErros(ByVal boolAcesso As Boolean, ByVal codUsuário As Integer, Optional ByVal valor_atual As String = Nothing)
[ô][ô][ô][ô]boolAcesso = true - Para senha correta
[ô][ô][ô][ô]boolAcesso = false - Para senha incorreta
[ô][ô][ô][ô]codUsuário = numero da linha no banco de dados
[ô][ô][ô][ô]valor_atual = valor do campo cmpLimiteErros
cn.Open()
Dim cmd As New SqlCommand
With cmd
.CommandType = CommandType.Text
.CommandText = [Ô]Update tblUsuários set cmpLimiteErros = @LimiteErros where cmpCódigo = [Ô] & codUsuário
.Connection = cn
With .Parameters
If boolAcesso = False Then
.Add(New SqlParameter([Ô]@LimiteErros[Ô], valor_atual - 1))
ElseIf boolAcesso = True Then
valor_atual = 5
.Add(New SqlParameter([Ô]@LimiteErros[Ô], valor_atual))
End If
End With
.ExecuteNonQuery()
End With
cn.Close()
Return 0
End Function
Aparentemente esta tudo certo, mas tem alguma coisa errada.
Espero respostas, desde já agradeço, abraços.
aparentemente esta tudo certo mas o programa nao esta fazendo o Update (atualização) do campo:
cmpLimiteErros, que para cada erro de senha no login ele subtrai 1 do total de 5 chances
Intao, se acertar a senha ele grava no campo cmpLimiteErros o valor 5 ou se erra subtrai 1,
ate que chege em 0 bloqueando o usuário.
A seguir o codigo:
Private Function LimiteDeErros(ByVal boolAcesso As Boolean, ByVal codUsuário As Integer, Optional ByVal valor_atual As String = Nothing)
[ô][ô][ô][ô]boolAcesso = true - Para senha correta
[ô][ô][ô][ô]boolAcesso = false - Para senha incorreta
[ô][ô][ô][ô]codUsuário = numero da linha no banco de dados
[ô][ô][ô][ô]valor_atual = valor do campo cmpLimiteErros
cn.Open()
Dim cmd As New SqlCommand
With cmd
.CommandType = CommandType.Text
.CommandText = [Ô]Update tblUsuários set cmpLimiteErros = @LimiteErros where cmpCódigo = [Ô] & codUsuário
.Connection = cn
With .Parameters
If boolAcesso = False Then
.Add(New SqlParameter([Ô]@LimiteErros[Ô], valor_atual - 1))
ElseIf boolAcesso = True Then
valor_atual = 5
.Add(New SqlParameter([Ô]@LimiteErros[Ô], valor_atual))
End If
End With
.ExecuteNonQuery()
End With
cn.Close()
Return 0
End Function
Aparentemente esta tudo certo, mas tem alguma coisa errada.
Espero respostas, desde já agradeço, abraços.
Ta.. antes de tudo isso é uma função ou uma Sub ?
voce declara como função e até faz ela dar um [Ô]return 0[Ô] mas nao especifica qual tipo de dado ela vai retornar, se é boolen string.. etc..
Abraços
voce declara como função e até faz ela dar um [Ô]return 0[Ô] mas nao especifica qual tipo de dado ela vai retornar, se é boolen string.. etc..
Abraços
Citação::
Ta.. antes de tudo isso é uma função ou uma Sub ?
voce declara como função e até faz ela dar um [Ô]return 0[Ô] mas nao especifica qual tipo de dado ela vai retornar, se é boolen string.. etc..
Abraços
é uma função..
Ex: sabe quando voce entra em um site qualquer e ao errar varias vezes ele bloqueia sua conta??
Quero fazer isso, mas em um programa, não um site.
Não precisa de retorno a função, só preciso que o comando acima grave no campo cmpLimiteErros o valor.
Primeiro: voce esta declarado a variavel [Ô]valor_atual[Ô] como string veja:
[Ô]valor_atual As String = Nothing[Ô]
depois tenta diminuir [Ô]string[Ô] -1... reveja isso..
Segundo: sua logica esta equivocada
se [ô][ô][ô][ô]boolAcesso = true - Para senha correta[Ô] voce nao faz nada na função entao no caso voce nem precisa chamar ela, certo ?
e dai retirariamos um IF e um parametro da função
Terceiro: porque nao passar o codigo do funcionario/usuario tambem como parametro ? ficaria bem melhor !
e recomendo que essa seja uma SUB ou que voce transforme ela em uma Função que retorne um INTEIRO do numero de chances que o kra ainda tem...
Abraços
[Ô]valor_atual As String = Nothing[Ô]
depois tenta diminuir [Ô]string[Ô] -1... reveja isso..
Segundo: sua logica esta equivocada
se [ô][ô][ô][ô]boolAcesso = true - Para senha correta[Ô] voce nao faz nada na função entao no caso voce nem precisa chamar ela, certo ?
e dai retirariamos um IF e um parametro da função
Terceiro: porque nao passar o codigo do funcionario/usuario tambem como parametro ? ficaria bem melhor !
e recomendo que essa seja uma SUB ou que voce transforme ela em uma Função que retorne um INTEIRO do numero de chances que o kra ainda tem...
Abraços
Tópico encerrado , respostas não são mais permitidas