none
No guarda cambios base de datos a traves de dataset RRS feed

  • Pregunta

  • Hola,

    ya tuve un porblema parecido hace tiempo y la solucion fue pasar la base de datos de access a SQL y se arreglo.

    El caso es que este otro proyecto lo he hecho directamente a traves de una base de datos SQL server incluida en el proyecto (no tengo conexion), me muestra los datos, hago los cambios.. aparentemente me los guarda, pero saliendo y entrando  de la aplicacion no me carga los cambios....

    parto de un ejemplo colgado por un compañero de este foro, el qual solamente muetra los valores dataset, yo quiero editar,borrar..etc

    mi codigo  es:

    (la parte de xaml tengo los bindings en Two Way.. no los muestro)

    he declarado el Wiew (no se si es el mas correcto, ya que tengo un proyecto  anterior con el y me funciona), cual es la alternativa mas adequada?

    y unicamente tengo editado (recuerdo que la base de datos  .mdf la tengo en el proyecto)

    Class MainWindow
      'Definimos los objetos con los que vamos a trabajar.
      Private dsamistats As New amistatsDataSet
      Private custamistats As New amistatsDataSetTableAdapters.amistatsTableAdapter
      Private View As CollectionView
    
    Public Sub New() ' This call is required by the designer. InitializeComponent() ' Add any initialization after the InitializeComponent() call. ' Obtenemos nuestros datos. custamistats.Fill(dsamistats.amistats) 'Establecemos la tabla Orders como el DataContext de la ventana. Me.DataContext = dsamistats.amistats Me.View = CollectionViewSource.GetDefaultView(Me.dsamistats.amistats) End Sub Private Sub BtGuardar_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles BtGuardar.Click Try If Me.dsamistats.HasChanges Then If Me.custamistats.Update(dsamistats) > 0 Then MsgBox("Guardat") End If End If Catch ex As Exception MsgBox(ex.ToString) End Try End Sub Private Sub BtDel_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles BtDel.Click If Me.View.CurrentPosition > -1 Then Dim row = CType(Me.View.CurrentItem, System.Data.DataRowView).Row row.Delete() End If End Sub End Class

    
    
    

     

     

    miércoles, 18 de agosto de 2010 9:26

Respuestas

  • Aparentemente el código lo veo correcto.

     

    Si te animas sube algun sitio el proyecto con la BD para revisarlo.

     

    Un saludo.


    Para el correcto funcionamiento, y que otros usuarios se puedan beneficiar de la solucion de esta pregunta por favor marca las respuestas que te hayan ayudado como "Respuesta".
    Si la respuesta te ha sido util Votala.
    Mi Blog: Jtorrecilla
    Enlace a Faq de Winforms en Ingles Muy bueno
    • Marcado como respuesta Spandau lunes, 30 de agosto de 2010 15:22
    • Desmarcado como respuesta Spandau lunes, 30 de agosto de 2010 21:50
    • Marcado como respuesta Spandau lunes, 4 de octubre de 2010 7:28
    viernes, 20 de agosto de 2010 6:02
    Moderador
  • Solo elimina el ejecutable que se encuentra dentro de la carpeta debug y luego volve a ejecutar el programa desde visual estudio y listo

    Johan

    • Marcado como respuesta Spandau martes, 23 de octubre de 2012 21:01
    martes, 23 de octubre de 2012 17:00

Todas las respuestas

  • Hola podrías verificar lo siguiente:

     

    Desde el explorador de soluciones, boton derecho sobre el fichero de la Base de Datos--> Propiedades

     

    Verifica que tienes puesto en la Propiedad "Copiar en el directorio de Resultados", Si la propiedad tiene un valor distinto de "No copìar", sustituyelo, y copia de manera manual la base de datos al directorio de compilación. Si tiene otro valor indica que cada vez que geners("Copiar Siempre"), o cada vez que hagas un cambio en la BD, se copie la base de datos con los datos que tu hasyas definido con la BD, al directorio de resultados.

     

    Un saludo.


    Para el correcto funcionamiento, y que otros usuarios se puedan beneficiar de la solucion de esta pregunta por favor marca las respuestas que te hayan ayudado como "Respuesta".
    Si la respuesta te ha sido util Votala.
    Mi Blog: Jtorrecilla
    Enlace a Faq de Winforms en Ingles Muy bueno
    miércoles, 18 de agosto de 2010 9:29
    Moderador
  • Gracias jtorrecilla,

    en propiedades tenia copiar siempre , lo ha cambiado por -> no copiar y cuando ejecuto me sale un error 'no tiene codigo....', lo vuelvo a poner a copiar siempre y me vuelve a cargar la base de datos...

    La segunda parte de volver a cambiar de forma manual al directorio de compilacion... ya lo tengo allí...

    la ultima parte, disculpa, no la acabo de entender... gracias

    miércoles, 18 de agosto de 2010 10:44
  • Lo de cambiar la BD de Forma manual:

     

    Cuando tienes los valores que te indicaba arriba, tiene sque copiar tu la BD en el directorio Debug o  Release(segun compiles) para que la aplicacion la detecte.

     

    Copiala de forma manual tu en ese directorio y prueba si te guarda los cambios o no cuando cierras.


    Para el correcto funcionamiento, y que otros usuarios se puedan beneficiar de la solucion de esta pregunta por favor marca las respuestas que te hayan ayudado como "Respuesta".
    Si la respuesta te ha sido util Votala.
    Mi Blog: Jtorrecilla
    Enlace a Faq de Winforms en Ingles Muy bueno
    miércoles, 18 de agosto de 2010 10:50
    Moderador
  • Hola jtorrecilla,

    lo he hecho y no los guarda,  he estado haciendo comprovaciones y no llega a guardar a dataset...pienso que debe ser un error en el codigo escrito por mi... me habre olvidado algun detalle que no veo...

    ire mirando...

    GRACIAS

    jueves, 19 de agosto de 2010 22:46
  • Aparentemente el código lo veo correcto.

     

    Si te animas sube algun sitio el proyecto con la BD para revisarlo.

     

    Un saludo.


    Para el correcto funcionamiento, y que otros usuarios se puedan beneficiar de la solucion de esta pregunta por favor marca las respuestas que te hayan ayudado como "Respuesta".
    Si la respuesta te ha sido util Votala.
    Mi Blog: Jtorrecilla
    Enlace a Faq de Winforms en Ingles Muy bueno
    • Marcado como respuesta Spandau lunes, 30 de agosto de 2010 15:22
    • Desmarcado como respuesta Spandau lunes, 30 de agosto de 2010 21:50
    • Marcado como respuesta Spandau lunes, 4 de octubre de 2010 7:28
    viernes, 20 de agosto de 2010 6:02
    Moderador
  • Gracias a JTorrecilla ya me funciona pero NO ACABO DE ENTENDER UNA COSA...NO TENGO LOS CONCEPTOS CLAROS..

    como explica niestro compañero anteriormente el problema lo tengo en el proyecto--> base de datos --> ha de estar el valor de copiar en el directorio de resulados-->Copiar si es posterior.

    mi duda es que este proyecto cargado en visual studio 2010 NO ME GUARDA LOS CAMBIOS SI SALGO DE LA APLICACION Y VUELVO A ENTRAR, en cambio si ejecuto el .exe de la carpeta debug va perfecto.. .

    Segun mis 'modestos/pobres' conocimientos el contenido de la carpeta debug es lo que le instalamos al cliente,  donde tiene oculto el código, o sea  una sintetizacion..... pero a mi entender el acceso a los datos tendria que ser el mismo QUE NO ES MI CASO...

    ¿Porque?

    lunes, 30 de agosto de 2010 15:39
  • Solo elimina el ejecutable que se encuentra dentro de la carpeta debug y luego volve a ejecutar el programa desde visual estudio y listo

    Johan

    • Marcado como respuesta Spandau martes, 23 de octubre de 2012 21:01
    martes, 23 de octubre de 2012 17:00