Oracle培训课程:使用ADO.NET连接Oracle
最新学讯:近期OCP认证正在报名中,因考试人员较多请尽快报名获取最近考试时间,报名费用请联系在线老师,甲骨文官方认证,报名从速!
我要咨询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 案例效果