Oracle培訓:使用ADO.NET連接Oracle
Oracle培訓:使用ADO.NET連接Oracle,使用ADO.NET數據訪問技術連接Oracle數據庫和連接Sql Server數據庫的步驟基本相同:
1. 使用Connection對象建立數據庫連接。
2. 使用Command對象執行數據庫操作。
3. 采用連線或者斷線的方式進行數據的存取。
4. 使用Connection對象的Close方法關閉數據庫連接。
連接Sql Server數據庫和Oracle數據庫所使用的數據提供程序是不一樣的,連接Sql Server數據庫使用的是SqlServer.NET,包括SqlConnection、SqlCommand等數據訪問類。而連接Oracle數據庫則使用的是Oracle.NET,包括OracleConnection、OracleCommand等數據訪問類,包含在System.Data.OracleClient命名空間下,由于該命名空間默認并沒有被添加到項目中來,所以在使用前需要如圖2所示添加響應的引用才能使用。
圖1 添加System.Data.OracleClient引用
案例1:在Oracle數據庫中在System用戶下,創建UserInfo表,并插入一定數據,使用ADO.NET數據訪問技術將UserInfo表中的數據檢索出來,并顯示在ASP.NET頁面中。UserInfo表中的數據如圖3所示。
圖2 UserInfo表中數據
實現步驟:
1. 使用OracleConnection對象建立與Oracle之間的連接。
代碼演示:建立連接
//連接字符串 string connectionString = "Data Source=MYORCL;User ID=System;Password=accp;Unicode=True"; //創建Oracle連接對象 OracleConnection con = new OracleConnection(connectionString); //打開連接 con.Open(); |
2. 創建命令行對象,準備執行檢索數據庫操作。
代碼演示:建立命令行對象
//建立Sql查詢語句 string sql = "select * from userinfo"; //創建Oracle命令行對象 OracleCommand cmd = new OracleCommand(sql, con); //執行命令行對象 OracleDataReader odr = cmd.ExecuteReader(CommandBehavior.CloseConnection); |
3. 創建實體類,并遍歷結果集,將數據存放到集合中存儲。
代碼演示:創建實體類
//實體類 public class UserInfo { int userID;
public int UserID { get { return userID; } set { userID = value; } } string userName;
public string UserName { get { return userName; } set { userName = value; } } string userAge;
public string UserAge { get { return userAge; } set { userAge = value; } } } |
代碼演示:遍歷結果集
//遍歷結果集 IList<UserInfo> users = new List<UserInfo>(); while (odr.Read()) { UserInfo user = new UserInfo(); user.UserID = Convert.ToInt32(odr["UserID"]); user.UserName = Convert.ToString(odr["UserName"]); user.UserAge = Convert.ToString(odr["UserAge"]);
users.Add(user); } |
4. 將集合中的數據綁定到GridView控件上顯示出來。
代碼演示:綁定數據
//綁定DataGridView控件 this.GridView1.DataSource = users; this.GridView1.DataBind(); |
根據上面的操作,不難看出連接Oracle數據庫與連接SqlServer數據庫除了數據提供程序方面有所區別之外,從操作步驟和實現原理等方面看區別不大。按照上面步驟操作,在頁面中運行的效果如圖3所示。增刪改操作和檢索操作基本相似,在這里就不再敘述了。
圖3 案例效果
-
標簽錯誤:<!-- #Label#
labelId=20160707140604
moduleId=1
classId=12231768634
orderby=2
fields=url,title,u_info
attribute=
datatypeId=22192428132
recordCount=3
pageSize=
<htmlTemplate><dt><img src="/images/index_26${index}.jpg" width="100" height="62" /><a href="$url" title="${title}">${title}</a><span>${api.left(u_info,60)}</span></dt></htmlTemplate>
-->
- 我要參加技術沙龍