VALIDAR TEXTBOX

SANROMAN 08/05/2014 15:13:49
#438010
Olá amigos,

Como faço, ao sair de um TextBox, verificar se o mesmo está entre os números de dois campos de uma tabela SQL.

Já tentei várias formas, mas não consigo resolver. O último código que tentei é o seguinte:

Private Sub txtNumeroCheque_LostFocus(sender As Object, e As EventArgs) Handles txtNumeroCheque.LostFocus


Dim numCheque As Integer = Val(txtNumeroCheque.Text)
Dim sqlCon As New SqlConnection(strCmd)
Dim strSql As String = [Ô]SELECT * FROM TB_TalaoCheques WHERE NumeroInicial <= [ô][Ô] & Val(numCheque) & [Ô][ô] AND NumeroFinal >= [ô][Ô] & Val(numCheque) & [Ô][ô][Ô]
Dim sqlCmd As New SqlCommand(strSql, sqlCon)
Dim dr As SqlDataReader

sqlCmd.Connection.Open()
dr = sqlCmd.ExecuteReader

If dr.HasRows Then

dr.Read()
dr.GetValue(txtNumeroCheque.Text)
dr.Close()
End If

End Sub

Desde já agradeço.
SANROMAN 08/05/2014 16:48:27
#438014
Olá amigos,

Consegui resolver. Ao invés de utilizar dois parâmetros para minha consulta, utilizei apenas um, ficou assim:

Private Sub txtNumeroCheque_LostFocus(sender As Object, e As EventArgs) Handles txtNumeroCheque.LostFocus

Dim numCheque As Integer = Val(txtNumeroCheque.Text)
Dim sqlCon As New SqlConnection(strCmd)
Dim strSql As String = [Ô]SELECT * FROM TB_TalaoCheques WHERE NumeroFinal <= [ô][Ô] & numCheque & [Ô][ô][Ô]
Dim sqlCmd As New SqlCommand(strSql, sqlCon)
Dim dr As SqlDataReader

sqlCmd.Connection.Open()
dr = sqlCmd.ExecuteReader

If dr.HasRows Then
dr.Read()
If numCheque > dr([Ô]NumeroFinal[Ô]).ToString Then

MsgBox([Ô]Essa numeração não faz parte dos TALÕES cadastrados.[Ô] + _
vbCrLf + [Ô]Cadastre o TALÃO para continuar.[Ô], vbInformation, [Ô]ATENÇAO[Ô])
txtNumeroCheque.Focus()

End If

dr.Close()

End If

End Sub

Muito obrigado pela atenção.
NICKOSOFT 08/05/2014 16:53:46
#438017
se houver a necessidade de verificar se esta entre existe o between no SQL, so nao sei te dizer com certeza se funciona fora de campos data, nunca usei fora de campos data
SANROMAN 08/05/2014 17:38:28
#438020
Caro NICKOSOFT,

Obrigado pela atençao, Tentei com between e não consegui, mas como postei acima já arrumei uma solução, que na verdade e bem simples. Estou agora lapidando essa solução. Vou dar o tópico como encerrado.

Até uma próxima.
Tópico encerrado , respostas não são mais permitidas