Bonjour à tous.
Je suis en train de travailler sur mon prmeier projet .NET et je tiens à faire une classe de connection et de requete propre et réutilisable evidement
Je travaille sans DataSet mais avec des DataReader.
Pour effectuer mes requete sur ma base SQL Server, j'utilise une classe clRequete qui elle même utilise une classe clConnection.
Ma classe clRequete contient un string (ma requete) et un objet de type clConnection.
Une petite idée de la classe :
Au départ j'utilisais une classe clConnection assez simple
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 private string sRequete; public SqlDataReader QueryRequete() { clConnection connection = new clConnection(); //strRequete = ValidationStrRequete(strRequete); SqlCommand command = new SqlCommand(this.sRequete, connection.getCurseur()); try { return command.ExecuteReader(); } catch (SqlException ex) { ViewException(ex); return null; } } public Object NonQueryRequete() { clConnection connection = new clConnection(); SqlCommand command = new SqlCommand(this.sRequete, connection.getCurseur()); try { return command.ExecuteScalar(); } catch (SqlException ex) { ViewException(ex); return null; } }
Malheureusement je me suis rendu compte qu'il ouvrait plusieurs dizaine de connection à la base, en fait à chqaue fois que je faisais une requete....
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 private SqlConnection curseur; public clConnection() { try { curseur = new SqlConnection(Properties.Settings.Default.connectString); curseur.Open(); } catch (Exception ex) { MessageBox.Show("Echec de connection à la Base de Données", "Erreur de connection", MessageBoxButtons.OK, MessageBoxIcon.Error); System.Diagnostics.Debug.WriteLine(ex.ToString()); } } public SqlConnection getCurseur() { return this.curseur; }
Je me suis alros renseigné sur le sujet et j'ai trouvé des aides comme celle-ci
Malheureusement je n'arrive pas à m'en servir, soit le lecteur est fermé, soit je n'ai pas fermé un dataReader, soit la connection est déjà ouverte etc....
Elle ne sont pas cool avec moi ces classes...
Merci pour votre aide
Partager