2010-08-09 6 views
0

J'ai une application qui fonctionne avec une base de données "TestDB". Au moment où je développais l'application, j'utilisais linq to sql et j'ajoutais mes tables de données en les faisant glisser vers le fichier TestDB.dbml et probablement .net définit automatiquement la chaîne de connexion au serveur sql local sur ma machine. L'application est supposée se lancer sur certains instruments basés sur Windows. et la base de données sera locale dans ces instruments.Définition d'une chaîne de connexion dans des fichiers dbml à l'aide de Linq to SQL dans Visual Studio 2008

Maintenant, comment puis-je changer la chaîne de connexion pour m'assurer que la base de données locale à l'intérieur de l'instrument sera ciblée pour mon application?

En outre, j'ai ajouté le nom d'utilisateur et mot de passe à ma base de données de sorte qu'il ne sera pas la connexion d'authentification Windows et je suppose que nom d'utilisateur et mot de passe doivent faire partie de la chaîne de connexion.

Répondre

1

Si vous définissez Data Source = localhost dans la chaîne de connexion, il doit toujours référencer la machine locale et vous éviter de devoir le définir individuellement pour chaque machine exécutant l'application.

Editer: Juste comme un FYI, consultez http://connectionstrings.com/, c'est assez pratique. Lorsque vous créez votre DataContext dans votre code, vous transmettez le ConnectionString.

2

Vous pouvez donc stocker cela dans un fichier de configuration, puis en utilisant ConfigurationManager, saisissez ConnectionString et utilisez-le pour créer votre DataContext comme ceci:

public class SomeService 
    { 
     private SomeDataContext _db = null; 

     public SomeService() 
     { 
      _db = new SomeDataContext(ConfigurationManager.ConnectionStrings["SomeSqlServer"].ConnectionString); 
     } 

     public SomeService(string connectionString) 
     { 
      _db = new SomeDataContext(connectionString); 
     } 

     public SomeDataContext DB 
     { 
      get 
      { 
       return _db; 
      } 
     } 

     // whatever methods you want to use that access this DataContext 
} 
+0

Merci pour votre réponse. J'avais ma chaîne de connexion dans le fichier app.config comme adresse de ma base de données locale et quand j'avais "TestDataContext db = new TestDataContext()" dans mon application, je ne passais pas la chaîne de connexion et ça fonctionnait très bien. Maintenant, pouvez-vous s'il vous plaît expliquer plus sur le gestionnaire de configuration? Je suppose que cela va automatiquement obtenir l'emplacement du serveur indépendant de l'appareil. donc il change de façon dynamique lorsque l'application commence à fonctionner sur différents appareils et c'est ce dont j'ai besoin. S'il vous plait corrigez moi si je me trompe. regards, – Hasti

+0

Aussi quand je cours ce code j'obtiens une exception de référence nulle. Je pense que c'est lié au fichier app.config. Merci pour l'aide – Hasti