Consulta con parametros

adpa
06 de Octubre del 2005
Hola,
Tengo el siguiente problema,
Intento ejecutar una cosulta con parámetro y me da el siguiente error:

"ERROR [07002] [Microsoft][Controlador ODBC Microsoft Access] Pocos parámetros. Se esperaba 7."

Este es el código tal cual lo tengo:

string consulta = "insert into Clientes values (@nif,@nombre,@ap,@edad,@fnac,@factacu,@activo)";

Comando.CommandText=consulta;

Comando.CreateParameter();

Comando.Parameters.Add("@nif",cli.pNif);

Comando.Parameters.Add("@nombre",cli.pNombre);

Comando.Parameters.Add("@ap",cli.pApellidos);

Comando.Parameters.Add("@edad",cli.pEdad);

Comando.Parameters.Add("@fnac",cli.pfNac);

Comando.Parameters.Add("@factacu",cli.pFactAcu);

Comando.Parameters.Add("@activo",cli.pActivo);

Comando.ExecuteNonQuery();


Nota: cli es un instancia de una clase. Donde están contenidos los valores que necesito y los obtengo a través de sus propiedades.

Si alguien me puede ayudar.
Muchas Gracias

LanderMen
06 de Octubre del 2005
creo que te falta en la sentencia sql creo que ahi tienes el problema. coloca los campos que quieres insertar. osea mencionarlos en la sentencia.

Kain
06 de Octubre del 2005
si vas a hacer un insert sin agregar los nombre de campo en el insert into ,
debiera ser asi:

insert into TABLA SELECT @Campo1, @Campo2 ...

saludos.

jm
06 de Octubre del 2005
no necesitas declarar parametros cuando usas una query sql,
tu query deberia crearse asi:
string consulta = "insert into Clientes values (" + cli.pNif + "," + cli.pNombre + .........
y no añadir parametros


migumu
06 de Octubre del 2005
mi problema es parecido pero en VB6 y con acceso a datos.
Osea que no es tan pareceido??

Bueno, necesito pasar unos datos de un fichero DBF a otro y tratarlos por el camino.

El código es algo así:

ado1.commandtype = acmdtext
ado1.recordsource = "Select * from CTB where Cod like ""1"""
ado1.refresh

Cuando llega a refresh me aparece el error igual que al creador del post.
En mi caso me aparece que solo le falta un parametro, que imagino que lo tomará como el 1 que tengo puesto en la select, pero..¿como le paso el valor del parametro al ado?

Muchas Gracias, me salvais la vida.