web-dev-qa-db-fra.com

Configuration de la chaîne de connexion dans ASP.NET à SQL SERVER

J'essaie de configurer une chaîne de connexion dans mon fichier web.config (Visual Studio 2008/ASP.NET 3.5) sur un serveur local (SQL Server 2008).

Dans mon web.config, comment et où placer la chaîne de connexion?

Voici à quoi ressemble maintenant le fichier web.config: http://imwired.net/aspnet/Online_web.config

86
Ray

Vous pouvez aussi l'utiliser, c'est plus simple. La seule chose que vous devez définir est "YourDataBaseName".

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

Où placer la chaîne de connexion

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

Pour une raison quelconque, je ne vois pas la réponse simple ici.

Placez ceci en haut de votre code: 

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

Mettez ceci dans Web.Config:

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

et où vous voulez configurer la variable de connexion:

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

J'ai trouvé cela très difficile d'obtenir une réponse, mais j'ai finalement compris. Je vais donc écrire les étapes ci-dessous.

  1. Avant de configurer votre chaîne de connexion dans le code, assurez-vous que vous pouvez réellement accéder à votre base de données. Commencez bien évidemment en vous connectant au serveur de base de données en utilisant SSMS (Sql Server Management Studio ou son équivalent dans d’autres bases de données) localement pour vous assurer d’avoir accès en utilisant les détails que vous souhaitez utiliser.

  2. Ensuite (si nécessaire), si vous essayez d'accéder à la base de données sur un serveur séparé, assurez-vous que vous pouvez faire de même dans SSMS. Installez donc SSMS sur un ordinateur et assurez-vous que vous pouvez accéder au serveur avec le nom d'utilisateur et le mot de passe de ce serveur de base de données.

Si vous n'obtenez pas le droit 2 ci-dessus, vous perdez simplement votre temps car vous ne pouvez pas accéder à la base de données. Cela peut être dû au fait que l'utilisateur que vous avez configuré est incorrect, que l'accès à distance n'est pas activé (si nécessaire) ou que les ports ne sont pas ouverts (si nécessaire), parmi beaucoup d'autres raisons, mais celles-ci sont les plus courantes.

Une fois que vous avez vérifié que vous pouvez accéder à la base de données à l’aide de SSMS. La prochaine étape, juste pour automatiser le processus et éviter les erreurs, consiste à laisser le système faire le travail à votre place.

  1. Démarrez un projet vide, ajoutez votre choix de Linq à SQL ou à un ensemble de données (EF est bon, mais la chaîne de connexion est intégrée à une chaîne de caractères EF, je veux une version propre) et connectez-vous à votre base de données en utilisant les détails vérifiés ci-dessus dans le wizzard à la chaîne. Ajoutez n'importe quelle table et enregistrez le fichier.

Maintenant, allez dans la configuration Web, et comme par magie, vous y verrez une chaîne de connexion agréable et fonctionnelle avec tous les détails dont vous avez besoin.


{Ci-dessous faisait partie d'un ancien post afin que vous puissiez l'ignorer, je le laisse pour référence car c'est le moyen le plus simple d'accéder à la base de données à partir du seul code situé derrière. Veuillez faire défiler et continuer à partir de l'étape 2 ci-dessous. }

Supposons que les étapes ci-dessus vous commencent avec quelque chose comme ceci comme chaîne de connexion dans le code derrière:

string conString = "Data Source=localhost;Initial Catalog=YourDataBaseName;Integrated Security=True;";

Cette étape est très importante. Assurez-vous que le format ci-dessus de chaîne de connexion fonctionne avant de suivre les étapes suivantes. Assurez-vous que vous pouvez réellement accéder à vos données en utilisant une forme de texte de commande SQL qui affiche certaines données d'une table sous forme d'étiquettes, de texte ou autre, car c'est le moyen le plus simple de créer une chaîne de connexion.

Une fois que vous êtes certain que le style ci-dessus fonctionne, il est temps de passer aux étapes suivantes:

1 . Exportez votre littéral de chaîne (le contenu des guillemets, y compris les guillemets) vers la section suivante du fichier web.config (pour plusieurs chaînes de connexion, faites simplement plusieurs lignes:

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

{Ce qui précède faisait partie d’un ancien message. Après avoir effectué les 3 étapes principales, tout ce processus sera effectué pour vous, de sorte que vous pouvez l’ignorer. Je le laisse juste ici pour ma propre référence. }


2 . Ajoutez maintenant la ligne de code suivante au code C # derrière, de préférence juste sous la définition de la classe (c'est-à-dire pas à l'intérieur d'une méthode). Cela pointe vers le dossier racine de votre projet. C'est essentiellement le nom du projet. Il s’agit généralement de l’emplacement du fichier web.config (dans ce cas, mon projet s’appelle MyProject.

static Configuration rootWebConfig = WebConfigurationManager.OpenWebConfiguration("/MyProject");

3 . Ajoutez maintenant la ligne de code suivante au code C # situé derrière. Ceci définit une constante de chaîne à laquelle vous pouvez vous référer à de nombreux endroits dans votre code si vous avez besoin d'une conString dans différentes méthodes.

const string CONSTRINGNAME = "conString";

4 . Ajoutez ensuite la ligne de code suivante au code C # situé derrière. Cela obtient la chaîne de connexion du fichier web.config avec le nom conString (d'après la constante ci-dessus).

ConnectionStringSettings conString = rootWebConfig.ConnectionStrings.ConnectionStrings[CONSTRINGNAME];

5 . Enfin, vous auriez eu à l’origine quelque chose de similaire à cette ligne de code:

SqlConnection con = new SqlConnection(conString)

vous allez le remplacer par cette ligne de code:

SqlConnection con = new SqlConnection(conString.ConnectionString)

Après avoir suivi ces 5 étapes, votre code devrait fonctionner comme auparavant. Déterminez la raison pour laquelle vous testez d'abord la construction dans son format d'origine afin de savoir s'il s'agit d'un problème de chaîne de connexion ou d'un problème de code.

Je suis nouveau sur C #, ASP.Net et Sql Server. Donc, je suis sûr qu'il doit y avoir une meilleure façon de faire ce code. J'apprécierais également les commentaires sur la manière d'améliorer ces étapes si possible. J'ai cherché partout quelque chose comme ça mais je l'ai finalement compris après plusieurs semaines de dur labeur. En le regardant moi-même, je pense toujours qu'il doit y avoir un moyen plus facile.

J'espère que ceci est utile.

19
Francis Rodgers

il devrait être dans le noeud <configuration>:

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

ce site a plus d'informations à ce sujet: 

13
derek

dans l'en-tête

using System.Configuration;

dans du code

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

Connexion dans WebConfig

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

En classe.Cs

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

Vous pouvez également utiliser un fichier de configuration externe pour spécifier la section des chaînes de connexion et le référencer dans le fichier de configuration de l'application, comme dans web.config

Comme le fichier in web.config:

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

Le fichier de configuration externe connections.config contiendra la section des connexions

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

</connectionStrings>  

La modification du contenu du fichier de configuration externe ne redémarre pas l'application (comme ASP.net le fait par défaut avec toute modification des fichiers de configuration de l'application).

2
Surjit SD

Vous pouvez utiliser le format suivant:

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

Très probablement, vous utiliserez la balise connectionstring dans web.config après <appSettings>

Essayez ceci.

1
C Sharper

Si vous voulez écrire une chaîne de connexion dans Web.config, écrivez sous sting donné

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

OR

vous avez raison dans le fichier aspx.cs comme 

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

Vous pouvez mettre ceci dans votre fichier web.configconnectionStrings:

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

Vous pouvez essayer ça. C'est très simple

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