da panteraus » ven dic 24, 2010 11:16 am
Ti elenco passo a passo le operazioni che ho fatto, così è più chiaro:
1) ho creato manualmente dal progetto un database .sdf inserendo manualmente sempre alcuni record nelle tabelle
nel codice, la connessione al database la imposto con la seguente stringa:
// Per trovare il path, dove salva l'eseguibile:
string appPath = System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase;
string DirPath = Path.GetDirectoryName(appPath);
stringaConnessione = string.Format("Data Source = {0}; Password = {1}; Persist Security Info = False", DirPath + @"\GpsNewsdb.sdf", "");
connessione = new SqlCeConnection(stringaConnessione);
In teoria con questa connessione lui prende il path all'interno del dispositivo
2) al primo avvio dell'applicazione, tale database viene creato anche nella memoria dell'emulatore e tutte le operazioni che faccio (lettura, scrittura, ecc.., usando sempre la stringa di connessione sopra) vengono fatte sul database dell'emulatore (penso per via del path che punta all'interno dell'emulatore e non al server) e nessuna modifica viene fatta in quello locale al progetto.
Se invece faccio una modifica in locale al db del progetto ed avvio l'applicazione, i dati vengono copiati correttamente nel db dell'emulatore! Io pensavo che anche il verso opposto (db emulatore --> db locale del progetto) avvenisse in automatico, ma se non è così, come faccio a fargli aggiornare anche il db locale del progetto? (nel caso debba replicare le istruzioni di inserimento o modifica, qual'è il path da dargli per il db del server e non per quello dell'emulatore?)
GRAZIE!!