C#通过ODAC访问Oracle12c
昨天晚上刚装好Oracle12c并配制好了PLSQL Developer开发环境。今天继续完善一下,讲讲在C#中如何访问Oracle12c。
其实我们运用老早的ADO.NET也可以连接,但是在.NET Framework4.0开始,已经不推荐使用。如果我们还是引用System.Data.OracleClient,在程序代码中使用OracleConnection、OracleCommand等数据库核心操作类时会有绿色的波浪线提示你该类已经过时。
把鼠标放到绿色波浪线处,会有如下提示:
它说System.Data.OracleClient.OracleConnection类已经过时,后面给出了一个微软官方的链接。
我们打开浏览器输出如上网址:http://go.microsoft.com/fwlink/?linkID=144260。如果你英文不行,可以用这个地址:http://msdn.microsoft.com/zh-cn/library/77d8yct7.aspx。
网址里面的说明非常直观:
这里需要说明的是,虽然提示已经过时,但是程序还是运行的。只不过微软官方建议使用更加高效的第三方Oracle提供程序。
下面就正式介绍Oracle提供的比ADO.NET更高效连接的ODAC(Oracle Data Access Components)组件。
这个组件同样可以在官方网站下面下载到。http://www.oracle.com/technetwork/database/windows/downloads/index-090165.html
我们根据自己之前安装的Oracle的版本选择合适的版本进行下载。因为我之前是装的Oracle 12c R1版本并且是64位的,因此我们选择如下图所示的文件进行下载。
下载好之后,解压到文件夹下面,运行setup.exe文件,进行安装。我们下的这个版本是支持VS2010和VS2012的,由于我装的是VS2012,安装过程中需要手动选择一下安装到VS2012,其它都是下一步。安装时间不长,耐心等待至安装完毕后退出。
环境准备好,我们就可以测试一下在VS2012中能否连接到Oracle 12c了。
测试过程很简单:
打开VS2012,选择菜单栏中的视图,然后选择服务器资源管理器。在数据连接上面右键鼠标,在弹出的菜单栏中选择添加连接后会打开如下页面。输入账号、密码等要素后, 点击测试连接按钮可以得到连接反馈(成功或失败)。
如果弹出“测试连接成功。”的提示,则表明我们通过Oracle提供的ODAC组件成功连接Oracle 12c了。
紧接着我们就可以在VS中写代码来测试一下,我们还是用上面的测试用例,输出当前数据库的系统时间。
首先我们要在项目中引用Oracle.DataAccess,然后就可以模仿ADO.NET的代码来写ODP.NET的代码了。
string connString = "Data Source=orcl;User ID=C##guwei4037;Password=123456;DBA Privilege=SYSDBA;";
using (Oracle.DataAccess.Client.OracleConnection conn = new Oracle.DataAccess.Client.OracleConnection(connString))
{
if (conn.State != ConnectionState.Open) conn.Open();//打开数据库连接 Oracle.DataAccess.Client.OracleCommand cmd = new Oracle.DataAccess.Client.OracleCommand("select sysdate from dual", conn);//执行一条SQL语句
object obj = cmd.ExecuteScalar();//返回第一行第一列的结果
Console.WriteLine(obj != null ? obj.ToString() : "null");
}
我们运行一下这个控制台应用程序。
OK,成功输出数据库系统时间,通过ODAC访问Oracle12c成功。
C#通过ODAC访问Oracle12c的更多相关文章
- ODAC访问oracle时,提示:由于以前的函数求值超时,函数求值被禁用,必须继续执行才能正常返回
这是因为调试时会自动对Local/Watch等窗口里面(或鼠标停留所在)的变量求值,为了防止用户写的程序错误(比如死循环),系统有一个超时限制,如果某个属性的get中做了很复杂的操作(而不是简单地返回 ...
- ORA-01033: ORACLE initialization or shutdown in progress问题
这是Oracle12c中笔者遇到的一个错误提示:ORA-01033: ORACLE initialization or shutdown in progress 错误的中文意思是:Oracle初始化未 ...
- Oracle数据访问组件ODAC的安装方法
Oracle数据访问组件ODAC(Oracle Data Access Components)顾名思义就是用来访问Oracle数据库的小程序.我们可以编程调用这些组件来实现在没有安装Oracle数据库 ...
- Oracle数据访问组件ODAC的安装方法:
Oracle数据访问组件ODAC(Oracle Data Access Components)顾名思义就是用来访问Oracle数据库的小程序.我们可以编程调用这些组件来实现在没有安装Oracle数据库 ...
- ODAC(V9.5.15) 学习笔记(十六)直接访问模式
直接访问模式(Direct mode)是ODAC最大的特色之一,即不需要安装Oracle客户端,ODAC越过了OCI(Oracle Call Interface ),使用TCP/IP协议就可以直接与O ...
- 装Oracle12C时遇到没有权限访问临时位置的解决方法
今天在装oracle12c是遇到了一个很奇怪的问题,显示是没有权限访问临时位置,可是我明明是用管理员的账号登陆的啊,最后在包姐的帮助下解决了,知其然,而我却不知其所以然.但还是把方法写下,希望能帮到一 ...
- 解决oracle12c安装报“[INS-30131]执行安装程序验证所需的初始设置失败(原因:无法访问临时位置)”方法
安装过很多次oracle,顺顺利利的,今天在新机子上安装oracle12c client过程中竟然神奇的报出一个错误: 很明显的,已经很明确的给出了安装失败的原因:无法访问临时位置!实际上,在安装数据 ...
- Oracle12C配置对外访问
Oracle12C配置对外访问 第一步: 开放端口或者关闭防火墙 第二步: 配置Oracle net manager打开Net manager 修改为共享服务器 第三步: 配置连接数打开Databas ...
- .NET安装和配置Oracle数据访问组件(ODAC)
Many ASP.NET applications access Oracle database for the data source. Oracle supports the .NET with ...
随机推荐
- Tricks Device (hdu 5294 最短路+最大流)
Tricks Device Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) To ...
- Android仿腾讯应用宝 应用市场,下载界面, 有了进展button
近期应用市场做,需要使用.下载与进度显示button,因此,要寻找其他大神做,直接用于改善.和很多无用的切出.在改进共享后. 再一次改变.当下载进度时,有进步.进度显示自己主动运行文本.并设置背景为灰 ...
- mysql 源码调试方法
http://blog.itpub.net/29254281/viewspace-1847415/ 其中吕海波老师分享的内容是 <调试Oracle二三例:调试技术在日常运维中的应用>其中 ...
- JavaScript网站设计实践(二)实现导航栏当前所选页面的菜单项高亮显示
一.(一)中的代码还可以修改的地方. 在(一)中,如果是运行在服务器下,如apache等,可以把head和navigation的div抽取出来,放置在另一个html文件里,然后在页面中,include ...
- C#_dropdownlist_1
关于ASP.net MVC 中DropDownList绑定与提交数据 在做 ASP.net MVC项目中,数据绑定也是很关键的,现在以个人经验与大家交流下 ASP.net MVC 中DropDow ...
- Android Studio编译FBReaderJ
我的个人环境 系统:mac (windows应该差不多) 工具:android studio 2.1.2 注意:一定要安装NDK!一定要安装NDK!一定要安装NDK! 如何安装NDK ...
- Android View的绘制机制流程深入详解(三)
本系列文章主要着重深入介绍Android View的绘制机制及流程,第三篇主要介绍并分析视图状态以及重绘流程,首先剖析了 视图的几种状态,然后在深入分析视图的重绘机制流程. 真题园网:http://w ...
- FastDFS配置过程
在我的生产环境中利用FastDFS实现动静分离的方案
- Unity3d不支持vistual studio2012?用vs2012打开unity c#脚本进行编码的方法。
unity3d是支持vs2010的,但是有很多开发者反应,unity3d中的C#脚本不能用vs2012打开.我想了一下,先进入存放C#脚本的目录,在设置里面C#文件的打开方式,选择用vs2012打开, ...
- 重叠I/O之使用完成例程的扩展I/O【系列二】
一 废话 在上一篇文章中,我们介绍了通过等待内核对象来接受I/O完成通知的重叠I/O.除了使用同步对象外,我们还可以使用其它方法,这便是这篇文章要介绍的使用完成例程的扩展I/O.完成例程其实就是回调函 ...