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

Problema con AddWithValue

Estas en el tema de Problema con AddWithValue en el foro de .NET en Foros del Web. Hola a las personas que estan logueadas en este momento, empiezo con .Net , tengo un procedimiento almacenado, por codigo le estoy pasando los valores ...
  #1 (permalink)  
Antiguo 08/07/2009, 13:36
 
Fecha de Ingreso: junio-2007
Mensajes: 13
Antigüedad: 16 años, 10 meses
Puntos: 0
Problema con AddWithValue

Hola a las personas que estan logueadas en este momento, empiezo con .Net , tengo un procedimiento almacenado, por codigo le estoy pasando los valores al metodo AddWithValue los valores los recojo de un textbox, la historia es que este procedimiento necesita 3 parametros de entrada, cuando le toca a el ExecuteNonQuery() enviar os datos me da una exception que dice "La función o el procedimiento trans_insert_modelo tiene demasiados argumentos."
que recomendacion me podrian dar respecto a este problema.
  #2 (permalink)  
Antiguo 08/07/2009, 14:18
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 15 años, 10 meses
Puntos: 220
Respuesta: Problema con AddWithValue

Puedes poner el codigo de tu procedimiento almacenado y el codigo de tu aplicaicon???
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
  #3 (permalink)  
Antiguo 09/07/2009, 06:51
 
Fecha de Ingreso: junio-2007
Mensajes: 13
Antigüedad: 16 años, 10 meses
Puntos: 0
Respuesta: Problema con AddWithValue

Este es el codigo para insertar los valores en el stored procedure

public void InsertarTipo(object pid_Marca, object pModelo, string pNombreStoredProcedure)
{
this.cxn = new SqlConnection(this.cadenaConexion);
this.command = new SqlCommand();
this.adapter = new SqlDataAdapter();

this.cxn.Open();
this.command.Connection = this.cxn;
this.command.CommandType = System.Data.CommandType.StoredProcedure;
this.command.CommandText = pNombreStoredProcedure;
this.command.Parameters.AddWithValue("@id_Marca", pid_Marca);
this.command.Parameters.AddWithValue("@Modelo", pModelo);
this.command.Parameters.AddWithValue("@Potencia", pPotencia);
this.command.ExecuteNonQuery;

this.cxn.Close();
}
  #4 (permalink)  
Antiguo 11/07/2009, 17:33
 
Fecha de Ingreso: marzo-2007
Ubicación: Guadalajara
Mensajes: 18
Antigüedad: 17 años, 1 mes
Puntos: 1
Respuesta: Problema con AddWithValue

creo que el command te permite meterle como parámetro el nombre del procedimiento almacenado, intenta de esta manera

public void InsertarTipo(object pid_Marca, object pModelo, string pNombreStoredProcedure)
{
this.cxn = new SqlConnection(this.cadenaConexion);
this.command = new SqlCommand(pNombreStoredProcedure, this.cxn);

this.command.CommandType = System.Data.CommandType.StoredProcedure;
this.command.Parameters.Add("@id_Marca", TIPO DE DATO).value = pid_Marca;
this.command.Parameters.Add("@Modelo", TIPO DE DATO).value = pModelo;
this.command.Parameters.Add("@Potencia", TIPO DE DATO).value = pPotencia;

this.cxn.Open();
this.command.ExecuteNonQuery;
this.cxn.Close();
}

donde TIPO DE DATO es el tipo de dato del campo que vas a afectar en la tabla de tu base de datos, por ejemplo varchar(50), algo que me deja pensando, es porque meter como object pid_Marca y pModelo, si como dices que le pasas el valor por medio de un textbox podrías ponerlos como string y el parámetro que fuera el textbox.text, bueno, espero te sirva, luego nos cuentas, suerte! :)
  #5 (permalink)  
Antiguo 11/07/2009, 17:39
 
Fecha de Ingreso: marzo-2007
Ubicación: Guadalajara
Mensajes: 18
Antigüedad: 17 años, 1 mes
Puntos: 1
Respuesta: Problema con AddWithValue

Se me pasó, el TIPO DE DATO debes ponerlo de la siguiente manera:

SqlDbType.varchar, 50

bueno eso dependiendo el tipo de datos que sea, por ejemplo quedaría:

this.command.Parameters.Add("@id_Marca", SqlDbType.varchar, 50).value = pid_Marca;

Asegurate de tener el espacio de nombres System.Data
saludos :p
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 14:31.