转自: http://www.cnblogs.com/yjmyzz/archive/2013/11/01/3400999.html
“ODP.NET Managed”发布已经有一段时间了,近期正好有一个新项目,想尝试用一下,参考园子里的文章:《.NET Oracle Developer的福音——ODP.NET Managed正式推出》 到Oracle官网 下载 ODP.NET_Managed121010.zip 大约1.9M,解压后目录结构如下:
核心的dll,就是common目录下的Oracle.ManagedDataAccess.dll,不象ODP.NET以前的版本,这次终于不用区分x86/x64版本了,不管是32位还是64位,都是同一个dll。
至于manged/x64、managed/x86这二个目录,是用来向.NET x86或.NET x64的GAC注册程序集的,运行相关的configure.bat后,会自动将common中的Oracle.ManagedDataAccess.dll放入GAC,这样在vs中添加引用时,能自动找到GAC中的相关命名空间
运行了configure.bat的机器上,应用程序的bin目录下不必包括Oracle.ManagedDataAccess.dll,就能正常运行了。
注:configure.bat这一步是可选的,添加引用时,完全也可以通过直接浏览Oracle.ManagedDataAccess.dll所在位置,将该dll复制到bin目录下.
下面是最基本的使用代码:
1 using System; 2 using System.Data; 3 using Oracle.ManagedDataAccess.Client; 4 5 namespace ODP.NET 6 { 7 class Program 8 { 9 static void Main(string[] args) 10 { 11 OracleConnection conn = null; 12 try 13 { 14 conn = OpenConn(); 15 var cmd = conn.CreateCommand(); 16 cmd.CommandText = "select * from s_awb_master where rownum=1"; 17 cmd.CommandType = CommandType.Text; 18 var reader = cmd.ExecuteReader(); 19 while (reader.Read()) 20 { 21 Console.WriteLine(string.Format("AwbPre:{0},AwbNo:{1}", reader["AwbPre"], reader["AwbNo"])); 22 } 23 } 24 catch (Exception ex) 25 { 26 Console.WriteLine(ex.Message); 27 } 28 finally 29 { 30 CloseConn(conn); 31 } 32 Console.Read(); 33 } 34 35 36 static OracleConnection OpenConn() 37 { 38 OracleConnection conn = new OracleConnection(); 39 conn.ConnectionString = "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=***.***.***.***)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=***)));Persist Security Info=True;User ID=***;Password=***;"; 40 conn.Open(); 41 return conn; 42 } 43 44 static void CloseConn(OracleConnection conn) 45 { 46 if (conn == null) { return; } 47 try 48 { 49 if (conn.State != ConnectionState.Closed) 50 { 51 conn.Close(); 52 } 53 } 54 catch (Exception e) 55 { 56 Console.WriteLine(e.Message); 57 } 58 finally 59 { 60 conn.Dispose(); 61 } 62 } 63 } 64 }
最后附上dll下载:http://files.cnblogs.com/yjmyzz/Oracle.ManagedDataAccess.zip
vue的优点: 1.简单(vue的目标就是通过尽可能简单的api实现响应的数据绑定和组合的视图组件,而且vue的开发者是中国人,文档都是中文,所以很好入门) 2.灵活(vue官方提供了构建工具来协助你构建项目,但它不限于你去如何构建) ps:相对于AngularCli,它包办了所有的非开发工作,如编译、构建等 3.性能(vue尺寸非常小只有10几k,vue用了类似于...
idea作为功能强大,又好用的工具,广受青睐。但是功能强大势必有个问题,就是内容太多,不易掌握。今天分享的问题就是idea的jdk版本设置有哪几个地方。总共5个地方。1、工程编译用的jdk,如果提示编译的jdk版本不符合要求,就要修改这边的:2、其他的jdk版本设置:3、其他的jdk版本设置:4、其他的jdk版本设置:5、其他的jdk版本设置:...
声明:原创文章,转载请注明出处。https://www.jianshu.com/p/6341cfa5c3cd一、概述ThreadLocal: 通常被称作线程本地变量或者线程本地存储。其含义是ThreadLocal为变量在每个线程中都创建一个副本,则每个线程可以访问自身内部的副本变量。 概念总是抽象而且晦涩的,我们从两个例子说起。1、对象间/方法间跨层传递如下图,有个多层调...
添加此注解@JsonInclude
[email protected]的类继承关系图JdbcRealm:允许通过 JDBC 调用进行身份验证和授权的领域。 默认查询建议一种潜在的模式,用于检索用户的密码以进行身份验证,以及查询用户的角色和权限。 可以通过设置领域的查询属性来覆盖默认查询。如果身份验证和授权的默认实现无法处理您的架构,则可以对此类进行子类化并覆盖适当的方法。 (通常是doGetAuthenticationInfo(AuthenticationToken) 、 getRoleNamesForUser(Conn
使用disabledDate属性(不可选择的日期)在js中定义函数并返回//限制当天之前的日期不可选disabledDate(current) {return current && current //return current && current < moment().endOf(‘day');当天之前的不可选,包括当天}补充知识:antd DatePi...
转载于:https://www.cnblogs.com/MyFlora/archive/2012/04/11/2441819.html
8种机械键盘轴体对比本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选?FileProvider在Android7.0过后 应用之间 Activity之间传递File路径的时候需要提供权限:需要申明一个Provider来提供content://的uri格式;申明一个FileProvider......android:name="android.support.v4.content.FileP...
golang日志库glog解析、vlog简介、每天自动切割日志文件、 设置等级控制日志的输出
Abstructwe design a novel type of neural network that directly consumes point clouds called pointenet, provides a unified architecture for applications range from object classsfication, part segmenta...
作者:曹建峰 来源:腾讯研究院 授权 产业智能官 转载 曹建峰 腾讯研究院法律研究中心高级研究员1古老行业的时代挑战法律是一个古老的行业。古罗马法学家乌尔比安曾说,法乃善良正义之术。这代表了人们对
使用正则表达式的预编译功能,可以有效加快正则匹配速度。Pattern要定义为static final静态变量,以避免执行多次预编译。示例:【错误用法】// 没有使用预编译private void func(...) { if (Pattern.matches(regexRule, content)) { ... }}// 多次预编译private v...