Actualizar Dataset cargado con Procedimiento Almacenado

29/11/2005 - 11:37 por Raul Marcial | Informe spam
Hola,

Tengo este codigo:

****************************************************************************************************************

Dim oCommand As SqlClient.SqlCommand = New
SqlClient.SqlCommand("[PA_DevolverEventos]", Conexion)
oCommand.CommandTimeout = 0
oCommand.CommandType = CommandType.StoredProcedure
oCommand.Parameters.Add("@Vehiculo", SqlDbType.Int).Value CInt(Mid(CBVehiculos.SelectedItem, 1, 8))
oCommand.Parameters.Add("@FechaInicio", SqlDbType.Char,
19).Value = DTFechaInicio.Text & " 00:00:00"
oCommand.Parameters.Add("@FechaFin", SqlDbType.Char,
19).Value = DTFechaFin.Text & " 23:59:59"

Conexion.Open()
DaGVEventos = New SqlClient.SqlDataAdapter(oCommand)
DsGVEventos = New DataSet()
DaGVEventos.Fill(DsGVEventos, "EVENTOS")
Conexion.Close()

***************************************************************************************************************

Funciona normalmente, lo q me gustaria saber es como, si modifico algun
dato en la tabla EVENTOS, como lo actualizo en la base de datos
mediante el dataadapter, ya q al intentar:

DaGVEventos.Update(DsGVEventos, "EVENTOS")

me da el siguiente error: "Update requiere que UpdateCommand sea
válido cuando se pasa la colección DataRow con filas modificadas"

Creo q es pq como no estoy utilizando un SqlCommandBuilder,
UpdateCommand esta vacio.

¿Hay alguna manera de actualizar todo la tabla a la vez como hace el
.Update o es mejor recorrerla y hacer una sentencia SQL
(UPDATE...SET...) por cada modificación?

Gracias, un saludo.
 

Leer las respuestas

#1 A.Poblacion
29/11/2005 - 12:35 | Informe spam
"Raul Marcial" wrote in message
news:
¿Hay alguna manera de actualizar todo la tabla a la vez como hace el
.Update o es mejor recorrerla y hacer una sentencia SQL
(UPDATE...SET...) por cada modificación?



Da igual. El .Update por dentro lo que hace precisamente es enviar una
sentencia SQL (UPDATE...SET...) por cada modificación que se encuentra
dentro del DataSet.

Creo q es pq como no estoy utilizando un SqlCommandBuilder,
UpdateCommand esta vacio.



En tu caso no puedes utilizar un SqlCommandBuilder. Esta herramienta lo
que hace es analizar la sentencia SELECT del SelectCommand y a partir de
ella deducir el UPDATE que le corresponde. Pero como no estás usando una
Select sino un procedimiento almacenado, no hay forma de que el
SqlCommandBuilder pueda deducir cuál es la sentencia Update.

No tendrás más remedio que construir a mano la sentencia Update y
ponérsela al UpdateCommand. O hacer un procedimiento almacenado que grabe y
ponérselo al UpdateCommand.

Preguntas similares