2012-06-05 5 views
1

Possible en double:
SQL Express Connection string - Relative to application locationchaîne de connexion Chemin relatif vb.net

J'ai une application de bureau écrit en vb.net. L'application utilise une base de données SQL Server Express 2008 (fichier .mdf). i ont actuellement la chaîne de connexion en tant que chemin absolu comme celui-ci:

Dim ObjConnection As New SqlConnection("Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Users\Pantheo\Documents\Visual Studio 2010\Projects\Food Manager 2012(new)\Food Manager 2012\Food_CustomerDB.mdf;Integrated Security=True;User Instance=True") 

A mon pc il fonctionne tout simplement génial. Si je le construis bien et que le fichier .exe est exécuté sur un pc defferent, il se bloque car il ne peut pas attacher la base de données.

j'ai essayé de le faire en utilisant par rapport cette chaîne de connexion:

Dim ObjConnection As New SqlConnection("Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Food_CustomerDB.mdf;Initial Catalog=Food_CustomerDB;Integrated Security=True;User Instance=True") 

sans succès. Est-ce que quelqu'un peut m'aider? Je sais qu'il y a une tonne d'autres réponses, en ce qui concerne C#, mais je ne peux pas les implémenter. Merci à l'avance

+0

http://stackoverflow.com/questions/3500829/sql-express-connection-string-relative-to-application-location est probablement ce que vous voulez, il y a très peu de code là qui ne se traduirait pas facilement en vb –

Répondre

1

La valeur DataDirectory est juste une chaîne extraite de la liste de propriétés AppDomain.CurrentDomain. Dans une application WinForm n'est pas prédéfinie mais vous pouvez le définir avant d'ouvrir votre base de données.

AppDomain.CurrentDomain.SetData("DataDirectory", @"C:\MyReadWriteFolder") 

alors la chaîne de connexion avec AttachDbFilename=|DataDirectory|\Food_CustomerDB.mdf œuvres à condition que vous devriez mettre là la base de données (C: \ MyReadWriteFolder).

+0

Et comment puis-je mettre la base de données là dans une autre machine? Avec un installateur mabey? – Pantheo

+0

Bien sûr, vous avez besoin d'un outil d'installation, commencez par le projet de développement sur Visual Studio ou utilisez l'un des nombreux outils gratuits ou payants disponibles. Rappelez-vous également que SQL Server doit être installé sur le PC du client. Ou, si votre programme est destiné à un seul utilisateur, vous pouvez utiliser la version [LocalDB] (http://stackoverflow.com/questions/9655362/localdb-deployment-on-client-pc) de SqlServer – Steve

+0

Merci Steve. Je le ferai. – Pantheo