21

Ho bisogno di aggiornare il mio database SqlCE3.5 a 4.0.Come posso aggiornare il mio database sql Server CE 3.5 sdf a Sql Server CE 4.0?

ottengo il seguente messaggio di errore quando sto cercando di accedere al mio 3.5 sdf/database utilizzando la nuova connessione CE4.0 fornire: -

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.

Qualcuno sa come posso fare questo? Ovviamente ho bisogno di farlo programmaticamente ma non sono sicuro di cosa dovrei fare/quali riferimenti devo aggiungere, ecc.

Cheers!

+1

Non è ovvio? Chiama 'SqlCeEngine.Upgrade()'! O c'è un problema? Notare anche le incompatibilità tra le diverse versioni. – leppie

+0

Suggerimento: alcuni esempi di codice, per favore. Quando ho provato un po 'di codice, non è stato possibile compilare. –

+0

@leppie: i) Dove? In quale contesto? Con quali argomenti? ii) SqlCeEngine non contiene un metodo denominato Upgrade(). Il messaggio è inutile. –

risposta

14

Chiama System.Data.SqlServerCe.SqlCeEngine.Upgrade. Vedi MSDN, che contiene codice di esempio.

8

Non è necessario eseguire l'aggiornamento quando si vede questo errore:

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

Semplicemente:

  1. Fare clic con il progetto in Esplora soluzioni
  2. Selezionare le proprietà, vai alla scheda References
  3. Vedrai un riferimento chiamato: System. Data.SqlServerCe Type/net version/4.0 - elimina questo elemento (seleziona l'elemento e poi fai clic su rimuovi in ​​fondo a questa finestra).
  4. Fare clic sul pulsante "aggiungi ..." a sinistra del pulsante "Rimuovi"
  5. Nella scheda .NET, trovare System.Data.SqlServerCe 3.5 e aggiungere questo.
  6. Compila il tuo progetto!

Penso che funzionerà.

+2

Sì, non è necessario eseguire l'aggiornamento, a meno che non sia necessario. Se non si trova System.Data.SqlServerCe nella scheda .NET, aggiungere il riferimento da C: \ Programmi \ Microsoft SQL Server Compact Edition \ v3.5 \ Desktop – Brij

+0

Questo consiglio è piuttosto presuntuoso: molte persone che iniziano con Visual Studio Il 2015 probabilmente non avrà la versione v3.5 di SqlServerCe sul proprio computer. Se hai intenzione di aggiungere un riferimento alla v3.5, qualche idea per le persone su come ottenere quella versione se non ce l'hanno sul loro sistema? – Jazimov

+0

@Jazimov hai ragione, ma ho risposto a questa domanda 3 anni fa prima del tuo commento e nel 2013 era un approccio abbastanza normale. – zviad

Problemi correlati