Contexte : C#, ASPNET, SQL Serveur , développement en couche
Bonjour,
j'ai la fonction suivante dans ma couche DAO (Accès aux données) qui me renvois un dataReader :
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 /// <summary> /// Renvois d'un DataReader /// </summary> /// <param name="SQL">Chaîne SQL</param> /// <returns>DataReader</returns> public IDataReader RenvoisDataReader(string SQL) { SqlCommand cd = new SqlCommand(); IDataReader dr; cd.Connection = (SqlConnection)OuvrirConnexionSqlServeur(); cd.CommandType = CommandType.Text; cd.CommandText = SQL; try { dr = cd.ExecuteReader(); return dr; } catch (Exception err) { throw err; } finally { }
Je voudrai mettre dans mon finally un appel à la fonction qui ferme la connection à la base mais quand je fais cela j'ai une erreur :
Si je ne ferme pas ma connection , au bout d'un certain temps j'ai l'erreur :Invalid attempt to call Read when reader is closed.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.InvalidOperationException: Invalid attempt to call Read when reader is closed.
Timeout expired. The timeout period elapsed prior to obtaining a connection from the pool. This may have occurred because all pooled connections were in use and max pool size was reached
A votre avis , comment je dois m'y prendre pour fermer ma connection après chaque appel à ma base ?
Merci pour vos réponses ...
P.JEAN
Partager