none
Actualizar registros de un DataTable RRS feed

  • 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

     

    lunes, 1 de agosto de 2011 12:15

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
    lunes, 1 de agosto de 2011 14:06

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
    lunes, 1 de agosto de 2011 14:06
  • 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

    lunes, 1 de agosto de 2011 17:12