WCF Ria Services V1.0 para Silverlight 4.- Guardar datos hacia la Base de Datos (Parte 7)

Una de las partes más importantes con el trabajo de datos es el poder hacer modificaciones en ellos. Esto incluye añadir nuevos registros, actualizarlos y eliminarlos. En esta ocasión estaremos viendo cómo es posible esto utilizando las características que WCF Ria Services nos ofrece.

Con el objetivo de mantener la simplicidad de los post, estaré escribiendo cada acción en un artículo diferente. En este veremos cómo es que funciona la actualización de datos. Esta, la acción que resulta más sencilla de las tres.

Actualización de datos, del lado del cliente

Uno de los detalles importantes a considerar en este proceso, es que los elementos que hemos usado para mostrar tanto la lista de registros como el detalle (y debido a que hemos dejado las propiedades en sus valores por default) la actualización de datos ya es posible del lado del cliente. Es decir, por ejemplo, en nuestra vista de detalle del registro podemos cambiar el valor que se muestra.

WCFRiaServices701

Lo que podemos observar, gracias a que tanto la lista de registros como el detalles están ligado al mismo Domain Data Source, es que al momento de que el TextBox pierde el foco, el dato también es actualizado en la lista de registros.

WCFRiaServices702

Pero es IMPORTANTE hacer notar que estos cambios solo están del lado del cliente. Esto quiere decir que en nuestra base de datos, no se ha hecho ninguna actualización. Así pues, si recargamos la aplicación (F5), podremos observar que los datos son nuevamente traídos desde la base de datos, y que nuestros cambios se han perdido.

Hacer la actualización en la base datos

Para hacer la actualización de los cambios hechos del lado del cliente, será necesario hacerlo desde el code behind de nuestro archivo xaml, por lo que agregaremos un botón que nos permita ejecutar un evento donde pondremos el código. Así pues, tendremos un botón con el siguiente codigo xaml:

<Button x:Name="btnSave"
    Content="Guardar cambios"
    Height="23"
    Width="115"
    HorizontalAlignment="Left"
    Click="btnSave_Click" />

Es el evento de click donde pondremos nuestro código que indicara a WCF Ria Services que los cambios deberán ser guardados en la base de datos, en este caso al que hemos llamado btnSave_Click

La instrucción para que los datos sean guardados, al igual que el resto de nuestras acciones, es de manera muy sencilla, y solo consiste en indicarle al Domain Data Source, que haga un sometimiento de los cambios (submit changes):

private void btnSave_Click(object sender, System.Windows.RoutedEventArgs e)
{
    productDomainDataSource.SubmitChanges();
}

Así pues, si verificamos los datos directamente en la base de datos (o si recargamos nuestra aplicación) veremos que los datos efectivamente han sido actualizados.

Siguientes post…

Quedan pendientes las otras dos acciones (agregar nuevo registro y eliminar registros) para las siguientes entregas, así como el hecho de regresar a explicar algunas características más sobre la vista de datos.

Gracias y saludos…

  • I_crojas

    Saludos …. que bien que otra vez estes de vuelta jorge,,,,

    Carlos A. Rojas – Peru

    • http://www.jorgelevy.com Jorge Levy

      Y esta semana continuaremos con la serie de posts.

      Hubo una pequeña interrupción ya que me puse a desarrollar un poco para el Windows Phone 7. Pero ya estamos de vuelta.

      Saludos y gracias.

      • Fredy Pulido

        esta muy buenas la explicacion… cuando continuaras? 

        Saludos.

  • Alex

    muy explicitotus enseñanzas, te felicito y esperamos los demas temas, agregar, eliminar y tambien data grid como fuente y chart para mostrar los datos del datagrid filtrado.
    Salu2 desde Ecuador
    Alex

  • Oscar Benitez

    Muchas felicidades Jorge, y que bueno que compartas tus conocimientos, son tan interesantes tus posts que ya espero con ansia el próximo capítulo.

    Desde México
    Oscar Benitez

  • Osvaldo

    Hola Jorge muy util el Blog, se agradece la contribución.

    Quería preguntarte como invoco un procedimiento almacenado (y los devuelvo al cliente obviamente) con WCF RIA SERVICES SP1, se supone que debería ser capaz de devolver un tipo de datos complejo al cliente (mapear ex ante los resultados del procedimiento) a una clase, pero llevo rato tratando y no se si la herramienta tiene un bug ó qué

  • carlos orjuela

    uy hermanno  excelente aporte.. me ayudoo muchisiiimoooooo gracias…estare pendiente al de agregar y eliminar

    • carlos rojas

      Hola carlos …. tienes algun correo,,, soy carlos rojas de peru … quizas podamos compartir .. algo sobre silverlilght…. y este tema de html5… mi mail es i_crojas@hotmail.com

  • hebertpena88

    Hola, una pregunta, y las peticiones, como viajan??, se pueden ver?, expone métodos que algún usuario pueda identificar y consumir?, saludos, excelente post.! me sirvió mucho

    • http://www.jorgelevy.com Jorge Levy

      No me he metido de lleno a esa parte, pero si la comunicación es en http, entonces si, los datos están expuestos; pero yo esperaría que si tu comunicación esta montada en https, entonces estos irían encriptados…
      Digamos que es cuestión del protocolo de comunicación en el que te montes, más que de la tecnología…
      Saludos…