Actualizar registros data table

Mi pregunta seguramente sea una tontería, pero no sé cómo resolverla:
Tengo una tabla con cuatro campos y lo único que quiero es, mediante código, ir recorriendo los registros de una tabla y en cuanto un registro cumpla una determinada condición, editar el valor de uno de los campos. Al ejecutar lo que tengo hecho por ahora aparentemente se guardan los datos, pero al ir a recuperarlos veo que me ha dejado la tabla tal y como la tenía antes de ejecutar la aplicación.
El código es:
'Almaceno en la tabla Fichas la casilla en la que está la nueva ficha
Dim DatosFichas As Datos.FichasDataTable = FichasTableAdapter.GetData
Dim FilaFichas As Datos.FichasRow
For Each FilaFichas In Datos.Fichas
If FilaFichas("NombreFicha") = Me.Label3.Text Then
FilaFichas.BeginEdit()
FilaFichas("Casilla") = CasillaDestino.Name
FilaFichas.EndEdit()
Exit For
End If
Next
Me. FichasBindingSource. EndEdit()
Me. TableAdapterManager. UpdateAll(Me. Datos)
Me.FichasDataGridView.Update()
Me. FichasDataGridView. Refresh()
Me doy cuenta de que no se actualizan los cambios en cuanto, a través de otro botón, vuelvo a recorrer los datos para que me muestre el valor del campo que me interese para cada registro
Respuesta
1
Te falta hacer la llamada al método AcceptChanges() del DataTable después de asignar el valor:
http://msdn.microsoft.com/en-us/library/system.data.datatable.acceptchanges(VS.80).aspx
Muchas gracias!
Ya lo había solucionado, se ve que estaba recorriendo un objeto diferente al que declaré al principio... sustituí "For Each FilaFichas In Datos.Fichas" por "For Each FilaFichas As DataRow In DatosFichas.Rows" y ya sí me funciona
Lo que me extraña entonces es que lo que me dices no haga falta ponerlo... lo que también quisiera preguntarte, si no es mucha molestia, es cómo hacer lo mismo que he hecho con la tabla, pero con una vista, ya que no me deja siquiera empezar con la primera instrucción:
El sistema IntelliSense no me deja escoger "FichasParaEquiposTableAdapter", mientras que en Orígenes de Datos sí me aparece la vista "FichasParaEquipos"... ¿cómo tendría que hacer referencia al tableAdapter de una vista para recorrer las filas como hacíamos con una tabla normal y corriente?
Muchas gracias de nuevo y un saludo
Jose
Ok lo que me comentas suele pasar que el intelliSense a veces no se actualiza, y sigue tomando el nombre del objeto en este caso"FichasParaEquipos" con el nombre que originalmente se pone "TableAdapter1" o algo así (cuando lo haces de manera visual o por wizards)
Checa la declaración de este objeto en el código para verificar que si se haga guardado bien, recompila el proyecto y guarda el proyecto y checa si ya te sale.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas