verificar en la capa de acceso a datos si un registro en mysql existe
-
jueves, 29 de marzo de 2012 15:49
Hola todos
mi inquietud es esta:
trabajo con vb.net 2010 y mysql una aplicacion forms con arquitectura n-capas. Si quiero verificar que un registro existe en la db
¿qué instrucción uso en la clase que esta en la capa de acceso a datos? (recuerden uso MySql)
Gracias
Saludos, Solph.
Todas las respuestas
-
jueves, 29 de marzo de 2012 15:54
Public Shared Function Valida(ByVal id_user As String, ByVal password As String) As Boolean Dim swExiste As Boolean = False Dim conn As New MySqlConnection Dim cmd As New MySqlCommand '-- Dim objconn As New Conexion conn = objconn.open cmd.Connection = conn '-- Dim sql As String = "SELECT id_user,password " & _ "FROM users " & _ "WHERE id_user = ?id_user and password = ?password and estado <> 'inactivo'" ' Try cmd = New MySqlCommand(sql, conn) cmd.Parameters.AddWithValue("id_user", id_user) cmd.Parameters.AddWithValue("password", password) Dim numReg As Integer = (cmd.ExecuteScalar()) If numReg > 0 Then swExiste = True Else swExiste = False End If Return swExiste 'Catch ex As Exception ' MsgBox("Error: " & ex.Message & " Consulte con el administrador del sistema") ' Return Nothing 'Finally ' conn.Close() 'End Try End Function
Yo había hecho esto pero cuando uso
Dim numReg As Integer = cint(cmd.ExecuteScalar())
me sale error "La conversión de la cadena "admin" en el tipo 'Integer' no es válida."
donde admin es el nombre de usuario que paso como parámetro.
Agradezco su colaboración
Saludos, Solph.
-
jueves, 29 de marzo de 2012 17:00Moderador
usa
Dim sql As String = "SELECT COUNT(*) " & _ "FROM users " & _ "WHERE id_user = ?id_user and password = ?password and estado <> 'inactivo'"
con eso si devolvera una cantidad el executescalar
Leandro Tuttini
Blog
Buenos Aires
Argentina- Marcado como respuesta Solp jueves, 29 de marzo de 2012 17:51
-
jueves, 29 de marzo de 2012 17:51
Gracias Leandro,
Yo lo había hecho en otra clase así, sin embargo pensaba que sin utilizar count(*)
funcionaría, más aún cuando quería traer el nombre tambien y convertir la funcion no en boolean sino en list of T, pero haré 2 llamadas
o utilizaré list of T para traer el nombre inmediatamente
Gracias...
Saludos, Solph.

