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


Réponses:


148

Vous pouvez également 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>  

Comment l'utiliser dans mon code C # lorsque je veux exécuter une requête.
Nikhil Tamhankar le

1
Vous pouvez voir des informations détaillées sur la chaîne de connexion dans dot net à partir de: connectionstrings.com/sql-server-2008
Vimal bhatt

4
Je me demande combien de personnes ont copié et collé cette ligne ... :-) Je pense que c'est la 30e fois que je suis à cette question .... peut-être que je devrais l'apprendre par cœur.
Ayo Adesina le

Cette version n'a pas les attributs de nom d'utilisateur / mot de passe.
Burgi

@Burgi Non, cela ne manque pas (voir le Integrated Security=True?), Ce n'est pas nécessaire car la base de données lit le fichier avec ses autorisations - essayez-le. C'est la raison pour laquelle je dis que c'est plus simple, parce que vous n'avez pas besoin de les ajouter. Si vous ne parvenez pas à l'utiliser, ouvrez votre base de données et définissez-y l'autorisation correcte, sur la base de données et sur les fichiers
Aristos

107

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

Mettez 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 souhaitez configurer la variable de connexion:

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

5
WebConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionStringpourrait être plus techniquement correct.
écraser le

2
J'avais aussi besoin de:using System.Data.SqlClient;
nu everest

21

J'ai trouvé cela très difficile d'obtenir une réponse, mais je l'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 évidemment par vous connecter 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 que vous avez accès en utilisant les détails que vous avez l'intention d'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. Configurez 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 bon 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 erroné, n'a pas accès à distance activé (si nécessaire), ou les ports ne sont pas ouverts (si nécessaire), parmi de nombreuses 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 Dataset (EF est bon mais la chaîne de connexion est intégrée à l'intérieur d'une chaîne de configuration EF, je veux une chaîne propre), et connectez-vous à votre base de données en utilisant les détails vérifiés ci-dessus dans le sorcier de la chaîne de con. Ajoutez n'importe quelle table et enregistrez le fichier.

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


{Ci-dessous faisait partie d'un ancien message 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 code uniquement. Veuillez faire défiler vers le bas et continuer à partir de l'étape 2 ci-dessous. }

Supposons que les étapes ci-dessus vous commencent avec quelque chose comme ce qui suit 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 la chaîne de connexion fonctionne avant d'effectuer 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 ou de texte, car c'est le moyen le plus simple de créer une chaîne de connexion.

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

1. Exportez votre chaîne littérale (les éléments entre 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 suivi les 3 étapes principales, tout ce processus sera fait pour vous, vous pouvez donc l'ignorer. Je 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 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 # derrière. Cela configure 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. Ensuite, ajoutez la ligne de code suivante au code C # derrière. Cela obtient la chaîne de connexion du fichier web.config avec le nom conString (de la constante ci-dessus)

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

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

SqlConnection con = new SqlConnection(conString)

vous la remplacerez par cette ligne de code:

SqlConnection con = new SqlConnection(conString.ConnectionString)

Après avoir effectué ces 5 étapes, votre code devrait fonctionner comme avant. Indiquez la raison pour laquelle vous testez d'abord la conception dans son format d'origine afin de savoir s'il s'agit d'un problème avec la chaîne de connexion ou s'il s'agit d'un problème avec le code.

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

J'espère que ceci est utile.


14

il devrait être dans le <configuration>nœud:

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

ce site contient plus d'informations:


1
Comment l'utiliser dans mon code C # derrière quand je veux exécuter une requête dans asp.net 4
Nikhil Tamhankar

7

Connexion dans WebConfig

Ajoutez votre chaîne de connexion à l' <connectionStrings>élément dans le Web.configfichier.

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

Dans la classe Cs

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

6

dans l'en-tête

using System.Configuration;

dans du code

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

3

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

Comme le web.configfichier in :

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

Le connections.configfichier de configuration externe 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émarrera pas l'application (comme le fait ASP.net par défaut avec toute modification des fichiers de configuration de l'application)


2

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

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

OU

vous directement dans un 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");

2

Vous pouvez mettre ceci dans votre web.configfichier connectionStrings:

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

2

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 obtiendrez la balise connectionstring dans web.config après <appSettings>

Essayez ceci.


1

Vous pouvez essayer ceci. C'est très simple

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

OP a demandé "où dans web.config".
Steve Smith

0

Essayez ceci pour votre chaîne de connexion.

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

Bienvenue dans Stack Overflow! Lorsque vous postez une réponse à une ancienne question, il est bon d'ajouter du contexte, expliquant pourquoi votre réponse est meilleure que les anciennes. Sinon, il risque d'être négligé en bas de la liste des réponses.
Monolo

0

JE VIENS DE TROUVER!! Vous devez mettre cette connexion de chaîne et pointer directement vers votre base de données . Même cas sur le serveur.

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

Ça marche!! :)



-1

Créez une section appelée <connectionStrings></connectionStrings>dans votre web.configintérieur <configuration></configuration>puis ajoutez-y différentes chaînes de connexion, par exemple

<configuration>

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

</configuration>

Voici une liste de tous les différents formats de chaîne de connexion https://msdn.microsoft.com/en-us/library/jj653752(v=vs.110).aspx


"Créez une section appelée <connectionStrings> </connectionStrings> dans votre web.config" - où dans web.config?
Steve Smith

Enfant de la balise "configuration", plus d'infos docs.microsoft.com/en-us/aspnet/mvc/overview/getting-started
Guy
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.