.net程序员使用Oracle新手上路指南
一、安装oracle 11g 服务端(可选)
二、安装for .Net特定的客户端 ODAC with Oracle Developer Tools for Visual Studio
http://www.oracle.com/technetwork/database/windows/downloads/index-101290.html
#
# Create Oracle net service names, or aliases, for each database server
# you need to connect to.
#
# TNSNames.ora sample entry
#
# alias =
# (DESCRIPTION =
# (ADDRESS = (PROTOCOL = TCP)(HOST = myserver.mycompany.com)(PORT = 1521))
# (CONNECT_DATA =
# (SERVER = DEDICATED)
# (SERVICE_NAME = orcl)
# )
# )
#
# You can modify the entry below for your own database.
# <data source alias> = Name to use in the connection string Data Source
# <hostname or IP> = name or IP of the database server machine
# <port> = database server machine port to use
# <database service name> = name of the database service on the server
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
解释一下:local是自己定义的名称,可以随便改,只要不重复就行了,host后面的部分是服务器ip地址,port是端口号,SERVICE_NAME是oracle server安装时的实例命名,修改完成后,保存。
using System;
using System.Data.OracleClient;namespace Sample
{class Program{static void Main(string[] args){string connString = "Data Source=local;Persist Security Info=True;User ID=scott;Password=tiger;Unicode=True";using (OracleConnection conn = new OracleConnection(connString)) {OracleCommand cmd = new OracleCommand("select * from emp", conn);conn.Open();OracleDataReader dr = cmd.ExecuteReader();while (dr.Read()) {Console.WriteLine("{0}\t{1}", dr[0].ToString(), dr[1].ToString());}dr.Close();}Console.ReadLine();}}
}
Provider=MSDAORA;Data Source=local;Persist Security Info=True;User ID=scott;Password=tiger
示例代码:
using System;
using System.Data.OleDb;namespace Sample
{class Program{static void Main(string[] args){string connString = "Provider=MSDAORA;Data Source=local;Persist Security Info=True;User ID=scott;PassWord=tiger";using (OleDbConnection conn = new OleDbConnection(connString)){OleDbCommand cmd = new OleDbCommand("select * from emp", conn);conn.Open();OleDbDataReader dr = cmd.ExecuteReader();while (dr.Read()){Console.WriteLine("{0}\t{1}", dr[0], dr[1]);}dr.Close();}Console.ReadLine();}}
}
using System;
using Oracle.DataAccess.Client;
using System.Data;
using System.Data.Common;namespace Sample
{class Program{static void Main(string[] args){string connString = "DATA SOURCE=local;PERSIST SECURITY INFO=True;USER ID=SCOTT;Password=tiger";string ProviderName = "Oracle.DataAccess.Client";DbProviderFactory factory = DbProviderFactories.GetFactory(ProviderName);using (DbConnection conn = factory.CreateConnection()){conn.ConnectionString = connString;conn.Open();DbCommand cmd = conn.CreateCommand();cmd.CommandText = "select * from emp";cmd.CommandType = CommandType.Text;DbDataReader dr = cmd.ExecuteReader();while (dr.Read()){Console.WriteLine("{0}\t{1}", dr[0], dr[1]);}dr.Close();}Console.ReadLine();}}
}
using System;
using Oracle.DataAccess.Client;
using System.Data;
using System.Data.OleDb;
using System.Data.Common;
using System.Diagnostics;
using MSOracle = System.Data.OracleClient;namespace Sample
{class Program{static void Main(string[] args){string temp = "";string connString = "DATA SOURCE=local;PERSIST SECURITY INFO=True;USER ID=SCOTT;Password=tiger";string ProviderName = "Oracle.DataAccess.Client";DbProviderFactory factory = DbProviderFactories.GetFactory(ProviderName);int max = 5000;Stopwatch sw = new Stopwatch();sw.Start();for (int i = 0; i < max; i++){using (DbConnection conn = factory.CreateConnection()){conn.ConnectionString = connString;conn.Open();DbCommand cmd = conn.CreateCommand();cmd.CommandText = "select * from emp";cmd.CommandType = CommandType.Text;DbDataReader dr = cmd.ExecuteReader();while (dr.Read()){//Console.WriteLine("{0}\t{1}", dr[0], dr[1]);temp = dr[0].ToString();}dr.Close();//Console.WriteLine("第{0}次\t----------------------------------------", i);}}sw.Stop();Console.WriteLine("Oracle.DataAccess.Client\t{0}次耗时:{1}毫秒", max, sw.ElapsedMilliseconds);string connString2 = "Provider=MSDAORA;Data Source=local;Persist Security Info=True;User ID=scott;PassWord=tiger";sw.Reset(); sw.Start();for (int i = 0; i < max; i++){using (OleDbConnection conn =new OleDbConnection(connString2)){conn.Open();OleDbCommand cmd = new OleDbCommand("select * from emp", conn);OleDbDataReader dr = cmd.ExecuteReader();while (dr.Read()){//Console.WriteLine("{0}\t{1}", dr[0], dr[1]);temp = dr[0].ToString();}dr.Close();//Console.WriteLine("第{0}次\t----------------------------------------", i);}}sw.Stop();Console.WriteLine("System.Data.OleDb\t{0}次耗时:{1}毫秒", max, sw.ElapsedMilliseconds);string connString3 = "Data Source=local;Persist Security Info=True;User ID=scott;Password=tiger;Unicode=True";sw.Reset();sw.Start();for (int i = 0; i < max; i++){using (MSOracle.OracleConnection conn = new MSOracle.OracleConnection(connString3)){conn.Open();MSOracle.OracleCommand cmd = new MSOracle.OracleCommand("select * from emp", conn);MSOracle.OracleDataReader dr = cmd.ExecuteReader();while (dr.Read()){//Console.WriteLine("{0}\t{1}", dr[0], dr[1]);temp = dr[0].ToString();}dr.Close();//Console.WriteLine("第{0}次\t----------------------------------------", i);}}sw.Stop();Console.WriteLine("System.Data.OracleClient\t{0}次耗时:{1}毫秒", max, sw.ElapsedMilliseconds);Console.ReadLine();}}
}
运行结果:
Oracle.DataAccess.Client 5000次耗时:4711毫秒
System.Data.OleDb 5000次耗时:53684毫秒
System.Data.OracleClient 5000次耗时:8436毫秒
相信大家知道如何选择了吧,果然还是Oracle官方更熟悉自己的产品。
.net程序员使用Oracle新手上路指南相关推荐
- 《新程序员005:开源深度指南新金融背后的科技力量》
各位CSDN的uu们你们好呀,今天,小雅兰来写书评啦,尽管再忙,也不能不读书,下面,就让小雅兰来带你们走进<新程序员005:开源深度指南&新金融背后的科技力量>这本书的世界吧!!! ...
- 程序员最新面试谈薪指南
程序员最新面试谈薪指南 找工作不可避免的要涉及到面试,但是对于多数程序员来说,解决各种bug信手拈来,满足各种需求不在话下,面试的沟通介绍,还有最后的薪酬问题简直是比写代码痛苦百倍的事.这就造成入职同 ...
- 【社区图书馆】《新程序员005:开源深度指南 新金融背后的科技力量》
各位CSDN的uu们你们好呀,今天,小雅兰来给大家推荐一本书,此书的书名为新程序员005:开源深度指南 & 新金融背后的科技力量,为什么小雅兰今天要给大家推荐这样一本书呢?好啦,现在,让我们进 ...
- 程序员保持健康的生活指南
程序员保持健康的生活指南 多吃蔬菜水果是目前提倡的营养学观点,同时也已经深入人心.然而,任何事情都存在于进退的合适空间之内,过与不及都不完美.吃水果也是一样. 面对电脑时间长了不好,那该怎么办 ...
- 谈谈开源的利弊和国内的开源 ——《新程序员005:开源深度指南 新金融背后的科技力量》书评
感谢CSDN的送测 <新程序员005:开源深度指南 & 新金融背后的科技力量> 是一本以计算机编程和金融科技为主题的杂志书,由中国最大的开源社区之一的开源社主办,内容丰富多样,包括 ...
- 书评 | 《新程序员005:开源深度指南 新金融背后的科技力量》
目录 书评 | <新程序员005:开源深度指南 & 新金融背后的科技力量> 内容介绍 书籍优点 书评 书评 | <新程序员005:开源深度指南 & 新金融背后的科技力 ...
- 写给Java程序员的Java虚拟机学习指南
大家好,我是极客时间<深入拆解Java虚拟机>作者.Oracle Labs高级研究员郑雨迪.有幸借这个专题的机会,能和大家分享为何Java工程师要学Java虚拟机?如何掌握Java虚拟机? ...
- 佛系程序员的月薪五万指南
程序员问大师-- 青年:大师,你看咪蒙的助理都月薪 5 万了,我也想月薪 5 万! 大师:很简单,我这里有一份佛系月薪 5 万指南,我看你骨骼清奇.脑门光亮,一看就是将要大富大贵之人,这份指南可以助你 ...
- 关于大龄程序员的谣言 新手必读
误传1:年长程序员比新手要价更高,因而年轻的开发人员更受欢迎. 事实:有经验的开发人员之所以被打上"昂贵"的标签,是因为在任何软件公司里员工的薪水永远是最大的支出.事实上,年轻就意 ...
最新文章
- poj 1741 Tree
- leetcode 416. Partition Equal Subset Sum | 416. 分割等和子集(Java)
- DDD“上吊绳驱动开发”,开发要想不被“吊死”,该如何自救?
- Spring集成和Web服务
- 写接口给别人调用 推送数据到我们_我们写了一个超好用的抖音矩阵数据管理工具...
- DC中的一些命令随笔
- java随机安排座位表程序_java – 为长凳生成随机座位表的最有效算法?
- 李彦宏发布人生第一条Vlog,发力视频从自己做起
- [数位dp][状压dp] Jzoj P3458 密码
- 用74l138实现一个一位全减器_用react实现一个仿ionic button组件
- iBase4J简单应用添加模块
- Think中文网站产品驱动程序一览表ThinkPad T61 for Win XP
- android怎么监听多点触摸_android 手势监听和多点触摸 笔记
- TCGA/癌症基因组图谱数据库|肿瘤简写中英文对照
- 批量解析域名为IP地址的shell脚本和python脚本
- 带宽不足会引起php cpu,云服务器的带宽不足会造成的影响
- jmeter_Ramp-up Period(in seconds)设置的作用及用法
- NodeRed基础1--循环结构
- 神经网络模型大小怎么看,神经网络模型大小计算
- 服务器 uefi 安装win7系统,UEFI+GPT安装win7系统图文教程