2010-01-10 3 views
0

Quelle est la meilleure façon de gérer Connection pour accéder à une base de données tout en développant une application Windows en utilisant C#? Je veux dire avoir une variable d'objet de connexion au niveau du projet qui s'ouvre par l'application start et se ferme et se termine par la fin de l'application OU dans chaque procédure (par exemple select, insert, update, ...) qui utilise une connexion à db, on déclare objet de connexion, l'ouvrir, l'utiliser et à la fin de la procédure, nous fermons et le jeter?Meilleure façon de gérer l'objet de connexion utilisé pour accéder à une base de données dans un projet d'application Windows développé par C#?

En résumé, comment gérer les objets de connexion dans nos applications?

Répondre

0

La connexion au niveau du projet fonctionne correctement pour une application Windows. Certaines bases de données (MySQL en particulier) limitent le temps de connexion inactif, vous devrez donc peut-être gérer la déconnexion côté serveur au moment de l'expiration. Avec la mise en commun des connexions en place, le modèle «une connexion par requête» fonctionnera également avec un surdébit côté client relativement faible et sans surcharge côté serveur. Mais c'est totalement inutile. Ce modèle a été inventé pour l'environnement de haute simultanéité d'un serveur Web; dans une application Windows, il n'y a pas de concurrence à proprement parler.

EDIT: dans une application filetée, une connexion par thread suffira. Le partage des connexions entre les threads est une mauvaise idée et ne fonctionne généralement pas.

+1

Il est un peu élevé de supposer qu'il n'y a pas de concurrence. Vous devez être sûr que tous les accès aux données ont lieu sur un seul thread, c'est-à-dire non pas en réponse à des événements, pour l'indiquer. – ProfK

+0

D'accord sur la grande supposition - la chose est que la mise en commun des connexions va traiter le problème pour vous, faites le "bon" truc et limitez les connexions à la portée requise. Qui à son tour devrait rendre le code plus portable à un environnement de serveur si cela s'avère souhaitable à une date ultérieure. – Murph

0

Je pense que si c'est pour un plus petit nombre d'utilisateurs probablement préférable d'ouvrir la connexion au début de l'application, et le fermer à la fin de l'application.

Le pool de connexion a très peu d'incidence sur une application Windows Forms . Le pool est créé sur les clients individuels et non sur le serveur .