win8下在microsoft visual studio 2012利用ODP.NET连接ORACLE 12c
2013-12-30 17:47
603 查看
老板要求我搭个ASP.NET框架,并且连接上ORACLE数据库,听起来好像挺简单的,但就是连第一步连接ORACLE我都搞了两天╮(╯▽╰)╭
首先,项目书上要求用ORACLE 10G,可我自己的本本装的WIN8,尝试地装了下ORACLE 10G失败,而且界面丑的一笔,于是放弃治疗了。
上ORACLE官网看了下,现在都出到ORACLE 12c了,果断来了一发,照着网上的安装教程磕磕巴巴终于装上了。教程如下地址:
http://wenku.baidu.com/link?url=5-aebYetfHHC188TbI3ofeRBB2PAUPar6MJE2TE0JEuGRlo-p1M9X5kGttmsL_d0eF_-bGezBCwD9Smh7l6nKzeinOTh_bXg0CuHZKKq6si
这里,我设置的全局数据库名是orcl,密码为Oracle12c(好像ORACLE的密码必须要有大小写配合)。
安装完毕之后,用自带的SQL Plus登录进去,用户名为SYSTEM,密码为Oracle12c,ORACLE比较操蛋啊,之前在MYSQL的语句都不好用了。
总结几条:
有点兴奋,可是好戏在后头 .. 我一直在寻找PLSQL Developer,找了半天咋没有呢 .. 在东软电脑上都有啊,百度了一下原来他妈的这玩意还要自己装。
ORACLE官网上木有这玩意,我在其他地方下了一个,装上,发现不好使,他妈的,郁闷了,这时候不懂怎么办了。
各种百度啊,并且在visual studio12里写代码测试能不能连上,虽然百度上方法很多,可是没一个能好用的,真是纠结出翔。
偶然我怀疑是不是有组件没装,又是各种百度,居然真是!我还没装ORACLE客户端!真笨啊!搞了半天才发现这么傻的问题!
贴个链接http://www.oracle.com/technetwork/developer-tools/visual-studio/downloads/index.html?ssSourceSiteId=ocomcn
我的ORACLE是12c release 12.1.0.1.0的,所以下了ODTwithODAC121010包,里面包括:
虽然找到了原因,但这时候我又担心不会把这些组件都装上以后又有什么新问题吧,果然不出我所料!妈瞎啊妈瞎真是fuck啊!
各种试,试了PLSQL Developer不行,试了visual studio12里的ODBC,OLE DB,ODP.NET托管驱动程序还是不行!
ORA-12154: TNS: 无法解析指定的连接标识符
然后我又是各种百度啊!各种试各种不成功!到最后,终于有一个好用的了!那就是:
在D:\MySoftware\app\gomez\product\12.1.0\dbhome_1\NETWORK\ADMIN\ listener.ora里加上一些配置。
本来是这样的:
修改后是这样的:
-------------------------------------------------
还有就是本来在装完客户端之后,D:\MySoftware\app\gomez\product\12.1.0\client_1\Network\Admin这个路径下只有Sample文件夹,
参照D:\MySoftware\app\gomez\product\12.1.0\dbhome_1\NETWORK\ADMIN,这里不仅有Sample文件夹,还有listener.ora,tnsnames.ora,sqlnet.ora还有sqlnet13122912下午2119.bak(本来想用xxx等 .. 感觉程序员还是不要那么马虎),
所以我就把D:\MySoftware\app\gomez\product\12.1.0\client_1\Network\Admin\Sample里的sqlnet.ora和tnsnames.ora都拷出来,不知道有没有用(*^__^*)
-------------------------------------------------
然后重启服务OracleOraDB12Home1TNSListener,再试一试PLSQL,我擦进去了!
吊炸天了,赶紧试一试ODP.NET,也可以了!
然后接下来就是怎么用语句来实现对ORACLE数据库的查看、存储等等操作了。
先在ODTwithODAC121010里找到Oracle.DataAccess.Client.dll,具体位置是ODTwithODAC121010\stage\Components\oracle.ntoledb.odp_net_2\12.1.0.1.0\1\DataFiles里的filegroup10.jar,解压可得到Oracle.DataAccess.Client.dll,再将其添加到本项目的引用中来,然后在代码里添加using。
代码很简单,不想解释了,跑起来是酱紫的。
好,到此为止,我已经可以在win8操作系统下用ODP.NET在visual studio 2012里利用代码连接到ORACLE 12C做一些必要操作了。
-------------------------------------------------
还有问题么?有的!ODBC,OLE DB等等还是不行!
ODBC数据源配置还是不好搞,搞来搞去还是错的!
非常不理想啊!说是体系结构不匹配,我的操作系统是64位的,数据库也是64位的,客户端没说是多少位的,ODBC数据源32和64的都设置过都不行。
还有OLE DB也还是不行,据visual studio 2012提示说可供连接到的最高版本为10g,那还玩个毛线!
还有一种!好像visual studio 2012的“引用”里面都没有这个库了 %>_<%
╮(╯▽╰)╭哎,ODBC & OLE DB & Oracle Client 这3种方法我暂时就放弃治疗了 .. 等过几天可能要在其他电脑搭XP+Oracle 10g什么的时候 ..
那个时候应该绕不过去这个了,那时候有进展再来详述,今天总算不是没有收获了!接来下加油继续搞下去!
首先,项目书上要求用ORACLE 10G,可我自己的本本装的WIN8,尝试地装了下ORACLE 10G失败,而且界面丑的一笔,于是放弃治疗了。
上ORACLE官网看了下,现在都出到ORACLE 12c了,果断来了一发,照着网上的安装教程磕磕巴巴终于装上了。教程如下地址:
http://wenku.baidu.com/link?url=5-aebYetfHHC188TbI3ofeRBB2PAUPar6MJE2TE0JEuGRlo-p1M9X5kGttmsL_d0eF_-bGezBCwD9Smh7l6nKzeinOTh_bXg0CuHZKKq6si
这里,我设置的全局数据库名是orcl,密码为Oracle12c(好像ORACLE的密码必须要有大小写配合)。
安装完毕之后,用自带的SQL Plus登录进去,用户名为SYSTEM,密码为Oracle12c,ORACLE比较操蛋啊,之前在MYSQL的语句都不好用了。
总结几条:
// 查询所有表(分号一定要有) select table_name from all_tables; // 查询用户下的所有表 select table_name from user_tables; // 显示表内数据 select * from myoracle;
有点兴奋,可是好戏在后头 .. 我一直在寻找PLSQL Developer,找了半天咋没有呢 .. 在东软电脑上都有啊,百度了一下原来他妈的这玩意还要自己装。
ORACLE官网上木有这玩意,我在其他地方下了一个,装上,发现不好使,他妈的,郁闷了,这时候不懂怎么办了。
各种百度啊,并且在visual studio12里写代码测试能不能连上,虽然百度上方法很多,可是没一个能好用的,真是纠结出翔。
偶然我怀疑是不是有组件没装,又是各种百度,居然真是!我还没装ORACLE客户端!真笨啊!搞了半天才发现这么傻的问题!
贴个链接http://www.oracle.com/technetwork/developer-tools/visual-studio/downloads/index.html?ssSourceSiteId=ocomcn
我的ORACLE是12c release 12.1.0.1.0的,所以下了ODTwithODAC121010包,里面包括:
虽然找到了原因,但这时候我又担心不会把这些组件都装上以后又有什么新问题吧,果然不出我所料!妈瞎啊妈瞎真是fuck啊!
各种试,试了PLSQL Developer不行,试了visual studio12里的ODBC,OLE DB,ODP.NET托管驱动程序还是不行!
ORA-12154: TNS: 无法解析指定的连接标识符
然后我又是各种百度啊!各种试各种不成功!到最后,终于有一个好用的了!那就是:
在D:\MySoftware\app\gomez\product\12.1.0\dbhome_1\NETWORK\ADMIN\ listener.ora里加上一些配置。
本来是这样的:
# listener.ora Network Configuration File: D:\MySoftware\app\gomez\product\12.1.0\dbhome_1\network\admin\listener.ora # Generated by Oracle configuration tools. SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = CLRExtProc) (ORACLE_HOME = D:\MySoftware\app\gomez\product\12.1.0\dbhome_1) (PROGRAM = extproc) (ENVS = "EXTPROC_DLLS=ONLY:D:\MySoftware\app\gomez\product\12.1.0\dbhome_1\bin\oraclr12.dll") ) ) LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = WMW-PC)(PORT = 1521)) ) )
修改后是这样的:
# listener.ora Network Configuration File: D:\MySoftware\app\gomez\product\12.1.0\dbhome_1\network\admin\listener.ora # Generated by Oracle configuration tools. SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (GLOBAL_HOME = orcl) (ORACLE_HOME = D:\MySoftware\app\gomez\product\12.1.0\dbhome_1) (SID_NAME = ORCL) ) (SID_DESC = (SID_NAME = CLRExtProc) (ORACLE_HOME = D:\MySoftware\app\gomez\product\12.1.0\dbhome_1) (PROGRAM = extproc) (ENVS = "EXTPROC_DLLS=ONLY:D:\MySoftware\app\gomez\product\12.1.0\dbhome_1\bin\oraclr12.dll") ) ) LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = WMW-PC)(PORT = 1521)) ) )
-------------------------------------------------
还有就是本来在装完客户端之后,D:\MySoftware\app\gomez\product\12.1.0\client_1\Network\Admin这个路径下只有Sample文件夹,
参照D:\MySoftware\app\gomez\product\12.1.0\dbhome_1\NETWORK\ADMIN,这里不仅有Sample文件夹,还有listener.ora,tnsnames.ora,sqlnet.ora还有sqlnet13122912下午2119.bak(本来想用xxx等 .. 感觉程序员还是不要那么马虎),
所以我就把D:\MySoftware\app\gomez\product\12.1.0\client_1\Network\Admin\Sample里的sqlnet.ora和tnsnames.ora都拷出来,不知道有没有用(*^__^*)
-------------------------------------------------
然后重启服务OracleOraDB12Home1TNSListener,再试一试PLSQL,我擦进去了!
吊炸天了,赶紧试一试ODP.NET,也可以了!
然后接下来就是怎么用语句来实现对ORACLE数据库的查看、存储等等操作了。
先在ODTwithODAC121010里找到Oracle.DataAccess.Client.dll,具体位置是ODTwithODAC121010\stage\Components\oracle.ntoledb.odp_net_2\12.1.0.1.0\1\DataFiles里的filegroup10.jar,解压可得到Oracle.DataAccess.Client.dll,再将其添加到本项目的引用中来,然后在代码里添加using。
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Data.Odbc; using Oracle.DataAccess.Client; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { // 连接数据库 string conn = "DATA SOURCE=ORCL;PERSIST SECURITY INFO=True;USER ID=SYSTEM;Password=Oracle12c"; OracleConnection odpCon = new OracleConnection(conn); odpCon.Open(); // 插入数据 string sqlinsert = "insert into myoracle values(6,'yh')"; using (OracleCommand comm_insert = new OracleCommand(sqlinsert, odpCon)) { using (OracleDataReader rdr_insert = comm_insert.ExecuteReader()) { } } // 查询数据 string sqlselect = "select * from myoracle"; using (OracleCommand comm = new OracleCommand(sqlselect, odpCon)) { using (OracleDataReader rdr = comm.ExecuteReader()) { while (rdr.Read()) { Console.Write("ID "); Console.Write(rdr.GetString(0)); Console.Write(", NAME: "); Console.WriteLine(rdr.GetString(1)); } } } } } }
代码很简单,不想解释了,跑起来是酱紫的。
好,到此为止,我已经可以在win8操作系统下用ODP.NET在visual studio 2012里利用代码连接到ORACLE 12C做一些必要操作了。
-------------------------------------------------
还有问题么?有的!ODBC,OLE DB等等还是不行!
ODBC数据源配置还是不好搞,搞来搞去还是错的!
非常不理想啊!说是体系结构不匹配,我的操作系统是64位的,数据库也是64位的,客户端没说是多少位的,ODBC数据源32和64的都设置过都不行。
还有OLE DB也还是不行,据visual studio 2012提示说可供连接到的最高版本为10g,那还玩个毛线!
还有一种!好像visual studio 2012的“引用”里面都没有这个库了 %>_<%
╮(╯▽╰)╭哎,ODBC & OLE DB & Oracle Client 这3种方法我暂时就放弃治疗了 .. 等过几天可能要在其他电脑搭XP+Oracle 10g什么的时候 ..
那个时候应该绕不过去这个了,那时候有进展再来详述,今天总算不是没有收获了!接来下加油继续搞下去!
相关文章推荐
- Build a .NET Application on the Oracle Database with Microsoft Visual Studio 2010
- C#利用ODP.net免安装Oracle Client连接数据库方法
- Microsoft .net framework required for microsoft visual studio ultimate 2012 setup解决办法
- ORACLE .net应用程序通过ODP.NET连接oracle12c之ORA-03137
- C# 连接Oracle(利用ODP.net,不安装oracle客户端)
- C# 连接Oracle(利用ODP.net,不安装oracle客户端)
- C# 连接Oracle(利用ODP.net,不安装oracle客户端)
- C# 连接Oracle(利用ODP.net,不安装oracle客户端)
- Microsoft Visual Studio.NET 2003 (VS2003) 简体中文企业级结构设计版+MSDN中文版
- Microsoft Visual Studio .NET 2003 安装问题 - 安装程序检测到另一个程序要求计算机重新启动
- VS2012出错:未找到与约束ContractName Microsoft.VisualStudio.Text.ITextDocumentFactoryService
- 面向 Microsoft OracleClient 开发人员的 ODP.NET(资料收集)
- Microsoft Visual Studio 2012 已停止工作(转)
- Microsoft Visual Studio 11 Beta 和 Microsoft SQL Server 2012
- 使用Oracle Developer Tools For Visual Studio .NET
- Microsoft Visual Studio .NET 系统必备
- Microsoft Visual Studio 2012正式版官方下载
- 如何在Microsoft Visual studio Ultimate 2012中安装配置Python 2.7和Diango1.5.1,并新建第一个网站
- C#利用ODP.NET往oracle中高效插入百万数据
- 解决在Microsoft Visual Studio .NET 2003页面切换按钮等事件丢失的问题