Bonjour,
Je travaille sur une application en C# (ASP.NET MVC) qui nécessite une connexion à une base de donnée Oracle via ODP.NET, afin d'appeler des procédures.
Je ne suis pas très familier avec l'utilisation d'oracle et je suis confronté au problème suivant :
Le code ci-dessous dans un projet "Console", fonctionne parfaitement.
Mais impossible avec le même code dans un Controller de mon application ASP.NET MVC (ni d'ailleurs dans un projet test WCF), d'établir la connexion avec ma base oracle...(retourne toujours une exception lors du objConn.Open())
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 using System; using System.Collections.Generic; using System.Text; using Oracle.DataAccess.Client; using Oracle.DataAccess.Types; using System.Data; namespace testOracleconnection { class Program { static void Main(string[] args) { String stringConn = "Data Source=XXXX; User ID=XXXX; Password=XXXXX"; using (var objConn = new OracleConnection(stringConn)) { using (var objCmd = new OracleCommand()) { objCmd.Connection = objConn; objCmd.CommandText = "Ma_Procedure"; objCmd.CommandType = CommandType.StoredProcedure; //Return parameter need to be the first objCmd.Parameters.Add("returnVal", OracleDbType.Decimal, ParameterDirection.ReturnValue); objCmd.Parameters.Add("name", OracleDbType.Varchar2, 10, "Mon_Nom", ParameterDirection.Input); try { objConn.Open(); objCmd.ExecuteNonQuery(); System.Console.WriteLine("Result :{0}", objCmd.Parameters["returnVal"].Value); } catch (Exception e) { System.Console.WriteLine("Exception: {0}", e.ToString()); } objConn.Close(); } } System.Console.ReadLine(); } } }
J'ai bien les mêmes using et référence dans les deux cas... j'avoue être à court d'idée ...
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 [Authorize] public ActionResult Ma_Procedure() { String stringConn = "Data Source=XXXX; User ID=XXXX; Password=XXXXX"; using (var objConn = new OracleConnection(stringConn)) { using (var objCmd = new OracleCommand()) { objCmd.Connection = objConn; objCmd.CommandText = "Ma_Procedure"; objCmd.CommandType = CommandType.StoredProcedure; //Return parameter need to be the first objCmd.Parameters.Add("returnVal", OracleDbType.Decimal, ParameterDirection.ReturnValue); objCmd.Parameters.Add("name", OracleDbType.Varchar2, 10, "Mon_Nom", ParameterDirection.Input); try { objConn.Open(); objCmd.ExecuteNonQuery(); resultat = float.Parse(objCmd.Parameters["returnVal"].Value.ToString()); } catch (Exception e) { } objConn.Close(); ViewBag.Result = resultat; } } } return PartialView(); }
L'un d'entre vous voit-il le problème ?
Merci !
Partager