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