Ver Mensaje Individual
  #3 (permalink)  
Antiguo 25/08/2010, 08:39
The_Clansman
 
Fecha de Ingreso: febrero-2009
Mensajes: 36
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Procedimiento almacenado parametrizados de mysql en vb.net

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Código vb.net:
Ver original
  1. .Parameters.Add("?spusuario", Me.txtUsuario.Text).Direction = ParameterDirection.Input
  2. .Parameters.Add("?spclave", Me.txtClave.Text).Direction = ParameterDirection.Input
1) Debe ir "?" o "@" como prefijo del nombre del parámetro. La diferencia será si es .Net 1.1 o 2.0.
2) Debes indicar la direccion del parámetro.
Gracias por tu respuesta!! Probe ese codigp pero me manda error!! Acontinuacion de pongo como puse ese codigo:

Código vb.net:
Ver original
  1. Dim csb As New MySqlConnectionStringBuilder
  2.  
  3.         With csb
  4.             .Server = "localhost"
  5.             .Database = "inventario"
  6.             .UserID = "root"
  7.             .Password = "abc123A"
  8.  
  9.         End With
  10.  
  11.         Using con As New MySqlConnection(csb.ConnectionString)
  12.             con.Open()
  13.             Dim cmd2 As New MySqlCommand("call id_usuario", con)
  14.             With cmd2
  15.                 .Parameters.Add("@spusuario", Me.txtUsuario.Text).Direction = ParameterDirection.Input
  16.                 .Parameters.Add("@spclave", Me.txtClave.Text).Direction = ParameterDirection.Input
  17.  
  18.             End With
  19.  
  20.             Dim i As Integer
  21.             i = CInt(cmd2.ExecuteScalar())
  22.             If i > 0 Then
  23.                 contador = 0
  24.                 MsgBox("Bienvenido", MsgBoxStyle.Information)
  25.                 Exit Sub
  26.             Else
  27.                 contador = contador + 1
  28.                 MsgBox("Verifique su usuario y contraseña", MsgBoxStyle.Exclamation)
  29.             End If
  30.             If contador = 3 Then
  31.                 MsgBox("Ha intendado ingresar mas de tres veces", MsgBoxStyle.Critical)
  32.                 con.Dispose()
  33.                 con.Close()
  34.                 Application.Exit()
  35.             End If
  36.         End Using
  37.     End Sub

Y los errores que me manda son advertencias:
Código Advertencias de VB:
Ver original
  1. Advertencia 1   'Public Function Add(parameterName As String, value As Object) As MySql.Data.MySqlClient.MySqlParameter' está obsoleto: 'Add(String parameterName, Object value) has been deprecated.  Use AddWithValue(String parameterName, Object value)'   D:\Erick\Proyectos Visual Studio\Inventario -mysql\Inventario\Inventario\Form1.vb   34  17  Inventario
  2.  
  3.  
  4. Advertencia 2   'Public Function Add(parameterName As String, value As Object) As MySql.Data.MySqlClient.MySqlParameter' está obsoleto: 'Add(String parameterName, Object value) has been deprecated.  Use AddWithValue(String parameterName, Object value)'   D:\Erick\Proyectos Visual Studio\Inventario -mysql\Inventario\Inventario\Form1.vb   35  17  Inventario

Ocupe el Addwithvalue pero igual me manda error!! Acontinuacion de muestro el codigo con addwithvalue:


Código vb.net:
Ver original
  1. .Parameters.AddWithValue("@spusuario", Me.txtUsuario.Text).Direction = ParameterDirection.Input
  2. .Parameters.AddWithValue("@spclave", Me.txtClave.Text).Direction = ParameterDirection.Input
y el error arrojado por visual studio (ME sombrea en amarillo la parte de este codigo: i = Cint(cmd.ExecuteScalar)

Código mensaje error:
Ver original
  1. Incorrect number of arguments for PROCEDURE inventario.id_usuario; expected 2, got 0

De ante mano gracias por tu respuesta!!

Última edición por The_Clansman; 25/08/2010 a las 08:59