Ver Mensaje Individual
  #12 (permalink)  
Antiguo 19/06/2010, 10:53
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Verificar registro en tabla con mysql desde visual basic.net

Código vb.net:
Ver original
  1. Public Function VerificarUsuario(ByVal oNombre As String) As Boolean
  2.    Dim Consulta As String = "SELECT (COUNT(*)>0) existe FROM  usuarios WHERE nombre = '" & oNombre & "';"
  3.            Dim oCom As New MySqlCommand(Consulta, Conexion)
  4.            ' Conexion.Open() <-- esto es basura.
  5.             Return Convert.ToBoolean(oCom.ExecuteScalar())
  6.     End Function
Es basura porque la conexión ya existe y está abierta. Si así no fuese, te daría un error porque la instancia no existiría.
Recuerda lo que menciono en el Post: La conexión ya debe existir y estar abierta antes de crear el MysqlCommand

Cita:
Ahora quiero tener un lugar donde colocar todas las funciones y llamarlas, he creado una nueva clase y ahí he pegado la funcion pero me aparece un error, la clase la llame Funciones.vb pero el error debe ser porque no se como llamar correctamente la función, se que me van a regañar pero aqui pego como lo hago.
Consejos generales:

- Toda aplicación vb.net cuenta con un Module que contiene todas las variables y objetos públicos de la aplicación. Te conviene colocar allí la creación de una instancia de la clase qe maneje la Base de Datos y manejar todo con ese objeto. También se pueden colocar allí funciones y métodos globales, para que se puedan llamar desde cualquier parte. Pero no es conveniente poner todo allí.
Ejemplo:
Código vb.net:
Ver original
  1. Imports System.Net
  2. Imports System.IO
  3. Imports System.Globalization
  4. Imports System.Text.RegularExpressions
  5.  
  6. Module Module1
  7.  
  8.     Friend oBase As BaseDeDatos
  9.     Friend oSesion As Sesion
  10.     Friend oUser As Usuario
  11.  
  12.     Friend Function ValidarIp(ByVal sIp As String) As Boolean
  13.         Try
  14.             Dim address As IPAddress = IPAddress.Parse(sIp)
  15.             Return True
  16.         Catch e As ArgumentNullException
  17.             Return False
  18.         Catch e As FormatException
  19.             Return False
  20.         Catch e As Exception
  21.             Return False
  22.         End Try
  23.     End Function
  24.  
  25. End Module
En este ejemplo BaseDeDatos, Sesion y Usuario son clases creadas. Las variables son el medio para acceder a sus métodos de instancia.

- No puedes invocar un método dirigiéndote a la clase, a menos que el método sea un método de clase y no de instancia.

- No se debe intentar cerrar una conexión a menos que realmente la vayas a dejar de usar. El overhead de generación de la conexión es más elevado que la ejecución de muchas consultas.

- No puedes mandar a ejecutar un método o función sin asegurarte que genere errores. Usa Try/Catch para controlar los errores.

- No mandes a abrir o cerrar una conexión sin asegurarte primero que la misma exista o esté realmente abierta o cerrada. Es preferible realizar una verificación previa:
Ver Link: http://www.forosdelweb.com/f29/ayuda...5/#post3449607

- No hagas públicas todas las variables de una clase. Es preferible crearle propiedades públicas y métodos públicos para manipular su contenido y acciones. Sino, estas violando el paradigma y haciendo muy vulnerables las clases.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)