2010-05-11 4 views
0

Je veux que ma connexion à la base de données soit disponible tout le temps, donc si je déplace le dossier avec le projet, vers un autre ordinateur, la connexion doit être établie automatiquement. Alors, comment puis-je changer cette connexion:Access Database connect C# directeur local

this.oleDbConnection1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\"C:\\Documents and Settings\\Cristi\\Do" + 
       "cuments\\Visual Studio 2008\\Projects\\WindowsApplication3\\bd1.mdb\""; 

??? Il devrait lire le répertoire du projet ou quelque chose. Je ne sais pas. Des idées? Merci!

Répondre

2

Si vous ajoutez la base de données d'accès au projet, et dans les propriétés du fichier définissez la copie à la propriété Output Directory pour toujours copier (ou copier si récent, le cas échéant), vous pouvez utiliser une chaîne de connexion similaire à celle-ci:

this.oleDbConnection1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\".\\bd1.mdb\""; 

Cela fonctionnera car la base de données sera située dans le même dossier que vos fichiers binaires. De même, vous pouvez utiliser un chemin d'accès relatif à votre base de données, par rapport à l'emplacement de l'assembly en cours d'exécution.

+0

oui, c'est exactement ce que je veux faire. J'ai ajouté la base de données au projet. Où devrais-je le mettre? dans le dossier de débogage? ou était le .sln est situé? Et expliquez svp ceci: "les propriétés de dossier placent la propriété de copier dans le répertoire de sortie pour copier toujours (ou copier si plus récent si approprié)" s'il vous plaît. propriétés du fichier de. mdb? Je ne comprends pas. Je vous remercie! –

+0

Vous pouvez le mettre où vous voulez. Peut-être voudriez-vous le conserver dans un dossier séparé, par exemple appelé Data, dans votre dossier de projet. Pour les propriétés du fichier, cliquez avec le bouton droit sur le fichier MDB dans l'Explorateur de solutions et choisissez Propriétés. Dans le volet des propriétés, vous verrez une propriété appelée "Copier dans le répertoire de sortie". Choisissez une option dans la liste appropriée à votre situation. –

+0

Mais pour une application de production, le dossier binaire ne se trouve-t-il pas dans le dossier Programmes? C'est un emplacement en lecture seule pour les utilisateurs réguliers, et pour tout le monde sous UAC dans Vista/Win7, et donc, vous ne voulez pas stocker votre fichier de données là-bas. –

0

Il semble que vous souhaitiez utiliser un chemin relatif dans votre chaîne de connexion.

Quelque chose comme ceci:

this.oleDbConnection1.ConnectionString = 
"Provider=Microsoft.Jet.OleDb.4.0;Data Source=" + 
Server.MapPath("~\\MyData\\MyDatabase.mdb"); 

Cela correspond au répertoire /MyData dans votre application. Soyez conscient du problème de sécurité que le fichier .mdb peut être visible pour un jeu déloyal intentionnel.

+0

Erreur Le nom « serveur » n'existe pas dans le contexte actuel \t Ty pour votre réponse rapide! –