Visual Basic.NET - actualizar odbc

 
Vista:

actualizar odbc

Publicado por lenitarr (31 intervenciones) el 19/08/2004 17:54:06
Hola a todos, tengo este fragmento de codigo que me modifica mi archivo .dbf, pero no se como hacer para que los cambios realizados se reflejen en mi archivo, alguien me puede ayudar?

odbdataadapter1.Fill(dataset11, "apun0401")
dataset11.Tables("apun0401").Rows(1).Item(2) = "4105"

Muchas gracias
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

RE:actualizar odbc

Publicado por Edgar (1501 intervenciones) el 19/08/2004 17:59:03
Hola

Debes usar el método odbdataadapter1.Update(dataset11,"apun0401")

Debes asegurarte que tu adaptador odbdataadapter1 tenga asignada la propiedad UpdateCommand, DeleteCommand e InsertCommand, si no es asi, creas un CommandBuilder (obdcCommandBuilder) y le pasas en el constructor el adaptador, que el se encarga de crear los comandos necesarios para que puedas actualizar tus datos

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:actualizar odbc

Publicado por lenitarr (31 intervenciones) el 19/08/2004 18:18:23
Muchas gracias por tu inestimable ayuda Edgar, mira he creado esas lineas de codigo y debo estar haciendo algo mal porque me sale el siguiente error: La generacion dinamica de SQL para updatecommand no es compatible con selectcommand si este no devuelve la informacion acerca de columnas clave.

Dim cb As New OdbcCommandBuilder(odbdataadapter1)
odbdataadapter1.Fill(dataset11, "apun0401")
dataset11.Tables("apun0401").Rows(1).Item(2) = "4105"
odbdataadapter1.Update(dataset11, "apun0401")
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:actualizar odbc

Publicado por Edgar (1501 intervenciones) el 19/08/2004 18:29:02
Hola

Revisa entonces tu clausula Select porque por lo visto no estas seleccionando los campos que son clave primaria, los cuales son necesarias para hacer la actualización de los datos

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:actualizar odbc

Publicado por lenitarr (31 intervenciones) el 19/08/2004 18:46:42
En el momento en el que se hace algun cambio en la tabla me da el error anterior, yo tengo el siguiente codigo:
Dim odbcommand As New OdbcCommand("SELECT ACL, CON, CUE, DOC, FAC, FEC, FEV, IMPEU, MAR, MMM, NUM, SIG, XXX FROM APUN0401 ORDER BY CUE", cnDBF)
esos son todos los campos de mi tabla apun0401, el problema es que no tengo ninguna clave primaria en la tabla puesto que las columnas tienen valores repetidos e incluso nulos, yo solo quiero modificar el valor del campo CUE, e probado incluso a seleccionar solo la columna CUE en mi sentencia select pero da el mismo error...
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:actualizar odbc

Publicado por Edgar (1501 intervenciones) el 19/08/2004 19:13:09
Hola

bueno, en este caso tendrás que recorrer una por una las filas de tu tabla, cada fila (datarow) tiene una propiedad RowState, la cual te indica si la fila fue añadida, eliminada, modificada o simplemente no tiene ningún cambio.

Con esto, sabrás que fila fue modificada, y de esta manera ejecutas el Update manualmente, creo que es la única forma de hacer lo que quieres ya que no tienes clave primaria.

La otra opción es que le coloques una clave que sea autonumérica en tu tabla

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:actualizar odbc

Publicado por lenitarr (31 intervenciones) el 20/08/2004 08:46:47
Hola de nuevo, mira hize lo siguiente:
odbdataadapter1.Fill(dataset11, "apun0401")
dataset11.Tables("apun0401").Rows(0).Item("CUE") = "999999999"
odbdataadapter1.Update(dataset11.GetChanges(DataRowState.Modified), "apun0401")

pero me sigue dando el mismo error en la ultima linea :'(
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