Application Windows Form C # avec la database ne fonctionne pas sur le système du client

J'ai développé une application Windows Form en C # qui utilise la connectivité de database SQL Server. Je l'ai développé dans .NET Framework 4.0 et SQL Server 2008 R2. Mon application utilise une database locale présente dans le directory racine de l'application appelée AG.mdf .

C'est ma string de connection:

 Data Source=.;AttachDbFilename=|DataDirectory|\\AG.mdf;Integrated Security=True;User Instance=True 

J'ai créé le programme d'installation en ajoutant le projet d'installation dans le model d'installation de Visual Studio en tant que nouveau projet dans mon application. Je construis le projet d'installation et il a créé l'installateur pour moi. J'ai déployé l'application sur le système de mon user, l'application démarre au début, mais soudainement une erreur apparaît

Exception non gérée est survenue dans votre application. Si vous click continuer, l'application ignorera ce message et tentera de continuer. Si vous click Quitter, l'application se fermera immédiatement.

Une erreur liée au réseau ou à une instance s'est produite lors de l'établissement d'une connection à SQL Server. Le server est introuvable ou inaccessible. Vérifiez que le nom d'instance est correct et que SQL Server est configuré pour autoriser les connections distantes. (fournisseur: fournisseur de canaux nommés, erreur: 40 – Impossible d'ouvrir une connection à SQL Server)

PS: J'ai installé .NET Framework 4.0 et SQL Server Compact Edition sur le système de mon user aussi!

Devrais-je quitter la programmation?

Je pense que vous pourriez confondre Express Edition et Compact Edition; ils sont vraiment très différents.

Compact Edition prend un file de database SDF et est une database embeddede, pas un server séparé. Je ne pense pas que cela puisse fonctionner directement avec MDF – vous pourriez peut-être exporter un MDF vers un SDF .

SQLCE ne connaît pas les instances d'user, la security embeddede ou les pièces jointes de database. Je pense que vous auriez besoin du path vers le file SDF directement dans la section Source de données, mais il faudrait que ce soit un SDF, pas un MDF.

Donc, fondamentalement, il semblerait que vous installiez Compact Edition, mais que vous utilisiez ensuite des strings de connection et des files de données pour l'édition complète / express, ce qui ne fonctionnera probablement pas.

Merci beaucoup à tous pour votre aide. J'ai résolu ce problème par moi-même. Ma seule préoccupation était d'installer le server SQL sur la machine du client mais plus tard j'ai réalisé que je devais installer un outil de gestion de database (SQL Server) sur le système du client afin de faire fonctionner mon application.
Par conséquent, j'ai installé SQL Server Express sur la machine du client et de modifier ma QuerySsortingng un peu, comme suit

Source de données =. \ SQLEXPRESS; AttachDbFilename = | DataDirectory | \ AG.mdf; Base de données = AG; Sécurité embeddede = Vrai; Instance user = True; Trusted_Connection = Oui

De plus, j'ai également donné l' autorisation de contrôle total en tant qu'autoriser sur ce dossier qui contient mon application déployée, afin que Dot Net Framework dans mon application puisse accéder à la database .mdf déployée
Codage heureux! 🙂

"| DataDirectory | \ AG.mdf" signifie qu'il doit searchr la database dans le directory de données, mais pas dans le dossier racine de l'application.

Petit exemple comment définir le DataDirectory:

 AppDomain.CurrentDomain.SetData("DataDirectory", AppDomain.CurrentDomain.BaseDirectory + "DB");