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平台的更多相关文章

  1. PlantUML —— 应用于 Eclipse 的简单快速的 UML 编辑软件

    PlantUML —— 应用于 Eclipse 的简单快速的 UML 编辑软件 简介: 在应用系统软件开发过程中,如果软件由很多对象组成,它的结构仅仅凭借分析很难理清,同时为了有利于软件的开发及重用, ...

  2. 领域驱动和MVVM应用于UWP开发的一些思考

    领域驱动和MVVM应用于UWP开发的一些思考 0x00 起因 有段时间没写博客了,其实最近本来是根据梳理的MSDN上的资料(UWP开发目录整理)有条不紊的进行UWP学习的.学习中有了心得体会或遇到了问 ...

  3. 20155301-滕树晨 第二次随笔作业--从现有技能获取的经验应用于JAVA中

    第二次随笔--从现有技能获取的经验应用于JAVA中 你有什么技能比大多人(超过90%以上)更好? 这个想了半天,有一个是我乒乓球还是比较擅长的,在学校里可能比百分之90的人要强,在外面肯定是不如了.再 ...

  4. Git应用于Android项目的入门知识:我的理解

    Git应用于Android项目的基本知识.     常常将git,repo和gerrit三种工具配合起来使用,使Android开发中的部分工作自动化.并适应敏捷项目管理的需要.     repo是Go ...

  5. thiscall仅仅应用于“C++”成员函数(this指针存放于CX寄存器,参数从右到左压)

    _stdcall是Pascal程序的缺省调用方式,通常用于Win32 Api中,函数采用从右到左的压栈方式,自己在退出时清空堆栈.VC将函数编译后会在函数名前面加上下划线前缀,在函数名后加上" ...

  6. @Required 注释应用于 bean 属性的 setter 方法,它表明受影响的 bean 属性在配置时必须放在 XML 配置文件中,否则容器就会抛出一个 BeanInitializationException 异常。

    @Required 注释应用于 bean 属性的 setter 方法,它表明受影响的 bean 属性在配置时必须放在 XML 配置文件中,否则容器就会抛出一个 BeanInitializationEx ...

  7. JavaScript应用于asp开发场景

    JavaScript应用于asp开发场景 演示代码示例: <%Path="../"%> <!--#include file="../../Inc/Con ...

  8. promise应用于ajax

    promise应用于ajax,可以在本页打开控制台,复制代码试验 var url = 'https://www.cnblogs.com/mvc/blog/news.aspx?blogApp=dkplu ...

  9. 应用于Java中的一个开源的表达式语言(Expression Language)

    OGNL(英文全称:Object Graph Navigation Language,中文名:对象导航图语言)是应用于Java中的一个开源的表达式语言(Expression Language),它被集 ...

随机推荐

  1. ZH奶酪:Java调用NLPIR汉语分词系统

    NLPIR工具 支持自定义词表: 可以离线使用: 下载地址:http://ictclas.nlpir.org/newsdownloads?DocId=389 在线演示:http://ictclas.n ...

  2. Qt学习笔记 ListWidget的增删改

    学习了一下ListWidget控件的使用,做一个小功能增删改 先把代码分解最后给出完整代码 在窗体上添加一个ListWidget 一个Horizontal Specer和  三个PushButton ...

  3. 对《重建中国.NET生态系统》评论贴的总结

    Neuzilla官方微信公众号:搜 架构师联盟 或 neuzilla,也可以扫下面二维码 在看了<重建中国.NET生态系统>的各种哭爹喊娘骂街的评论之后,我觉得哦,淫才确实很多,但是么真正 ...

  4. SQLServer(MSSQL)、MySQL、SQLite、Access相互迁移转换工具 DB2DB v1.2

    最近公司有一个项目,需要把原来的系统从 MSSQL 升迁到阿里云RDS(MySQL)上面.为便于测试,所以需要把原来系统的所有数据表以及测试数据转换到 MySQL 上面.在百度上找了很多方法,有通过微 ...

  5. ffmpeg在shell循环中只执行一次问题

    最近写了一个shell脚本,发现 ffmpeg 命令只执行了一次就停了,最后找到原因: ffmpeg有时会读取标准输入流,导致命令出错,解决办法是在ffmpeg命令之后添加 #xxx ffmpeg x ...

  6. CSS 颜色代码大全

    CSS颜色: 转载:http://www.cnblogs.com/axing/archive/2011/04/09/CSS.html

  7. javascript 中加’var‘和不加'var'的区别,你真的懂吗?

    没看之前千万别说我是标题党,这个问题真的有好多淫都不懂!!! 大家都看了很多文章,都说避免隐式声明全局变量,就是说声明变量前必须加'var',那加了'var'和不加'var'到底有啥区别呢? 先来看一 ...

  8. We Know What @You #Tag: Does the Dual Role Affect Hashtag Adoption-20160520

    分析类的论文 1.Information publication:www2012 author: Mei qiao zhu 2.What 微博中的hashtag既可以表示谈论的内容,又可以代表一个群体 ...

  9. PS技能大全

    1.设置固定的图片大小 参考:http://jingyan.baidu.com/album/642c9d3418bec4644a46f72a.html?picindex=1

  10. python作为一种胶水和c/c++

    如果需要用 Python 调用 C/C++ 编写的第三方库,只需要一个脚本语言来粘合它们.这个时候,用 Python ctypes 可以很方便地实现调用. StackOverflow 上的 Calli ...