Impostazione della stringa di connessione in ASP.NET a SQL SERVER


Risposte:


148

Puoi anche usarlo, è più semplice. L'unica cosa che devi impostare è "YourDataBaseName".

  <connectionStrings>
    <add name="ConnStringDb1" connectionString="Data Source=localhost;Initial Catalog=YourDataBaseName;Integrated Security=True;" providerName="System.Data.SqlClient" />
  </connectionStrings>

Dove posizionare la stringa di connessione

<?xml version='1.0' encoding='utf-8'?>  
  <configuration>  
    <connectionStrings>  
      <clear />  
      <add name="Name"   
       providerName="System.Data.ProviderName"   
       connectionString="Valid Connection String;" />  
    </connectionStrings>  
  </configuration>  

Come usarlo nel mio codice C # dietro quando voglio eseguire qualche query.
Nikhil Tamhankar

1
Puoi vedere i dettagli delle informazioni sulla stringa di connessione in dot net da: connectionstrings.com/sql-server-2008
Vimal bhatt

4
Mi chiedo quante persone abbiano copiato e incollato quella riga ... :-) Penso che questa sia la trentesima volta che mi trovo a questa domanda .... forse dovrei impararla a memoria.
Ayo Adesina

In questa versione mancano gli attributi nome utente / password.
Burgi

@Burgi No, non manca quello (vedi Integrated Security=True?), Non è necessario perché il database legge il file in base alle loro autorizzazioni - provalo. Questo è il motivo per cui dico che è più semplice, perché non è necessario aggiungerli. Se non riesci a usarlo, apri il tuo database e imposta lì i permessi corretti, sul database e sui file
Aristos

107

Per qualche motivo non vedo la risposta semplice qui.

Metti questo all'inizio del codice:

using System.Web.Configuration;
using System.Data.SqlClient; 

Mettilo in Web.Config:

<connectionStrings >
    <add
         name="myConnectionString" 
         connectionString="Server=myServerAddress;Database=myDataBase;User ID=myUsername;Password=myPassword;Trusted_Connection=False;"
         providerName="System.Data.SqlClient"/>
</connectionStrings>

e dove vuoi impostare la variabile di connessione:

SqlConnection con = new SqlConnection(
    WebConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionString);

5
WebConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionStringpotrebbe essere tecnicamente più corretto.
schiacciare il

2
Avevo anche bisogno di:using System.Data.SqlClient;
nu everest

21

Ho trovato molto difficile ottenere una risposta, ma alla fine l'ho capito. Quindi scriverò i passaggi seguenti.

  1. 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.

  2. 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.

  1. 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.


14

dovrebbe essere all'interno del <configuration>nodo:

  <connectionStrings >
    <add name="myconnectionstring" connectionString="Server=myServerAddress;Database=myDataBase;User ID=myUsername;Password=myPassword;Trusted_Connection=False;" providerName="System.Data.SqlClient"/>
  </connectionStrings>

questo sito ha più informazioni su di esso:


1
Come usarlo nel mio codice C # dietro quando voglio eseguire qualche query in asp.net 4
Nikhil Tamhankar

7

Connessione in WebConfig

Aggiungi la tua stringa di connessione <connectionStrings>all'elemento nel Web.configfile.

<connectionStrings>
<add name="ConnectionString" connectionString="Data Source=192.168.1.25;Initial Catalog=Login;Persist Security Info=True;User ID=sa;Password=example.com"   providerName="System.Data.SqlClient" />
</connectionStrings>

In Class.Cs

public static string ConnectionString{
get{
return ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;}
set{}

6

nell'intestazione

using System.Configuration;

in codice

SqlConnection conn = new SqlConnection(*ConfigurationManager.ConnectionStrings["connstrname"].ConnectionString*);

3

È inoltre possibile utilizzare un file di configurazione esterno per specificare la sezione delle stringhe di connessione e fare riferimento a quel file nel file di configurazione dell'applicazione come in web.config

Come il web.configfile in:

<configuration>  
    <connectionStrings configSource="connections.config"/>  
</configuration>  

Il connections.configfile di configurazione esterno conterrà la sezione delle connessioni

<connectionStrings>  
  <add name="Name"   
   providerName="System.Data.ProviderName"   
   connectionString="Valid Connection String;" />  

</connectionStrings>  

La modifica del contenuto del file di configurazione esterno non riavvierà l'applicazione (come ASP.net fa per impostazione predefinita con qualsiasi modifica nei file di configurazione dell'applicazione)


2

Se vuoi scrivere la stringa di connessione in Web.config, scrivi sotto data sting

<connectionStrings>
  <add name="Conn" connectionString="Data Source=192.168.1.25;Initial Catalog=Login;Persist Security Info=True;User ID=sa;Password=example.com"
   providerName="System.Data.SqlClient" />
 </connectionStrings>

O

hai ragione nel file aspx.cs come

SqlConnection conn = new SqlConnection("Data Source=12.16.1.25;Initial Catalog=Login;Persist Security Info=True;User ID=sa;Password=example.com");

2

Puoi metterlo nel tuo web.configfile connectionStrings:

<add name="myConnectionString" connectionString="Server=myServerAddress;Database=myDataBase;User ID=myUsername;Password=myPassword;Trusted_Connection=False;" providerName="System.Data.SqlClient"/>

2

Puoi utilizzare il seguente formato:

  <connectionStrings>
    <add name="ConStringBDName" connectionString="Data Source=serverpath;Initial Catalog=YourDataBaseName;Integrated Security=SSPI;" providerName="System.Data.SqlClient" />
  </connectionStrings>

Molto probabilmente dopo aver inserito il tag connectiontring in web.config <appSettings>

Prova questo.


1

Puoi provare questo. È molto semplice

<connectionStrings>         
    <add name="conString" connectionString="Data Source=SQLServerAddress;Initial Catalog=YourDatabaseName; User Id=SQLServerLoginId; Password=SQLServerPassword"/>
</connectionStrings>

OP ha chiesto "dove in web.config".
Steve Smith

0

Prova questo per la tua stringa di connessione.

 Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=SSPI;
 User ID=myDomain\myUsername;Password=myPassword;

Benvenuto in Stack Overflow! Quando pubblichi una risposta a una vecchia domanda, è bene aggiungere un po 'di contesto, sul motivo per cui la tua risposta è migliore di quelle vecchie. Altrimenti rischia di essere trascurato in fondo alla lista delle risposte.
Monolo

0

HO APPENA TROVATO!! È necessario inserire questa stringa di connessione e puntare direttamente al database . Stesso caso sul server.

"Provider=Microsoft.ACE.OLEDB.12.0; 
 Data Source=c:/inetpub/wwwroot/TEST/data/data.mdb;"

Funziona!! :)



-1

Crea una sezione chiamata <connectionStrings></connectionStrings>al tuo web.configinterno <configuration></configuration>quindi aggiungi diverse stringhe di connessione, ad esempio

<configuration>

  <connectionStrings>
   <add name="ConnectionStringName" providerName="System.Data.SqlClient" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=DatabaseName;Integrated Security=True;MultipleActiveResultSets=True"/>
  </connectionStrings>

</configuration>

Ecco un elenco di tutti i diversi formati di stringhe di connessione https://msdn.microsoft.com/en-us/library/jj653752(v=vs.110).aspx


"Crea una sezione chiamata <connectionStrings> </connectionStrings> nel tuo web.config" - dove in web.config?
Steve Smith

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.