none
verificar en la capa de acceso a datos si un registro en mysql existe RRS feed

  • Pregunta

  • 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.

    jueves, 29 de marzo de 2012 15:49

Respuestas

  • 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:00

Todas las respuestas

  • 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 15:54
  • 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:00
  • 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.

    jueves, 29 de marzo de 2012 17:51