• Lunes 23 de Diciembre de 2024, 17:10

Autor Tema:  No se ha especificado valores  (Leído 7277 veces)

MedardoSantana

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
No se ha especificado valores
« en: Miércoles 15 de Abril de 2009, 13:49 »
0
Hola
Es la primera vez que escribo a este foro. Un saludo para todos.

Tengo el siguiente código en Visual Basic .Net, donde he obviado otras declaraciones y apertura y cierre de la conexión para hacer más corto el código.

Dim comando As New OleDb.OleDbCommand
comando.Connection = oConexion
comando.CommandText = actUpdate
comando.ExecuteNonQuery()
oDataSet.Clear()
oDataAdapter.Fill(dt)
MessageBox.Show("Actualizado")

‘dt’ es el DataTable

Haciendo pruebas, la variable ‘actUpdate’ muestra el siguiente código:

UPDATE Delegados SET Proced=’Micons’, AnnoQueCursa=2, Carrera=’Informática’, NivelEscolar=’EMS’, Estudia=1,Nac=1,Elemental=1,FechaAlta=’16/12/2008’, TiempoEnCargo=5, FechaAprob=’16/12/2008’, CargoActual=’Profesor’, AnnoExpProv=2, AnnosExpMcpio=1, AnnosExpBase=2, Prov=’La Habana’, Nombres=’Enrique’, PApell=’Pérez’, SApell=’Rodríguez’, ColorPiel=’Blanca’, Sexo=’F’, Mcpio=’Plaza’, NoCarne=58052519410, Edad=40 WHERE Id=1

En la siguiente línea:
comando.ExecuteNonQuery()
Me salta el siguiente error:
“No se ha especificado valores para algunos de los parámetros requeridos”

No acabo de encontrar dónde está el error. ¿Alguien tiene alguna idea?
Gracias

Tipos de datos:

De texto:
Proced
Carrera
NivelEscolar
CargoActual
Prov
Nombres
PApell
SApell
ColorPiel
Sexo
Mcpio

Numéricos:
AnnoQueCursa
TiempoEnCargo
AnnoExpProv
AnnosExpMcpio
AnnosExpBase
NoCarne
Edad
Id (Autonumérico)

Fecha/Hora:
FechaAlta
FechaAprob

Sí/No:
Estudia
Elemental
__________________
Saludos
Medardo Santana

javierkcjm

  • Miembro activo
  • **
  • Mensajes: 48
  • Nacionalidad: ec
    • Ver Perfil
Re: No se ha especificado valores
« Respuesta #1 en: Miércoles 15 de Abril de 2009, 23:08 »
0
hola,

guiandome por tu codigo haces esto sin obviar ninguna linea critica

Citar
Dim comando As New OleDb.OleDbCommand
comando.Connection = oConexion
comando.CommandText = actUpdate
comando.ExecuteNonQuery()
oDataSet.Clear()
oDataAdapter.Fill(dt)
MessageBox.Show("Actualizado")

tu sql esta bien la falla es que no abres la coneccion
antes del executenonquery

oConexion.open()
comando.ExecuteNonQuery()

a diferencia del metodo fill del adaptador no necesita explicitamente abrir la coneccion ya que si esta abierta la usa si no la abre

espero ayudarte

saludos Cordiales

JC

MedardoSantana

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: No se ha especificado valores
« Respuesta #2 en: Jueves 16 de Abril de 2009, 14:10 »
0
Hola Javier
Anoche pude encontrar el problema. En realidad, no era de apertura de la conexión, incluso, al principio del mensaje aclaré que había obviado declaraciones y apertura y cierre de la conexión para hacer más corto el código. De todas formas, agradezco tu nota relacionado con el método fill del adaptador. Comienzo en esto de .Net y estoy necesitando de mucha información, esto es prácticamente como empezar a programar de nuevo.
Te cuento donde estaba el error:
Pues tenía un error en la función que conforma la consulta SQL. Resulta que esa función tiene al final una instrucción que elimina la primera coma que separa los campos. Al principio no daba error, pero después tuve necesidad de hacer la función recursiva y, al pasar por esa instrucción, la primera vez eliminaba la coma, pero a partir de la segunda vez, eliminaba un carácter del nombre del primer campo. Por eso, siempre me daba el mismo error aunque conformara la instrucción campo a campo.
Gracias por tu interés Javier.


Cita de: "javierkcjm"
hola,

guiandome por tu codigo haces esto sin obviar ninguna linea critica

Citar
Dim comando As New OleDb.OleDbCommand
comando.Connection = oConexion
comando.CommandText = actUpdate
comando.ExecuteNonQuery()
oDataSet.Clear()
oDataAdapter.Fill(dt)
MessageBox.Show("Actualizado")

tu sql esta bien la falla es que no abres la coneccion
antes del executenonquery

oConexion.open()
comando.ExecuteNonQuery()

a diferencia del metodo fill del adaptador no necesita explicitamente abrir la coneccion ya que si esta abierta la usa si no la abre

espero ayudarte

saludos Cordiales

JC

javierkcjm

  • Miembro activo
  • **
  • Mensajes: 48
  • Nacionalidad: ec
    • Ver Perfil
Re: No se ha especificado valores
« Respuesta #3 en: Jueves 16 de Abril de 2009, 16:10 »
0
:D ahhh ok amigo, te dije de la coneccion por que me base en las lineas inlcuidas pero bueno que ya encontrastes el error!!!!

te sugeriria no obviar codigo ya que en el mundo de la programacion la linea que tu crees que no da error puede ser la que te este armando toda una guerra en tu codigo.. :comp:

saludos cordiales

JC

MedardoSantana

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: No se ha especificado valores
« Respuesta #4 en: Jueves 16 de Abril de 2009, 21:44 »
0
Tienes razón Javier, lo mejor es poner todo el código, incluso, ya me sucedió en una ocasión.
Bueno, ahora no estoy seguro como dar por terminado este hilo, pero por mi parte, es todo.
Gracias nuevamente.
Saludos
Medardo

Cita de: "javierkcjm"
:D ahhh ok amigo, te dije de la coneccion por que me base en las lineas inlcuidas pero bueno que ya encontrastes el error!!!!

te sugeriria no obviar codigo ya que en el mundo de la programacion la linea que tu crees que no da error puede ser la que te este armando toda una guerra en tu codigo.. :comp:

saludos cordiales

JC