none
Guardar registro en Base de Datos .acces RRS feed

  • Pregunta

  • Hola amigos, tengo un problema que no consigo resolver y quisiera que me ayudarais.

    Vereis tengo una Base de datos hecha con acces 2010, tengo un formulario en el que tengo una DataGrid, 4 TextBox y un botón, hice la conexión a la base de datos y me agregó una copia de la base de datos al directorio raiz de mi aplicacion y otra copia en bin\debug, tambien relacioné la DataGrid a la tabla correspondiente, el problema viene cuando en tiempo de ejecución agrego un nuevo registro desde los TextBox, me los agrega a la DataGrid y me guarda el registro nuevo en la base de datos que está en bin\debug y no en la base que está en el raiz que es donde está direccionado el DataSet, y cuando vuelvo a ejecutar la aplicación no veo los nuevos registros en la DataGrid ya que está relacionada con el DataSet y este está relacionado al directorio raiz y no al bin\debug y por mas que cambio la dirección siempre hace lo mismo.

    Alguien me puede ayudar por favor

    domingo, 5 de julio de 2015 0:05

Respuestas

  • Adjunto una imagen. Aquí ves el Explorador de soluciones en el que se ha hecho clic sobre la base de datos (en mi proyecto es un .sdf pero funciona igual con otros tipos), y debajo se muestran las Propiedades entre las que he señalado en rojo la que tienes que modificar.

    Propiedades - Copy to Output Directory

    domingo, 5 de julio de 2015 9:58

Todas las respuestas

  • Está hecho así aposta en Visual Studio. La idea es que haces un diseño de base de datos y lo cargas con datos de prueba en el directorio de la aplicación. Después, cada vez que ejecutas la aplicación, te hace una copia de esos datos de prueba al bin\debug, y experimentas con la aplicación que posiblemente cometa varios errores y corrompa los datos. La próxima vez que la ejecutas, se vuelve a copiar, con lo que empiezas siempre con una copia "fresca" de los datos de prueba.

    Si quieres deshabilitar esa copia, puedes pinchar en las Propiedades del archivo de base de datos, y seleccionar una opción tal como "Never" u "Only if newer" en las opciones de copia (en lugar de "Always copy").

    Nótese que todo eso sólo afecta a la depuración en tiempo de desarrollo. Una vez que pongas el programa en producción, la ruta del archivo de datos es la que tú le pongas en la cadena de conexión, y siempre irá a esa ruta sin tener en cuenta ninguna de las mencionadas opciones que sn solo para tiempo de desarrollo.

    domingo, 5 de julio de 2015 8:19
  • Hola lo siento otra vez pero por más que miró en las propiedades de la base de datos no encuentro las opciónes de copia para cambiar a never. Me puedes decir como hacerlo?. Gracias
    domingo, 5 de julio de 2015 9:49
  • Adjunto una imagen. Aquí ves el Explorador de soluciones en el que se ha hecho clic sobre la base de datos (en mi proyecto es un .sdf pero funciona igual con otros tipos), y debajo se muestran las Propiedades entre las que he señalado en rojo la que tienes que modificar.

    Propiedades - Copy to Output Directory

    domingo, 5 de julio de 2015 9:58
  • Perdona otra vez pero en mi explorador de soluciones la base de datos que sale y es la que tengo se llama en este caso repuesto.accdb y no tengo ningún fichero ni sale en el explorador de soluciones nada con la extensión .sdf, sólo tengo la base de datos anteriormente dicho y el DataSet.xsd Siento molestarte otra vez
    domingo, 5 de julio de 2015 11:18
  • [...] la que tengo se llama en este caso repuesto.accdb y no tengo ningún fichero ni sale en el explorador de soluciones nada con la extensión .sdf,

    A ver, vuelve otra vez a mi respuesta y lee con detenimiento la frase en la que digo lo siguiente: "...clic sobre la base de datos (en mi proyecto es un .sdf pero funciona igual con otros tipos), ...".

    Cuando hagas click sobre tu .accdb te saldrá en las propiedades lo mismo que a mí me salía cuando yo hacía click sobre mi .sdf.

    domingo, 5 de julio de 2015 16:34