21

Necesito actualizar mi base de datos SqlCE3.5 a 4.0.¿Cómo puedo actualizar mi Sql Server CE 3.5 sdf a Sql Server CE 4.0?

me sale el siguiente mensaje de error cuando intento acceder a mi sdf 3.5/base de datos utilizando la nueva conexión CE4.0 proporcionar: -

System.Data.EntityException: The underlying provider failed on Open. ---> System.Data.SqlServerCe.SqlCeInvalidDatabaseFormatException: The database file has been created by an earlier version of SQL Server Compact. Please upgrade using SqlCeEngine.Upgrade() method.

Alguien sabe cómo puedo hacer esto? Obviamente tengo que hacerlo programáticamente, pero no estoy seguro de qué hacer/qué referencias necesito agregar, etc.

¡Salud!

+1

¿No es obvio? Llamar 'SqlCeEngine.Upgrade()'! ¿O hay un problema? También tenga en cuenta las incompatibilidades entre las diferentes versiones. – leppie

+0

Sugerencia: algunos ejemplos de código, por favor. Cuando probé un código, no se pudo compilar. –

+0

@leppie: i) ¿Dónde? ¿En que contexto? ¿Con qué argumentos? ii) SqlCeEngine no contiene un método llamado Upgrade(). El mensaje es inútil. –

Respuesta

14

Llame System.Data.SqlServerCe.SqlCeEngine.Upgrade. Ver MSDN, que contiene código de muestra.

8

No es necesario actualizar cuando vea este error:

The database file has been created by an earlier version of SQL Server Compact. Please upgrade using SqlCeEngine.Upgrade() method.

Simplemente:

  1. Haga clic con el proyecto en el Explorador de soluciones
  2. Elija las propiedades, ir a la pestaña Referencias
  3. Verá una referencia llamada: System. Data.SqlServerCe Type/net version/4.0 - elimine este elemento (seleccione el elemento y luego haga clic en eliminar en la parte inferior de esta ventana).
  4. Haga clic en el botón "agregar ..." que se encuentra a la izquierda del botón "eliminar"
  5. En la pestaña .NET, busque System.Data.SqlServerCe 3.5 y agréguela.
  6. ¡Completa tu proyecto!

Creo que esto funcionará.

+2

Sí, no es necesario actualizar, a menos que sea necesario. Si no encuentra System.Data.SqlServerCe en .NET Tab, agregue la referencia de C: \ Archivos de programa \ Microsoft SQL Server Compact Edition \ v3.5 \ Desktop – Brij

+0

Este consejo es bastante presuntuoso: muchas personas que comienzan con Visual Studio 2015 probablemente no tenga la versión v3.5 de SqlServerCe en su máquina. Si va a sugerir agregar una referencia a v3.5, ¿hay alguna idea para las personas sobre cómo obtener esa versión si no la tienen en su sistema? – Jazimov

+0

@Jazimov tiene razón, pero respondí esta pregunta hace 3 años antes de su comentario y en 2013 fue un enfoque bastante normal. – zviad

Cuestiones relacionadas