2016-09-05 1 views
1

J'utilise C# WPF EF6.0 et SQL Server Express pour le programme final.Chaîne de connexion C# Entity Framework SQL Server Express

J'ai créé un fichier d'installation avec programme d'installation avancée qui crée la base de données via le script et SQL Server Express dans

C:\Program Files\Microsoft SQL Server\MSSQL11.SQLEXPRESS\MSSQL\DATA 

et j'ai changé ma connexion chaîne de

<add name="MyDBEntities" 
    connectionString="metadata=res://*/MyDBModel.csdl|res://*/MyDBModel.ssdl|res://*/MyDBModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=(LocalDB)\v11.0;attachdbfilename=|DataDirectory|\MyDB.mdf;integrated security=True;connect timeout=30;MultipleActiveResultSets=True;App=EntityFramework&quot;" 
    providerName="System.Data.EntityClient" /> 

A cette

J'ai installé .net Framework 4.5 et SQL Server 2012 sp1 v11.0.300
<add name="MyDBEntities" 
    connectionString="metadata=res://*/MyDBModel.csdl| 
         res://*/MyDBModel.ssdl| 
         res://*/MyDBModel.msl; 
         provider=System.Data.SqlClient; 
         provider connection string=&quot; 
          Data source=.\SQLExpress; 
          integrated security=True; 
          MultipleActiveResultSets=True; 
          Initial Catalog=MyDB; 
          App=EntityFramework&quot;" 
    providerName="System.Data.EntityClient" /> 

que j'ai utilisé dans Visual Studio 2013

Lorsque j'installe mon programme, tout fonctionne, mais quand j'ai lancé mon programme, il a cessé de fonctionner au premier lancement. Je pense que la chaîne de connexion a un problème. Si je clique sur le débogage dans Visual Studio, je vois cette erreur

Une exception non gérée du type « System.InvalidOperationException » a eu lieu dans l'information EntityFramework.dll.Additional: n'a pu être trouvée Aucune chaîne de connexion nommée « MyDBEntities » dans le fichier de configuration de l'application.

+0

obtenez-vous une erreur .. – Venky

+0

Non seulement cessé de fonctionner – yasser93

+0

si je clique sur le débogage dans le show visuel cette erreur => Une exception non gérée du type « System.InvalidOperationException » a eu lieu dans l'information EntityFramework.dll.Additional. Aucune chaîne de connexion nommé 'MyDBEntities' pourrait être trouvé dans le fichier de configuration de l'application. – yasser93

Répondre

1

Enfin, je ne pouvais pas créer un fichier d'installation avec Advanced Installer. Je l'ai créé par Install Shield. Mon problème était d'insérer ou de supprimer ou de modifier à partir de la base de données. J'ai installé mon programme dans un autre lecteur et mon problème a été résolu. La raison était une blague que les fichiers de programme dans C est readonly.

1

La raison est que vous n'avez pas joint les fichiers de base de données au moteur de base de données local. essayez d'utiliser les méthodes SQL Server appropriées qui sont disponibles. Votre application (après l'installation) ne trouve pas la base de données dans le moteur de base de données local.

+0

Comment je fais ça ??? – yasser93

+0

Il y a différentes manières, l'une d'entre elles peut utiliser sp_attach_db dans SQL Server et écrire une procédure, considérez ce point que cette méthode ne devrait pas être dans la base de données en mouvement. la cause est que vous n'avez pas joint votre base de données de sorte que vous ne pouvez pas utiliser ses procédures. pour plus d'informations utilisez https://msdn.microsoft.com/en-us/library/ms190794.aspx – Media

+0

puis-je utiliser attachdbfilename dans ma chaîne de connexion et donner cet emplacement? => C: \ Program Files \ Microsoft SQL Server \ MSSQL11.SQLEXPRESS \ MSSQL \ DATA – yasser93