Visual Basic.NET - No se ha especificado valores

 
Vista:

No se ha especificado valores

Publicado por Medardo (17 intervenciones) el 14/04/2009 20:08:06
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

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
Desde La Habana
Cuba
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de roger

RE:No se ha especificado valores

Publicado por roger (186 intervenciones) el 15/04/2009 00:23:21
ya has depurado?, para mirar en que linea exactamente sale la excepcion
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:No se ha especificado valores

Publicado por Medardo (17 intervenciones) el 15/04/2009 13:46:03
Hola Roger
Una vez llegado a la siguiente línea, se muestra la excepción:
comando.ExecuteNonQuery()
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:No se ha especificado valores

Publicado por pacopaz (19 intervenciones) el 15/04/2009 19:45:42
Lo que haría yo (pero, claro, ese soy yo) en tu caso, es probar de uno en uno los campos a editar.
Esto es: formar el update, con un solo set, luego con dos, luego con 3 y así hasta completar toda la lista. Es seguro que en alguno de ellos se presenta el error. Si se presenta el error desde el primero, cambiar el primero por algun campo cuyo tipo de datos sea distinto, para saber si se trata del update en general, o es sólo que algún tipo de datos lo estás tratando mal.
Esto por que normalmente lo que hago con las bases de datos y la administración de registros es delegar todo a la base de datos, creando stored procedures para inserción, edición, borrado y consulta. Así, los comandos los mando con una colección de parámetros que se encarga de traducir los datos a la forma correcta en la bd.

Espero que te sirva.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:No se ha especificado valores

Publicado por Medardo (17 intervenciones) el 15/04/2009 21:23:04
Gracias pacopaz, lo probaré y después les cuento.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:No se ha especificado valores

Publicado por Medardo (17 intervenciones) el 16/04/2009 13:42:13
Hola
Pues les diré que 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 en la consulta 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. Pero, indiscutiblemente, de no probarlo de la manera que me sugerió pacopaz, no sé el tiempo que me hubiera tomado para darme cuenta. Así que, gracias Roger por el interés y, en especial, a pacopaz.

Solo una última pregunta relacionado con este tema.
Ya comprobé que se modifican los datos, pero el formulario no se refresca. En .Net ¿cómo se refresca el formulario después de actualizar los datos?.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:No se ha especificado valores

Publicado por Damian (824 intervenciones) el 16/04/2009 19:10:08
Para refrescar: Me.Refresh()
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar