Maison >développement back-end >C++ >Comment puis-je utiliser un chemin relatif pour mon fichier MDF SQL Express dans la chaîne de connexion app.config ?

Comment puis-je utiliser un chemin relatif pour mon fichier MDF SQL Express dans la chaîne de connexion app.config ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-28 22:02:10387parcourir

How Can I Use a Relative Path for My SQL Express MDF File in the app.config Connection String?

Chaîne de connexion SQL Express : utilisation d'un chemin de fichier MDF relatif

Problème :

Un développeur a du mal à spécifier le emplacement d'un fichier MDF SQL Express par rapport au répertoire de l'application dans le fichier app.config. Ils veulent éviter de définir manuellement le chemin absolu, ce qui devient fastidieux lorsque l'application est déployée à différents emplacements.

Solution :

1. Utilisez |DataDirectory|:

|DataDirectory| n'est pas exclusivement destiné aux applications Web. Il peut être utilisé dans les applications Web et de bureau. Il représente le répertoire dans lequel l'application s'attend à trouver les fichiers de données.

2. Définir |Répertoire de données| Par programme :

Si |DataDirectory| n'est pas automatiquement défini par l'application, vous pouvez le définir par programme à l'aide de AppDomain.CurrentDomain.SetData("DataDirectory", path)

Exemple de configuration :

Dans l'application Fichier .config :

<add name="MyConnectionString"
    connectionString="Server=.\SQLExpress;AttachDbFilename=|DataDirectory|\MyDatabase.mdf;Database=MyDatabaseForTesting;Trusted_Connection=Yes;" />

Dans l'initialisation du test unitaire méthode :

[TestInitialize]
public void TestInitialize()
{
    AppDomain.CurrentDomain.SetData("DataDirectory", System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Databases"));
}

En utilisant cette approche, la chaîne de connexion utilisera désormais automatiquement le chemin d'accès au fichier MDF par rapport au répertoire de l'application, même dans un environnement de test unitaire.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn