无需安装Oracle Client连接Oracle数据库
介绍
当我们采用 ODP.NET 检索Oracle 数据库的时候,Oracle客户端是必须安装。假如当时电脑上没有安装Oracle客户端,就不能这么用了,这时候Oracle.ManagedDataAccess.Client就派上用场了。
背景知识
在浏览本文之前, 我们必须了解 ADO.NET 框架, 以便通过其数据提供程序库连接到任何数据库。
下面的示例代码是一个简单的控制台应用程序, 它使用 OracleManagedDataAccess 客户端库而不是 ODP.NET 连接到 oracle 数据库。在此应用程序中, 不需要在目标计算机上安装 oracle 客户端。
在使用此代码之前, 您还需要具有正确的连接字符串, 以便访问数据库表。
在这篇文章中, 我有一个连接到oracle数据库的有效连接串:
User Id = test; Password = test; Data Source=localhost:1521; Pooling=false
表的名字: tblTest
因此, 如果有人要使用这个示例代码, 他们需要确保他们输入了上面提到的正确的细节。
代码示例
请按照以下步骤创建此示例控制台应用程序, 它在不使用 oracle 客户端的情况下连接 oracle 数据库。
1. 创建C#控制台项目
2. 右键单击项目并选择 "管理 nuget 包管理器"
3. 搜索 oracle.ManagedDataAccess 库
4. 在接受许可后, 安装动态库。
5. 添加动态库引用后,参考下面的代码中指定的代码, (在顶部添加使用 Oracle.ManagedDataAccess.Client)
6. 现在请参考下面的代码, 连接到不使用 oracle 客户端的 oracle 数据库
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Oracle.ManagedDataAccess.Client; namespace OracleManagedAccess
{
class Program
{
static void Main(string[] args)
{
OracleConnection con = new OracleConnection("User Id=test;Password=test; Data Source=localhost:1521; Pooling=false");
OracleCommand cmd = new OracleCommand(); Console.WriteLine("Welcome to OracleManagedAccess Connection! Please press 1 to connect to the Oracle database");
int input = Convert.ToInt16(Console.ReadLine()); if(input==)
{
con.Open();
cmd = con.CreateCommand();
cmd.CommandText = "Select * from tblTest"; OracleDataReader reader = cmd.ExecuteReader();
while(reader.Read())
{
Console.WriteLine(reader["Col1"].ToString()+ " "+ reader["Col2"].ToString());
}
}
else
{
Console.WriteLine("Please Try again");
} Console.ReadKey();
}
}
}
无需安装Oracle Client连接Oracle数据库的更多相关文章
- plsql oracle client没有正确安装(plsql连接远程数据库)
plsql oracle client没有正确安装(plsql连接远程数据库) CreateTime--2018年4月23日16:55:11 Author:Marydon 1.情景再现 2.问题解 ...
- atitit.client连接oracle数据库的方式总结
client连接oracle数据库的方式总结 文件夹 Java程序连接一般使用jar驱动连接.. ... 桌面GUI一般採取c语言驱动oci.dll 直接连接... 间接连接(须要配置tns及其env ...
- [转]使用Navicat for Oracle工具连接oracle的
使用Navicat for Oracle工具连接oracle的 这是一款oracle的客户端的图形化管理和开发工具,对于许多的数据库都有支持.之前用过 Navicat for sqlserver,感觉 ...
- 使用Navicat for Oracle工具连接oracle
使用Navicat for Oracle工具连接oracle的 这是一款oracle的客户端的图形化管理和开发工具,对于许多的数据库都有支持.之前用过 Navicat for sqlserver,感觉 ...
- 使用C#通过Oracle.DataAccess连接Oracle,部署时需要注意版本问题
平时我们开发使用的是32位的PC机,所以安装的也是Oracle32位的客户端.但是一般服务器都是64位的,安装的也是64位的Oracle客户端,如果要部署使用Oracle.DataAccess连接Or ...
- Win7 64位安装VS2013无法连接远程数据库
win7 64位安装vs2013后连接远程数据库出现下面的问题:A first chance exception of type 'System.AccessViolationException' o ...
- ORACLE 配置连接远程数据库
ORACLE配置tnsnames.ora文件实例 客户机为了和服务器连接,必须先和服务器上的监听进程联络.ORACLE通过tnsnames.ora文件中的连接描述符来说明连接信息.一般tnsnames ...
- oracle client 低于 oracle server 端,导致报错ORA-01882
https://forums.toadworld.com/t/ora-01882-when-i-want-to-view-records-con-dba-scheduler-jobs-toad-10- ...
- python 3.x 安装问题及连接oracle数据库
最近有用到python去处理一些问题,发现现在3已出来,遂用直接下3.7使用 发现问题还是有一点的 1. pip 会出现ssl问题 Could not install packages due to ...
随机推荐
- 项目构建工具Maven
- slf4j-logback 日志以json格式导入ELK
同事整理的,在此分享.logback,log4j2 等slf4j的日志实现都可以以json格式输出日志, 这里采用的是logback.当然也可以以文本行的格式输出,然后在logstash里通过grok ...
- Nuget发布自己的DLL
首先说明背景,在asp.net core开发中,使用了Oracle,Oracle官方发布了一个新的sdk用于连接数据库,但是asp.net core有个特性,就是不支持直接引用dll,也就 ...
- 修改maven项目jdk版本,并解决Dynamic Web Module 3.1 requires Java 1.7 or newer错误
使用maven的时候,默认会使用1.5版本的JDK,并且创建项目时也会是1.5版本. 但是我想用JDK1.7版本,所以我手动将maven项目JDK改为1.7版本. 手动修改JDK版本为1.7以后,项目 ...
- 剑指offer第八天
32.把数组排成最小的数 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个.例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323 ...
- sqlalchemy和flask-sqlalchemy几种分页操作
sqlalchemy中使用query查询,而flask-sqlalchemy中使用basequery查询,他们是子类与父类的关系 假设 page_index=1,page_size=10:所有分页查询 ...
- openstack-ocata-网络服务5
一. 网络服务概述 Networking(neutron),允许创建.插入接口设备,这些设备由其他的OpenStack服务管理.插件式的实现可以容纳不同的网络设备和软件,为OpenStack架构与部署 ...
- (2018干货系列三)最新PHP学习路线整合
怎么学PHP PHP是一种通用开源脚本语言.语法吸收了C语言.Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域. 菜鸟到大神,一步到位,正式开启干货模式: PHP初级开发工程师 ...
- 用eclipes写第一个HelloWorld
打开 eclipes 后,首先点击左上角新建按钮,新建一个项目,如图: 选择 Java Project 选项: 如果没有java Project这个选项的话,选择次一个的 project 也可以,在跳 ...
- 网络基础Cisco路由交换三
热备份路由协议HSRP:Cisco私有协议 确保了当网络边缘设备或接入链路出现故障时,用户通信能迅速并透明地恢复,以此为ip网络提供余性,通过使用同意虚拟ip地址和虚拟mac地址,LAN网段上的两台或 ...