Bonjour
j'essaye de récupérer le valeur de retour d'une procédure stockée avec C#. Mais j'ai des erreurs que je comprends pas. voila mon code
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
        public void ExecProcedure(string tableName, string prefixe)
        {
            //Intialisation du parametere de la connxion
            OracleConnection con = new OracleConnection(this._connectionString);
            OracleCommand commandeProc = con.CreateCommand();
            commandeProc.CommandType = CommandType.StoredProcedure;
            OracleParameter param;
            OracleTransaction tran = null;
            try
            {
                con.Open();
                tran = con.BeginTransaction();
                commandeProc.Transaction = tran;
                commandeProc.CommandText = "mim.MIM_RETOURNE_CODESUIVANT";
                // Création des paramètres en entrée
                //Nom de la tabele string
                param = new OracleParameter();
                param.ParameterName = "LeNomTable";
                param.OracleType = OracleType.VarChar;
                param.Value = tableName;
                param.Direction = ParameterDirection.Input;
                commandeProc.Parameters.Add(param);
 
                //prefixe string
                param = new OracleParameter();
                param.ParameterName = "LePrefixe";
                param.OracleType = OracleType.VarChar;
                param.Value = prefixe;
                param.Direction = ParameterDirection.Input;
                commandeProc.Parameters.Add(param);
 
                //LeNumSuivant int
                param = new OracleParameter();
                param.ParameterName = "LeNumSuivant";
                param.OracleType = OracleType.Number;
                param.Value = 0;
                param.Direction = ParameterDirection.Output;
                commandeProc.Parameters.Add(param);
 
                int LeNumSuivant;
                LeNumSuivant = Convert.ToInt32(commandeProc.ExecuteOracleScalar().ToString());
                tran.Commit();
 
            }
            catch (Exception ex)
            {
                tran.Rollback();
                throw ex;
            }
la signature de Pl est
Code : Sélectionner tout - Visualiser dans une fenêtre à part
CREATE OR REPLACE PROCEDURE MIM.MIM_RETOURNE_CODESUIVANT(LeNomTable IN VARCHAR2, LePrefixe IN VARCHAR2, LeNumSuivant OUT NUMBER) IS
le pl marche très biens sur oracle. mais avec c# j'ai l'erreur suivante :
La référence d'objet n'est pas définie à une instance d'un objet.
est ce que vous avez une idée SVP. merci