使用ADO.NET操作Oracle數據庫


本文將示例使用C#的ADO.NET技術調用Oralce的存儲過程和函數及操作Oracle數據庫。

在oracle的hr數據庫中建立存儲過程

在oralce的hr數據庫中建立函數

新建控制台項目,在主函數添加代碼:

 1            string strConn = "Data Source=jayjay;User ID=hr;Password=oracle;Unicode=True";
 2 
 3             //調用存儲過程
 4             using (OracleConnection conn = new OracleConnection(strConn))
 5             {
 6                 conn.Open();
 7                 using (OracleCommand cmd = new OracleCommand("INSERT_PROCEDURE", conn))
 8                 {
 9                     cmd.CommandType = CommandType.StoredProcedure;
10                     cmd.ExecuteNonQuery();
11                 }
12             }
13             //顯示調用存儲過程后的數據
14             using (OracleConnection conn = new OracleConnection(strConn))
15             {
16                 conn.Open();
17                 using (OracleCommand cmd = new OracleCommand("select * from Jobs where JOB_ID='MY_JOB'", conn))
18                 {
19                     cmd.CommandType = CommandType.Text;
20                     OracleDataAdapter adapter = new OracleDataAdapter(cmd);
21                     DataSet dataSet = new DataSet();
22                     adapter.Fill(dataSet);//執行cmd.ExecuteReader();並將結果添加到DataSet容器中 23                     DataRow row = dataSet.Tables[0].Rows[0];
24                     Console.WriteLine("執行select * from Jobs where JOB_ID=MY_JOB之后得到的信息:");
25                     for(int i =0 ;i<4;i++)
26                     {
27                         Console.WriteLine(row[i]);
28                     }
29                 }
30             }
31 
32             //調用函數
33             using (OracleConnection conn = new OracleConnection(strConn))
34             {
35                 conn.Open();
36                 using (OracleCommand cmd = new OracleCommand("UPDATE_MIN_SALARY", conn))
37                 {
38                     cmd.CommandType = CommandType.StoredProcedure;
39                     
40                     // 將參數類型設置為 返回值類型
41                     OracleParameter parameter = new OracleParameter();
42                     parameter.Direction = ParameterDirection.ReturnValue;
43                     parameter.OracleType = OracleType.Int32;
44                     cmd.Parameters.Add(parameter);
45 
46                     cmd.ExecuteNonQuery();
47                     Console.WriteLine("受影響的行數為:" + parameter.Value);
48                 }
49             }
50 
51             //顯示調用函數后的數據
52             using (OracleConnection conn = new OracleConnection(strConn))
53             {
54                 conn.Open();
55                 using (OracleCommand cmd = new OracleCommand("select * from Jobs where MIN_SALARY=4000", conn))
56                 {
57                     cmd.CommandType = CommandType.Text;
58                     OracleDataAdapter adapter = new OracleDataAdapter(cmd);
59                     DataSet dataSet = new DataSet();
60                     adapter.Fill(dataSet);
61 
62                     Console.WriteLine("執行select * from Jobs where MIN_SALARY=4000之后得到的行數:" + dataSet.Tables[0].Rows.Count);                  
63                 }
64             }
65 
66             Console.ReadKey();
67         }

ps:由於使用的是32位的老版本oracle 10g,所以項目的目標平台要改為x86,即32位平台,不然conn.open();會報錯!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM