7

Quindi, come descritto in on this msdn page, quando si definisce una stringa di connessione per SQL Server Compact 3.5, è possibile utilizzare la macro "Directory dati", in questo modo:Macro "Directory dati" di SQL Server Compact nella stringa di connessione - ulteriori informazioni necessarie

citazione da this msdn page:

dati Supporto Directory
SQL Server Compact 3.5 supporta ora la macro Data. Ciò significa che se aggiungi la stringa | DataDirectory | (racchiuso tra simboli di pipe) in un percorso file, si risolverà nel percorso del database.

Ad esempio, si consideri la stringa di connessione:

"Data Source = C: \ programmi \ MyApp \ Mydb.sdf"

Quando si utilizza Data Directory, è possibile invece utilizzare la seguente stringa di connessione:

"Data Source = | DataDirectory | \ Mydb.sdf"

per ulteriori informazioni, vedere Procedura: Distribuire uno SQL Server Compact 3.5 database con un'applicazione.

Tuttavia, il collegamento "per ulteriori informazioni" su msdn in realtà non fornisce ulteriori informazioni.

Quindi la mia domanda è:

Come funziona il | Data Directory | macro tradurre in fase di esecuzione? Per le app WinForm, sembra dare solo la posizione dell'eseguibile. O è più complicato di così?

risposta

7

Per impostare la proprietà DataDirectory, chiamare il metodo AppDomain.SetData. Se non si imposta la proprietà DataDirectory, le seguenti regole predefinite verranno applicate per accedere alla cartella del database:

  • Per le applicazioni che vengono messi in una cartella sul computer dell'utente, la cartella del database utilizza la cartella applicazione .
  • Per le applicazioni che eseguono in ClickOnce, la cartella di database utilizza la cartella di dati specifica che è creata.
0

Si prega di rivedere questo link: http://msdn.microsoft.com/en-us/library/aa478948.aspx

L'| DataDirectory | parte della stringa di connessione specifica che il file MDF si trova nella directory App_Data.

+1

Grazie Joe, ma è un po 'più complicato di così. È piuttosto ovvio che App_data verrebbe utilizzato per le app Web, è meno ovvio come potrebbe funzionare per le app di Windows. per esempio vedi il metodo AppDomain.SetData come menzionato da Sasha. Inoltre, Salve, grazie per la modifica. – codeulike

Problemi correlati