[AJUDA] UPDATE EM SQL SERVER - VB.NET

LEONARDO136 20/07/2011 22:02:48
#379642
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.
RODRIGOFERRO 21/07/2011 08:06:55
#379651
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
LEONARDO136 21/07/2011 23:27:14
#379721
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.
RODRIGOFERRO 22/07/2011 10:02:21
#379735
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
Tópico encerrado , respostas não são mais permitidas