Está en la página 1de 6

16/7/2020 Problema: Desde Visual Studio se pierden los datos que grabó la aplicación | campusMVP.

es

La mejor forma de Aprender Programación online y en español


www.campusmvp.es

Problema: Desde Visual Studio se pierden


los datos que grabó la aplicación
Por Alberto Población

👉 Ahórrate problemas y dolores de cabeza con nuestro curso de Testing de


aplicaciones

ATENCIÓN: este contenido tiene más de 2 años de antigüedad y, debido a


su temática, podría contener información desactualizada o inexacta en la
actualidad.

Esta es una pregunta que aparece con frecuencia en los foros de programación
relacionados con Visual Studio:

Estoy creando una aplicación en Visual Studio usando C# y la edición Express de


Visual Studio. Utilizo la siguiente cadena de conexión:

1 connectionString="Data Source=.\SQLEXPRESS; AttachDbFilename=|Da

El programa aparentemente funciona bien y lee y graba los datos correctamente.


Pero cada vez que lo vuelvo a ejecutar, me encuentro con que todos los datos se
han perdido.

Testing de aplicaciones .NET y .NET Core con xUnit y Moqs. El curso de



testing que estabas esperando.

¿Por qué sucede esto, y cómo puedo evitarlo?

https://www.campusmvp.es/recursos/post/Problema-Desde-Visual-Studio-se-pierden-los-datos-que-grabo-la-aplicacion.aspx 1/6
16/7/2020 Problema: Desde Visual Studio se pierden los datos que grabó la aplicación | campusMVP.es

Lo primero que necesitas comprender es que tu proyecto no tiene una sino dos
bases de datos. Una es la que has añadido en tiempo de diseño en el código
fuente. Y la otra se genera automáticamente en el |Datadirectory|. Esta
última es la que realmente utiliza el programa en tiempo de ejecución.

En la anterior imagen del Explorador de Soluciones hemos hecho clic en el botón de


“Mostrar todos los archivos” para que se vea el contenido de la carpeta bin, que
normalmente permanece oculta. Nótese que contiene una segunda copia de la
misma base de datos que habíamos creado a nivel de proyecto en tiempo de
desarrollo.

El comportamiento predeterminado de Visual Studio es el de copiar


automáticamente la base de datos de la carpeta de los fuentes a la carpeta del
ejecutable cada vez que se ejecuta la aplicación. Por lo tanto, los cambios que el
programa había hecho en la base de datos de la carpeta ejecutable se pierden
cuando el programa se vuelve a ejecutar y dicha base de datos se sobrescribe con la
que había en la carpeta fuente, que no contiene dichos cambios.

El motivo por el que existe ese comportamiento es que permite ejecutar el


programa varias veces mientras se está depurando, y que su comportamiento sea
siempre el mismo ya que parte de los mismos datos, en lugar de depender de los
resultados de la última ejecución. Por lo tanto, facilita las pruebas y depuración.
https://www.campusmvp.es/recursos/post/Problema-Desde-Visual-Studio-se-pierden-los-datos-que-grabo-la-aplicacion.aspx 2/6
16/7/2020 Problema: Desde Visual Studio se pierden los datos que grabó la aplicación | campusMVP.es

Pero si el comportamiento que deseamos no es ese, puede cambiarse haciendo clic


sobre la base de datos fuente en el Explorador de Soluciones,  y modi cando la
propiedad “Copy to Output Directory”.

De forma predeterminada está seleccionada la opción “copiar siempre”, que da


lugar al comportamiento que hemos indicado más arriba. Se puede cambiar a “Do
not copy”, en cuyo caso se deshabilita por completo la copia, o a “Copy if newer” ,
que hace que se copie únicamente si hemos introducido algún cambio en la versión
de la base de datos que hay en los fuentes, y en consecuencia es “más nueva” que la
que hay en el directorio del ejecutable.

Con esto se resuelve un problema relativamente trivial, pero que ocasiona sorpresa
en muchos desarrolladores que comienzan a usar Visual Studio y todavía no
conocen esta característica.

Fecha de publicación: 15 de julio de 2014

👉 Ahórrate problemas y dolores de cabeza con nuestro curso de Testing de


aplicaciones

https://www.campusmvp.es/recursos/post/Problema-Desde-Visual-Studio-se-pierden-los-datos-que-grabo-la-aplicacion.aspx 3/6
16/7/2020 Problema: Desde Visual Studio se pierden los datos que grabó la aplicación | campusMVP.es

Alberto es MVP de C#, y lleva varias décadas desarrollando software. Cuenta entre otras con
las certi caciones MCSE, MCDBA, MCITP, MCSD, MCPD. En la actualidad
trabaja como consultor independiente dedicándose también a la
formación. Es instructor certi cado por Microsoft.

Archivado en: General | Trucos

Comentarios (8) -

Rafael
10/11/2017 7:23:23

Muchas gracias por la información, era lo que necesitaba y no sabía como buscar. Muy bien
explicado

Responder

Didier
18/06/2018 21:07:58

Estoy programando en VS Express 2012, Basic, hice tal como dices, pero no me funciono... asi ke
sigo buscando una respuesta ke funcione.

Responder

JAVIER V.
14/11/2018 17:00:11

Mi querido Alberto, sigo con el mismo problema. Solo que yo estoy trabajando con visual
basic.net y access.
Donde esta el problema.
Gracias

Responder

Reynaldo
21/11/2018 17:13:52

Necesito ayuda con la cadena de conexión con una base de datos creada dentro de la carpeta
app_data en visual studio 2017, o sea un archivo .mdf, o como se identi ca el servidor con el
asistente.

Responder

https://www.campusmvp.es/recursos/post/Problema-Desde-Visual-Studio-se-pierden-los-datos-que-grabo-la-aplicacion.aspx 4/6
16/7/2020 Problema: Desde Visual Studio se pierden los datos que grabó la aplicación | campusMVP.es

José Manuel Alarcón


21/11/2018 18:16:36

Hola Reynaldo:

Para acceder de manera directa a una base de datos contenida en un archivo .mdf dentro
de la carpeta App_Data de tu proyecto debes tener instalado SQL Server Express Edition
(www.microsoft.com/.../sql-server-editions-express) que es el que tiene la capacidad de
adjuntar dinámicamente las bases de datos cuando son necesarias, facilitando así su
despliegue.

Si tienes SQL Server Express instalado, entonces la cadena de conexión es simplemente:

"data source=.\SQLEXPRESS;Integrated
Security=SSPI;AttachDBFilename=|DataDirectory|TuArchivo.mdf;User Instance=true"

Siendo "TuArchivo.mdf" el nombre de tu archivo de datos.

Saludos!

Responder

abate
28/04/2019 23:43:08

hola Reynaldo soy Claudio abate estoy en 2°año de desarrollo de software y tengo un problema
que seguro para vos es muy tonto pero a mi me esta volviendo loco tengo un proyecto en visual
studio 2017 y tengo un modulo de conexión y tengo dos bases de datos de access como puedo
hacer para cuando conecte lo hagan las dos y algo mas tengo dos formularios hechos y tiene
botones de : agregar, buscar, salir, modi car y cancelar la cosa que cuando hago andar
conectando una sola base de datos que ahi si anda el botón modi car no me remplaza los datos
del id que pongo sino que me lo guarda generando otro id no te imaginas como me estoy
volviendo re loco no te imaginas como agradecería tu ayuda te cargo la línea de código de
conexión del modulo y la línea de el botón modi car.
Module Module1
    Public coneccion As New OleDb.OleDbConnection("provider=microsoft.ace.oledb.12.0;data
source=c:\tp\datos\escuela_abba1.accdb;persist security info=false")
    Public comando As OleDb.OleDbCommand
    Public lectordedatos As OleDb.OleDbDataReader
End Module
y
Private Sub modi car_Click(sender As Object, e As EventArgs) Handles modi car.Click
        Try
            Dim modi car As String
            modi car = ""
            modi car = "update escuela set apellido '" & apellido.Text & "', nombre '" & nombre.Text
& "', direccion '" & direccion.Text & "', localidad '" & localidad.Text & "', dni '" & dni.Text & "' where
id = " & Val(id.Text) & ""
            comando.Connection = coneccion
            comando.CommandType = CommandType.Text
            comando.CommandText = modi car
            MsgBox("DATOS MODIFICADOS")
        Catch ex As Exception

https://www.campusmvp.es/recursos/post/Problema-Desde-Visual-Studio-se-pierden-los-datos-que-grabo-la-aplicacion.aspx 5/6
16/7/2020 Problema: Desde Visual Studio se pierden los datos que grabó la aplicación | campusMVP.es

            MsgBox(ex.ToString)
        End Try
    End Sub
End Class
muchas gracias......seguro vos si vas a ver donde esta la falla.

Responder

Freddy
08/05/2019 20:38:45

abate:  revisa que en el diseño de tu tabla (en access) no tengas el campo Id como


Autonumeración y cambialo a Número (Entero).

Responder

Valentín
10/01/2020 19:46:02

Hice un programa en visual estudio basic, y un userform.. El cual mostraba un gra co desde
puerto... Hice un ejecutable y ya no puedo ingresar al programa se borro o se perdió, no se
como recuperarlo

Responder

© Krasis Consulting S.L.U. - Aviso Legal y Política de privacidad - Política de Cookies


Publica como autor invitado

https://www.campusmvp.es/recursos/post/Problema-Desde-Visual-Studio-se-pierden-los-datos-que-grabo-la-aplicacion.aspx 6/6

También podría gustarte