Oracle 应用于.NET平台
1. 回顾ADO.NET
ADO.NET是一组用于和数据源进行交互的面向对象类库集,它存在于.Net Framework中。通常情况下,数据源可以是各种类型的数据库,利用ADO.NET可以访问目前几乎所有的主流数据库,如Oracle、SQL Server、DB2、Access等,但数据源同样也可能输文本文件、Excel或者XML文件,因此,ADO.NET可以访问的数据源是很多的。ADO.NET由两部分组成:.NET数据提供程序和数据集。
.Net数据提供程序
ADO.NET提供了与常用的各种数据源进行交互的一些公共方法,但是对于不同的数据源由于它们各采用的协议是不一样的,所以会采用不同的类库,这些类库称为数据提供程序。主要的数据提供程序

ADO.NET主要负责与数据库服务器建立连接通道,并基于此连接通道实现从数据库中检索数据,并将内存中的数据回送到数据库以提交更新或将在内存中拼写好的SQL语句提交到数据库服务器并执行以实现某种数据操作等等。
数据集
数据集可以被看作是一个存储在内存中的离线式的数据库,它很像我们最终存储数据的物理数据库,它将很多物理数据库的机制搬到了内存中。
2. 使用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命名空间下 。
在Oracle数据库中在System用户下,创建UserInfo表,并插入一定数据,使用ADO.NET数据访问技术将UserInfo表中的数据检索出来,并显示在ASP.NET页面中。

1. 使用OracleConnection对象建立与Oracle之间的连接。
//连接字符串
string connectionString = "Data Source = MYORCL;UserID = 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 ord = cmd.ExcuteReader(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(ord.read())
{
UserInfo user = new UserInfo();
user.UserID = Convert.ToString(ord["UserID"]);
user.UserName = Convert.ToString(ord["UserName "]);
user.UserAge = Convert.ToString(ord["UserAge "]); users.Add(user);
}
4.将集合中的数据绑定到GridView控件上显示出来
GridView.DataSource = users;
GridView.DataBind();
Oracle 应用于.NET平台的更多相关文章
- PlantUML —— 应用于 Eclipse 的简单快速的 UML 编辑软件
PlantUML —— 应用于 Eclipse 的简单快速的 UML 编辑软件 简介: 在应用系统软件开发过程中,如果软件由很多对象组成,它的结构仅仅凭借分析很难理清,同时为了有利于软件的开发及重用, ...
- 领域驱动和MVVM应用于UWP开发的一些思考
领域驱动和MVVM应用于UWP开发的一些思考 0x00 起因 有段时间没写博客了,其实最近本来是根据梳理的MSDN上的资料(UWP开发目录整理)有条不紊的进行UWP学习的.学习中有了心得体会或遇到了问 ...
- 20155301-滕树晨 第二次随笔作业--从现有技能获取的经验应用于JAVA中
第二次随笔--从现有技能获取的经验应用于JAVA中 你有什么技能比大多人(超过90%以上)更好? 这个想了半天,有一个是我乒乓球还是比较擅长的,在学校里可能比百分之90的人要强,在外面肯定是不如了.再 ...
- Git应用于Android项目的入门知识:我的理解
Git应用于Android项目的基本知识. 常常将git,repo和gerrit三种工具配合起来使用,使Android开发中的部分工作自动化.并适应敏捷项目管理的需要. repo是Go ...
- thiscall仅仅应用于“C++”成员函数(this指针存放于CX寄存器,参数从右到左压)
_stdcall是Pascal程序的缺省调用方式,通常用于Win32 Api中,函数采用从右到左的压栈方式,自己在退出时清空堆栈.VC将函数编译后会在函数名前面加上下划线前缀,在函数名后加上" ...
- @Required 注释应用于 bean 属性的 setter 方法,它表明受影响的 bean 属性在配置时必须放在 XML 配置文件中,否则容器就会抛出一个 BeanInitializationException 异常。
@Required 注释应用于 bean 属性的 setter 方法,它表明受影响的 bean 属性在配置时必须放在 XML 配置文件中,否则容器就会抛出一个 BeanInitializationEx ...
- JavaScript应用于asp开发场景
JavaScript应用于asp开发场景 演示代码示例: <%Path="../"%> <!--#include file="../../Inc/Con ...
- promise应用于ajax
promise应用于ajax,可以在本页打开控制台,复制代码试验 var url = 'https://www.cnblogs.com/mvc/blog/news.aspx?blogApp=dkplu ...
- 应用于Java中的一个开源的表达式语言(Expression Language)
OGNL(英文全称:Object Graph Navigation Language,中文名:对象导航图语言)是应用于Java中的一个开源的表达式语言(Expression Language),它被集 ...
随机推荐
- 单例模式的两种实现方式对比:DCL (double check idiom)双重检查 和 lazy initialization holder class(静态内部类)
首先这两种方式都是延迟初始化机制,就是当要用到的时候再去初始化. 但是Effective Java书中说过:除非绝对必要,否则就不要这么做. 1. DCL (double checked lockin ...
- 【NDK开发】android-ndk r10环境搭建
1)打开Android开发者的官网http://developer.android.com/找到Develop点击.如果页面打不开,通过代理来访问. 2)进入后再点击Tools 3)进入后在左侧找到N ...
- 开源免费的HTML5游戏引擎——青瓷引擎(QICI Engine) 1.0正式版发布了!
青瓷引擎的成长 青瓷引擎自2015年4月项目启动开始,7月首次亮相2015年ChinaJoy,便得到业界的极大关注,随后开启限量测试,收到数百个开发者团队的试用申请及反馈,期间经历了18个内测版本,完 ...
- hystrix-turbine 监控的使用
1. 概述 Demo地址:http://git.oschina.net/zhou666/spring-cloud-7simple/tree/master/cloud-hystrix-turbine ...
- ajax 跨域提交数据
$.ajax({ url:"http://my.demo.com/jsonp/server.php",//不同域的文件; cache: false, //是否使用缓存; error ...
- PHP后台代码 及 iOS客户端--AF实现上传视频
//视频转换为MP4 //转码操作... _hud.mode = MBProgressHUDModeIndeterminate; _hud.labelText = @"转码中..." ...
- PHP mail()函数
<?php /* PHP mail()函数 参数 描述 to 必需.规定 email 接收者. subject 必需.规定 email 的主题.注释:该参数不能包含任何新行字符. message ...
- SQL SERVER 2008向ORACLE 11G迁移示例
来源于:http://www.cnblogs.com/hiizsk/ 由SQL SERVER 2008向ORACLE 11G迁移过程记录之一-表 使用Oracle Sql Developer将SQL ...
- plsql解决中文乱码以及问号问题
PLSQL执行sql语句,不识别中文,输出的中文标题显示成问号???? 输入sql语句select * from V$NLS_PARAMETERS查看字符集,查看第一行value值是否为简体中文 设置 ...
- ES6新特性:Function函数扩展, 扩展到看不懂
本文所有Demo的运行环境为nodeJS, 参考:让nodeJS支持ES6的词法----babel的安装和使用 : 函数的默认值: 如果有参数 ,那就用参数, 如果没有参数, 那就用默认的参数: aj ...