BOnjour,
j'ai un soucis dans une fonction que j'utilise, pour executer une requete. Après avoir cherché sur internet, comme ils le précisent, j'ai bien fermé mes curseurs, mais l'erreur est toujours là, voici ma procédure :
et le message retourné :
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61 private string RechercheRaison(string numabo) { log.Debug("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"); log.Debug("~Recuperation de la raison sociale pour le client " + numabo); log.Debug("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"); NameValueCollection appSettings = System.Configuration.ConfigurationManager.AppSettings; OracleConnection OConnexion = new OracleConnection(appSettings["ConnexionString"]); string rechercheraison = ""; string RAISON = ""; OConnexion.Open(); try { rechercheraison = "select RAISONPRE from " + System.Configuration.ConfigurationManager.AppSettings["CustomerInformationTable"] + " where NUMABO = '" + numabo + "'"; log.Debug("requete envoyee : " + rechercheraison); OracleCommand commRecherche = new OracleCommand(rechercheraison, OConnexion); OracleDataReader monreader = commRecherche.ExecuteReader(); if (!monreader.HasRows) { System.Threading.Thread.Sleep(2000); monreader = commRecherche.ExecuteReader(); } monreader.Read(); if (monreader.HasRows) { RAISON = commRecherche.ExecuteScalar().ToString(); log.Debug("RAISON récupéré : " + RAISON); log.Info("------ SUCCES DE LA RECUPERATION DE LA RAISON SOCIALE ----- "); } else { log.Debug("Aucune raison retourné "); RAISON = ""; } return RAISON; } catch (Exception e) { log.Error("<> Erreur dans la recuperation de la raison : " + e.ToString()); OConnexion.Close(); OConnexion.Dispose(); return ""; } finally { OConnexion.Close(); OConnexion.Dispose(); } }
Donc comme je le disais, je ferme mon curseur mais rien n'y fait. Petit détails ( qui a son importance ou pas ? ) dans mon code, j'ai aucune erreur mais ici par ex :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Erreur dans la recuperation de la raison sociale System.Data.OracleClient.OracleException (0x80131938): ORA-01000: nombre maximum de curseurs ouverts dépassé à System.Data.OracleClient.OracleConnection.CheckError(OciErrorHandle errorHandle, Int32 rc) à System.Data.OracleClient.OracleCommand.Execute(OciStatementHandle statementHandle, CommandBehavior behavior, Boolean needRowid, OciRowidDescriptor& rowidDescriptor, ArrayList& resultParameterOrdinals) à System.Data.OracleClient.OracleCommand.Execute(OciStatementHandle statementHandle, CommandBehavior behavior, ArrayList& resultParameterOrdinals) à System.Data.OracleClient.OracleCommand.ExecuteReader(CommandBehavior behavior) à System.Data.OracleClient.OracleCommand.ExecuteReader() à InjecteurDeMasse.Form1.RecuperationRaisonSocial(String numclt)
OracleConnection est souligné en verte et ça dis " system.dataOracle est obsolète ... OracleConnection has been depreciated ..... "
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 OracleConnection OConnexion = new OracleConnection(appSettings["ConnexionString"]);
Je vous remercie par avance pour les explications et votre aide.
Partager