SoloCodigo
CLR: .Net / Mono / Boo / Otros CLR => VB .NET => Mensaje iniciado por: MedardoSantana en Miércoles 15 de Abril de 2009, 13:49
-
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
-
hola,
guiandome por tu codigo haces esto sin obviar ninguna linea critica
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
-
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.
hola,
guiandome por tu codigo haces esto sin obviar ninguna linea critica
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
-
: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
-
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
: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