Error al intentar hacer update en vb 2008 + sql server 2005
-
lunes, 18 de junio de 2012 2:22
Buenas tengo un problema y no se donde es que tengo el error, ojala alguien me pueda ayudar ya que no logro darme cuenta donde es que me estoy equivocando :
Al tratar de hacer un update me sale el siguiente error;
El Procedimiento o la funcion 'PA_UPDATE_USER' esperaba el parametro '@in_nombre_user', que no se ha especificado
EL Procedimiento es:
ALTER PROCEDURE dbo.PA_UPDATE_USER
@in_nombre_user nvarchar(50),
@in_pass_user nvarchar(50),
@in_tipo_user nvarchar(50)
AS
update usuarios
set nombre_usuario=@in_nombre_user,
pass_usuario = @in_pass_user,
tipo_usuario=@in_tipo_user
where nombre_usuario=@in_nombre_user
RETURNLa Funcion:
Public Function editar_usuario(ByVal dts As Clsusuario) As Boolean
Try
conectado()
cmd = New SqlCommand("PA_UPDATE_USER")
cmd.CommandType = CommandType.StoredProcedure
cmd.Connection = cnn
cmd.Parameters.AddWithValue("@in_nombre_user", dts.nombre_user)
cmd.Parameters.AddWithValue("@in_pass_user", dts.pass_user)
cmd.Parameters.AddWithValue("@in_tipo_user", dts.tipo_user)
If cmd.ExecuteNonQuery Then
Return True
Else
Return False
End If
Catch ex As Exception
MsgBox(ex.Message)
Return False
Finally
desconectado()
End Try
End FunctionY el boton para el update:
Try
Dim dts As New Clsusuario
Dim func As New Funciones
dts.nombre_user = TxtUsusario.Text
dts.pass_user = TxtPassword.Text
dts.tipo_user = TxtTipoUsuario.Text
If func.editar_usuario(dts) Then
MsgBox("El usuario se ha modificado")
TxtUsusario.Clear() : TxtPassword.Clear() : TxtTipoUsuario.Clear()
Else
MsgBox("Error al editar")
TxtUsusario.Clear() : TxtPassword.Clear() : TxtTipoUsuario.Clear()
End If
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub- Cambiado Enrique M. MontejoMVP jueves, 21 de junio de 2012 18:24 acceso a datos (De:Lenguaje VB.NET)
Todas las respuestas
-
lunes, 18 de junio de 2012 2:50Moderador
pregunta
proque haces esto
cmd = New SqlCommand("PA_UPDATE_USER")
y no esto
Dim cmd As New SqlCommand("PA_UPDATE_USER")
difo la variable donde la declaras?
Leandro Tuttini
Blog
Buenos Aires
Argentina -
lunes, 18 de junio de 2012 2:54
la declaro al comienzo del archivo donde tengo las funciones
Dim cmd As New SqlCommand
-
lunes, 18 de junio de 2012 3:29Moderador
no has probado declarar las variables donde las usas
o sea si el cmd lo usas dentro de editar_usuario() definelo solo alli dentro, no de forma global
Leandro Tuttini
Blog
Buenos Aires
Argentina -
jueves, 21 de junio de 2012 23:10
Hola.
Tu lo unico que no veo es cuando abres y cierras la conexion:
Public Function editar_usuario(ByVal dts As Clsusuario) As Boolean Try conectado() cmd = New SqlCommand("PA_UPDATE_USER") cmd.CommandType = CommandType.StoredProcedure cmd.Connection = cnn cmd.Parameters.AddWithValue("@in_nombre_user", dts.nombre_user) cmd.Parameters.AddWithValue("@in_pass_user", dts.pass_user) cmd.Parameters.AddWithValue("@in_tipo_user", dts.tipo_user) cmd.Connection.Open(); If cmd.ExecuteNonQuery Then Return True Else Return False End If cmd.Connection.Close(); Catch ex As Exception MsgBox(ex.Message) Return False Finally desconectado() End Try End Function
Si eso ese proceso lo hace el metodo conectado() y desconectado(), prueba con esta forma y nos comentas.
Saludos.
- Si un comentario te ayuda a resolver tu problema, marcalo como respuesta, pero si basado en tu experiencia la consideras como util para la comunidad de desarrolladores, marcalo como util.

