Foros del Web » Programación para mayores de 30 ;) » .NET »

procedimiento almacenado

Estas en el tema de procedimiento almacenado en el foro de .NET en Foros del Web. hola amigos, una consulta, estoy trabajando con VB.net +sql 2000. quisiera saber como solucionar este problema, estoy creando usuarios para que puedan acceder a mi ...
  #1 (permalink)  
Antiguo 15/12/2012, 16:21
Avatar de chelochos  
Fecha de Ingreso: septiembre-2011
Ubicación: Aregua
Mensajes: 27
Antigüedad: 13 años, 2 meses
Puntos: 0
procedimiento almacenado

hola amigos, una consulta, estoy trabajando con VB.net +sql 2000.
quisiera saber como solucionar este problema, estoy creando usuarios para que puedan acceder a mi sistema y quiero utilizar los sp_que existen en la VB de sql para poder crearlos. cual es la mejor manera de invocarlos.
esta forma estoy usando pero me sale un error.

Public Sub Crear_Usuario(ByVal a As String, ByVal b As String, ByVal c As String)
Try

Dim conexion As New SqlClient.SqlConnection
conexion.ConnectionString = cnn
conexion.Open()

Dim cmm As SqlCommand = New SqlCommand("sp_addlogin ", conexion)
cmm.CommandType = CommandType.StoredProcedure

Me.cmm.Parameters.Add("@loginame", a)
Me.cmm.Parameters.Add("@passwd", b)
Me.cmm.Parameters.Add("@defdb", c)

Me.cmm.ExecuteNonQuery()

Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical, "No es posible crear Usuario")
End Try
End Sub

Error!!
ExecuteReader requiere una conexion abierta y disponible.el estado actual es closed
agradeceria sus ayudas!!
  #2 (permalink)  
Antiguo 17/12/2012, 07:50
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 14 años, 4 meses
Puntos: 267
Respuesta: procedimiento almacenado

Hola chelochos!.
1º Viendo tu código y comparándolo con el mensaje de error, no veo ningun ExecuteReader en ningún lado.
2º No estas haciendo adecuadamente la apertura y en especial el cierre de conexion que no lo veo por ningún lado, la mejor manera de controlar es la siguiente :
Código vb:
Ver original
  1. Public Sub Crear_Usuario(ByVal a As String, ByVal b As String, ByVal c As String)
  2. Try
  3.  
  4. Dim conexion As New SqlClient.SqlConnection
  5. conexion.ConnectionString = cnn
  6.  
  7. Dim cmm As SqlCommand = New SqlCommand("sp_addlogin ", conexion)
  8. cmm.CommandType = CommandType.StoredProcedure
  9.  
  10. Me.cmm.Parameters.Add("@loginame", a)
  11. Me.cmm.Parameters.Add("@passwd", b)
  12. Me.cmm.Parameters.Add("@defdb", c)
  13.  
  14. 'Pregunto si la conexion no esta abierta
  15. If conexion.State != ConnectionState.Open Then
  16. 'Abres conexion antes de ejecutar
  17. conexion.Open()
  18. End If
  19.  
  20. Me.cmm.ExecuteNonQuery()
  21.  
  22. Catch ex As Exception
  23. MsgBox(ex.Message, MsgBoxStyle.Critical, "No es posible crear Usuario")
  24.  
  25. 'Creo el finally, cuando suceda un error o no para que pase por este código sí o sí
  26. Finally
  27.  
  28. 'Cierro la conexión aqui
  29. conexion.Close()
  30.  
  31. End Try
  32. End Sub
Saludos!.
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net

Etiquetas: net, procedimiento, sql, vb, almacenar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:13.