35 messaggi dal 14 ottobre 2004
Salve,
dopo tanto lavoro è arrivato il momento di pubblicare il mio progetto ma c'è un problema che non riesco a risolvere riguardante la stringa di connessione.
Innanzitutto l'ho impostata in Progetto > Proprietà di MioProgetto > Impostazioni ed è la seguente:
Data Source=.\SQLEXPRESS;AttachDbFilename="C:\Documents and Settings\Cristina\Documenti\Visual Studio 2005\Projects\MioProgetto\MioProgetto\MioProgetto.mdf";Integrated Security=True;User Instance=True

Il problema è che questa stringa di connessione funziona ovviamente solo sul mio pc e dopo che pubblico il progetto ed installo il setup su un altro pc è questa stringa che viene usata; ovviamente mi da errore nel caricamento dei dati dal database.

Come posso fare???
Grazie!
501 messaggi dal 09 giugno 2006
Contributi
Ciao.

La stringa di connessione così configurata può essere modificata intervenendo manualmente nel file .config associato alla tua applicazione (presumibilmente sarà MioProgetto.exe.config).

C'è però da notare che non è la soluzione migliore ed esistono almeno altre due alternative. Quella suggerita per .NET 2.0 è modificare l'impostazione sostituendo il percorso completo con il seguente percorso:
|DataDirectory|MioProgetto.mdf
.

In questo caso, il provider ADO.NET eseguirà la risoluzione dinamica della parte |DataDirectory| sostituendola con il percorso della directory dal quale viene eseguito il programma (questo per quanto riguarda applicazioni Windows Forms).

Perchè il tutto funzioni anche in fase di sviluppo, dovrai spostare/copiare il tuo database nella directory di compilazione del programma (./bin/Release o ./bin/Debug).

Le altre possibili alternative riguardano soluzioni simili ossia piazzare nel percorso del database un token che poi dovrai "risolvere" manualmente all'avvio del programma. Se, a titolo di esempio, usi il seguente valore in sostituzione di quello che ti ho scritto sopra:
{0}\MioProgetto.mdf

Puoi procedere alla sostituzione nel seguente modo (VB.NET):
 Dim cnnString As String = String.Format(My.Settings.StringaConnessioneMioProgetto, My.Application.Info.DirectoryPath)

dove "StringaConnessioneMioProgetto" è il nome che hai dato all'impostazione.

Un'ultima nota. Se la tua applicazione va distribuita in giro (come immagino sia dal momento che stai realizzando la procedura di installazione) considera che potresti non avere i corretti diritti di scrittura sulla directory dove installi il database con tutte le conseguenze del caso.

Ciao.

.:. Marcello Rutter .:.

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.