Principales respuestas
Actualizar registros de un DataTable

Pregunta
-
Buenas a todos
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 datosfichas As Datos.FichasDataTable = FichasTableAdapter
Dim FilaFichas As Datos.FichasRow
For Each FilaFichas In Datos.Fichas
If FilaFichas("NombreFicha") = Me.Label3.Text Then
FilaFichas.BeginEdit()
'MsgBox(CasillaDestino.Name)
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
Espero que alguien me pueda dar alguna pista... muchas gracias de antemano
Jose
Respuestas
-
hola
veo que haces
Dim DatosFichas As Datos.FichasDataTable = FichasTableAdapter.GetData
pero luego recorres una entidad difernete
For Each FilaFichas In Datos.Fichas
o sea Datos de dodne salio, no derias recorrer DatosFichasy actualziar este ?
Dim DatosFichas As Datos.FichasDataTable = FichasTableAdapter.GetData For Each FilaFichas As Datarow In DatosFichas.Rows If CStr(FilaFichas("NombreFicha")) = Me.Label3.Text Then FilaFichas.BeginEdit() FilaFichas("Casilla") = CasillaDestino.Name FilaFichas.EndEdit() Exit For End If Next FichasTableAdapter.Update(DatosFichas) Me.FichasDataGridView.Update() Me.FichasDataGridView.Refresh()
Leandro Tuttini
Blog
Buenos Aires
Argentina- Marcado como respuesta jmbegara sábado, 15 de octubre de 2011 21:55
Todas las respuestas
-
hola
veo que haces
Dim DatosFichas As Datos.FichasDataTable = FichasTableAdapter.GetData
pero luego recorres una entidad difernete
For Each FilaFichas In Datos.Fichas
o sea Datos de dodne salio, no derias recorrer DatosFichasy actualziar este ?
Dim DatosFichas As Datos.FichasDataTable = FichasTableAdapter.GetData For Each FilaFichas As Datarow In DatosFichas.Rows If CStr(FilaFichas("NombreFicha")) = Me.Label3.Text Then FilaFichas.BeginEdit() FilaFichas("Casilla") = CasillaDestino.Name FilaFichas.EndEdit() Exit For End If Next FichasTableAdapter.Update(DatosFichas) Me.FichasDataGridView.Update() Me.FichasDataGridView.Refresh()
Leandro Tuttini
Blog
Buenos Aires
Argentina- Marcado como respuesta jmbegara sábado, 15 de octubre de 2011 21:55
-
Efectivamente, ahora parece ser que sí lo guarda... lo que me ocurre ahora es que al intentar utilizar el código parecido para una vista para consultar unos valores, no me permite empezar, ya que al escribir:
Dim DatosFichas As Datos.FichasParaEquiposDataTable = fichasParaEquiposTableAdapter.getdata
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
Jose