Ho trovato molto difficile ottenere una risposta, ma alla fine l'ho capito. Quindi scriverò i passaggi seguenti.
Prima di impostare la stringa di connessione nel codice, assicurati di poter effettivamente accedere al tuo database. Inizia ovviamente accedendo al server del database utilizzando SSMS (Sql Server Management Studio o equivalente in altri database) localmente per assicurarti di avere accesso utilizzando tutti i dettagli che intendi utilizzare.
Successivamente (se necessario), se stai tentando di accedere al database su un server separato, assicurati di poter fare lo stesso in SSMS. Quindi configura SSMS su un computer e assicurati di poter accedere al server con il nome utente e la password di quel server di database.
Se non ottieni correttamente i 2 precedenti, stai semplicemente perdendo tempo perché non puoi accedere al database. Ciò può essere dovuto al fatto che l'utente che hai configurato è sbagliato, non ha l'accesso remoto abilitato (se necessario) o le porte non sono aperte (se necessario), tra molti altri motivi, ma questi sono i più comuni.
Dopo aver verificato di poter accedere al database utilizzando SSMS. Il passo successivo, solo per il gusto di automatizzare il processo ed evitare errori, è lasciare che il sistema faccia il lavoro per te.
- Avvia un progetto vuoto, aggiungi la tua scelta di Linq a SQL o Dataset (EF è buono ma la stringa di connessione è incorporata all'interno di una stringa di EF con, ne voglio una pulita) e connettiti al tuo database usando i dettagli verificati sopra in il mago della truffa. Aggiungi qualsiasi tabella e salva il file.
Ora vai nella configurazione web e, magicamente, vedrai una bella stringa di connessione funzionante con tutti i dettagli di cui hai bisogno.
{Di seguito faceva parte di un vecchio post quindi puoi ignorarlo, lo lascio come riferimento poiché è il modo più semplice per accedere al database solo dal codice sottostante. Scorri verso il basso e continua dal passaggio 2 di seguito. }
Supponiamo che i passaggi precedenti ti inizino con qualcosa di simile al seguente come stringa di connessione nel codice sottostante:
string conString = "Data Source=localhost;Initial Catalog=YourDataBaseName;Integrated Security=True;";
Questo passaggio è molto importante. Assicurati di avere il formato precedente della stringa di connessione funzionante prima di eseguire i passaggi seguenti. Assicurati di poter effettivamente accedere ai tuoi dati utilizzando una qualche forma di testo del comando sql che visualizzi alcuni dati da una tabella in etichette o sezioni di testo o altro, poiché questo è il modo più semplice per eseguire una stringa di connessione.
Una volta che sei sicuro che lo stile sopra funzioni, è giunto il momento di fare i prossimi passi:
1. Esporta la stringa letterale (il contenuto tra virgolette, comprese le virgolette) nella sezione seguente del file web.config (per più stringhe di connessione, basta eseguire più righe:
<configuration>
<connectionStrings>
<add name="conString" connectionString="Data Source=localhost;Initial Catalog=YourDataBaseName;Integrated Security=True;" providerName="System.Data.SqlClient" />
<add name="conString2" connectionString="Data Source=localhost;Initial Catalog=YourDataBaseName;Integrated Security=True;" providerName="System.Data.SqlClient" />
<add name="conString3" connectionString="Data Source=localhost;Initial Catalog=YourDataBaseName;Integrated Security=True;" providerName="System.Data.SqlClient" />
</connectionStrings>
</configuration>
{Quanto sopra faceva parte di un vecchio post, dopo aver eseguito i primi 3 passaggi, l'intero processo verrà eseguito per te, quindi puoi ignorarlo. Lo lascio qui solo per riferimento. }
2. Ora aggiungi la seguente riga di codice al codice C # sottostante, preferibilmente appena sotto la definizione della classe (cioè non all'interno di un metodo). Questo punta alla cartella principale del tuo progetto. Essenzialmente è il nome del progetto. Questa è solitamente la posizione del file web.config (in questo caso il mio progetto si chiama MyProject.
static Configuration rootWebConfig = WebConfigurationManager.OpenWebConfiguration("/MyProject");
3. Aggiungere ora la seguente riga di codice al codice C # dietro. Questo imposta una stringa costante a cui puoi fare riferimento in molti punti del codice se hai bisogno di una conString in metodi diversi.
const string CONSTRINGNAME = "conString";
4. Aggiungere quindi la seguente riga di codice al codice C # dietro. Questo ottiene la stringa di connessione dal file web.config con il nome conString (dalla costante sopra)
ConnectionStringSettings conString = rootWebConfig.ConnectionStrings.ConnectionStrings[CONSTRINGNAME];
5. Infine, dove originariamente avresti avuto qualcosa di simile a questa riga di codice:
SqlConnection con = new SqlConnection(conString)
lo sostituirai con questa riga di codice:
SqlConnection con = new SqlConnection(conString.ConnectionString)
Dopo aver eseguito questi 5 passaggi, il codice dovrebbe funzionare come prima. Hense il motivo per cui provi prima la costruzione nel suo formato originale in modo da sapere se è un problema con la stringa di connessione o se è un problema con il codice.
Sono nuovo in C #, ASP.Net e Sql Server. Quindi sono sicuro che ci deve essere un modo migliore per fare questo codice. Apprezzerei anche il feedback su come migliorare questi passaggi, se possibile. Ho cercato dappertutto qualcosa del genere ma alla fine l'ho capito dopo molte settimane di duro lavoro. Guardandolo di persona, penso ancora che ci debba essere un modo più semplice.
Spero che questo sia utile.