2017-10-19 6 views
-1

J'essaie de faire en sorte que je puisse utiliser le programme où que je place le dossier afin qu'il ne soit pas seulement limité à un endroit spécifique. C'est la chaîne de connexion J'utilise actuellementConnexion de base de données C# SQL

string constring = "Data Source = (LocalDB)\\MSSQLLocalDB; 
AttachDbFilename = C:\\Users\\hannes.corbett\\Desktop\\Barcode Scanning\\Barcode Scanning\\BarcodeDB.mdf; 
Integrated Security = True"; 

Cette chaîne de connexion fonctionne très bien et tout mais comme dit plus haut, je veux que ce soit l'environnement où je l'ai mis

Répondre

0

Vous pouvez fournir des variables à des valeurs telles que la source de données, attachDbFilename, etc. Récupérez ensuite les valeurs lors de l'événement de chargement. Ou utilisez le fichier de configuration pour récupérer la chaîne de connexion. Comme dans la première solution apparaît comme ce

string constring = "Data Source = "+ YourDataSource +"; AttachDbFilename = "+ YourAttachedDBFilePath +"; Integrated Security = True"; 
+0

Comment puis-je récupérer les valeurs au chargement? –

+0

quel type de projet vous créez? Il diffère selon le type de projet. La plupart du temps, la chaîne de connexion à la base de données est définie dans le fichier app.config dans les applications Windows et dans le fichier web.config dans les applications Web. –

0

Vous devez placer le fichier de base de données dans l'application de dossier (débogage ou version) et l'appeler par Application.StartupPath

0

S'il est possible, puis mettre la base de données nécessaire dans le dossier AppData puis utiliser ce qui suit dans le ConnectionString

Server=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|BarcodeDB.mdf;Database=BarcodeDB; 

Sinon, la meilleure façon de le faire pour utiliser l'option proposée Promod, mais dans ce cas, vous devez connaître le e place xact de la base de données dans chaque environnement unique, ou faire la recherche dans chaque environnement pour trouver la base de données nécessaire.

0

Si vous voulez trouver le chemin de votre projet, vous pouvez utiliser:

string path = System.AppDomain.CurrentDomain.BaseDirectory; 

Une alternative, si vous décidez de stocker le fichier db dans les dossiers de construction (à côté de l'exécutable):

string path = Path.GetDirectoryName(new Uri(System.Reflection.Assembly.GetExecutingAssembly().CodeBase).LocalPath); 

Exemple:

// filename of your Db file 
string filename = "BarcodeDB.mdf"; 
// combine filename and your local path 
string dbFilePath = Path.Combine(path, filename); 
// use the db filepath in your constring using string interpolation 
string constring = $"Data Source = (LocalDB)\\MSSQLLocalDB; AttachDbFilename = {dbFilePath}; Integrated Security = True"; 

Ainsi, lorsque vous déplacez votre projet ou avoir sur différentes machines (en supposant que le db le fichier est présent), il devrait pouvoir le trouver.