备忘录:关于.net程序连接Oracle数据库
关于使用MSSM访问Oracle数据库
- 安装访问接口组件:OraOLEDB.Oracle
- 官网可以下载,但是需要注册
- 下载地址:https://pan.baidu.com/s/1OpYmpReEJcPg4wNESWy61Q
- 要求服务器至少安装. net2.0和. net3.5
- 我参考的教程:http://www.manongjc.com/article/11212.html
- 我本机win10,SQLSERVER2019
- 安装该教程中需要注意的是:
在修改了环境变量后,不需要修改注册表的操作
创建链接服务器时,数据源参数IP/sid ,不需要使用端口
参考2: https://blog.csdn.net/weixin_42996498/article/details/88717706
关于. net 程序中连接Oracle数据库
使用System.Data.OracleClient.dll
- 该程序集对.net无版本要求
- nuget:Install-Package Oracle.ManagedDataAccess -Version 19.13.0
- 注意我没有使用最新21.4.0版本,该最新版本依赖另外一个类库System.Text.Json (>= 5.0.2),而且对.net版本有要求
注意:注意不要使用默认的System.Data.OracleClient,vs会提示过时
关于Oracle数据库连接字符串格式参考:
<connectionStrings>
<add name="connStringForOracle" connectionString="user id=用户ID;password=密码;data source=(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=服务IP地址)(PORT=端口号))(CONNECT_DATA=(SERVER=服务名)(SERVICE_NAME=服务名)))" />
</connectionStrings>
简易的封装一个Oracle辅助类:
public class OracleHelper
{
private static readonly string connectionString = System.Configuration.ConfigurationManager.ConnectionStrings["connStringForOracle"].ToString(); //创建连接对象
public static OracleConnection GetConn()
{
var conn = new OracleConnection(connectionString);
conn.Open();
return conn;
} //执行非查询语句返回受影响行数
public static int ExecuteNoQuery(string sql,CommandType type=CommandType.Text,params SqlParameter[] param)
{
using (var conn = GetConn())
{
using (OracleCommand cmd=new OracleCommand (sql,conn))
{
if (null!=param)
{
cmd.Parameters.AddRange(param);
}
cmd.CommandType = type;
conn.Open();
return cmd.ExecuteNonQuery();
}
}
} //返回查询结果的第一行第一个单元格的数据
public static object ExecuteScalar(string sql,CommandType type=CommandType.Text,params SqlParameter[] param)
{
using (var conn = GetConn())
{
using (OracleCommand cmd=new OracleCommand(sql,conn))
{
if (null!=param)
{
cmd.Parameters.AddRange(param);
}
cmd.CommandType = type;
conn.Open();
return cmd.ExecuteScalar();
}
}
} //返回查询结果集
public static DataSet GetDataSet(string sql, CommandType type = CommandType.Text, params SqlParameter[] param)
{
using (var conn = GetConn())
{
using (OracleDataAdapter adapter = new OracleDataAdapter(sql, conn))
{
if (null != param)
{
adapter.SelectCommand.Parameters.AddRange(param);
}
adapter.SelectCommand.CommandType = type;
DataSet ds = new DataSet();
adapter.Fill(ds);
return ds;
}
}
}
}
备忘录:关于.net程序连接Oracle数据库的更多相关文章
- Windows Server 2008 下ASP程序连接ORACLE数据库驱动错误
今天开发那边升级.改造系统过程中,在测试服务器碰到关于ASP程序连接ORACLE数据库的小问题,虽然是小问题,但是整起来真要命啊,花了不少时间,主要是ASP程序啊,这种上古神器,哥还是当年毕业的时候弄 ...
- C#使用托管程序连接Oracle数据库(Oracle.ManagedDataAccess.dll)
一.概述 Oracle Data Provider for .NET, Managed Driver: Oracle官方的托管数据库访问组件,单DLL,Oracle.ManagedDataAcces ...
- 程序连接Oracle数据库出现未找到提供程序.该程序可能未正确安装错误提示
好不容易使用plsql可以成功连上数据库了,应用程序连接数据库却出现了问题 其实解决这个问题也简单: 1. 查看oracle安装目录下的BIN目录,E:\app\Administrator\prod ...
- 程序连接oracle数据库问题Cannot create PoolableConnectionFactory ...
报错: [ERROR] -- :: com.ipi.caee.InitServlet - 初始化数据加载异常 org.springframework.transaction.CannotCreateT ...
- 2.oracle数据库:[1]oracle简易客户端安装方法
准备oracle简易客户端程序,如果没有请到oracle网站下载www.oracle.com,可以下载基本包及其他扩展程序包,例如:如果要使用sqlplus则需要下载sqlplus包,笔者下载了i ...
- 【备忘录】ORACLE数据库每日计划EXPDP备份
1.OracleBackup_expdp版本|oracle.bat文件 还需手动更改的内容如下: 调用格式需改成call %~dp0\OracleBackup 数据库 用户名 密码 文件夹名称 ...
- atitit.客户端连接oracle数据库的方式总结
客户端连接oracle数据库的方式总结 目录 Java程序连接一般使用jar驱动连接..... 桌面GUI一般采取c语言驱动oci.dll 直接连接... 间接连接(需要配置tns及其envi var ...
- asp.net连接ORACLE数据库
这段时间维护客户的一个系统,该系统使用的是ORACLE数据库,之前开发的时候用的都是MSSQL,并没有使用过ORACLE.这两种数据库虽然都是关系型数据库,但是具体的操作大有不同,这里作下记录. 连接 ...
- 关于64位win7环境下VS连接oracle数据库的问题
本机环境:64位win7,安装了64位的oracle桌面类 服务器环境:64位windows server 2008,64位oracle服务器端 问题:本机用sql developer连数据库没有问题 ...
随机推荐
- Relocations in generic ELF (EM: 40)
最近在搞机器上的wifi热点,需要移植一大堆东西,如hostapd\wpa_suppliant.dhcp等,这些玩意又依赖其他的一大堆库的移植,比如libnl,openssl等,今天在移植编译libn ...
- 面试题系列:工作5年,第一次这么清醒的理解final关键字?
面试题:用过final关键字吗?它有什么作用 面试考察点 考察目的: 了解面试者对Java基础知识的理解 考察人群: 工作1-5年,工作年限越高,对于基础知识理解的深度就越高. 背景知识 final关 ...
- 修改 openssh 版本号
1.查看 sshd 位置 #which sshd 2.查看 /usr/sbin/sshd(二进制文件) 内容 #strings /usr/sbin/sshd | grep nicai 3.修改版本号, ...
- BugKu之备份是个好习惯
题目:备份是个好习惯 思路分析 打开题目,看到一个字符串. 联系到题目,就猜到肯定是源代码泄露,用工具扫一下,发现了index.php.bak,验证了我的猜想,下载下来看看. <?php /** ...
- spark搭建
1.上传解压,配置环境变量 配置bin目录 2.修改配置文件 conf cp spark-env.sh.template spark-env.sh 增加配置 export SPARK_MASTER_I ...
- Django项目部署到阿里云服务器无法发送邮件,发送邮件超时问题解决
前言 今天, 博主将写了好久的一个Django小项目尝试在阿里云部署上线,由于项目中需要发送邮件,博主调用了163邮箱接口,在本地测试邮件功能正常,可是上线后,邮件功能一直超时崩溃.在百度一番查资料后 ...
- 【CVE-2020-1948】Apache Dubbo Provider反序列化漏洞复现
一.实验简介 实验所属系列: 系统安全 实验对象:本科/专科信息安全专业 相关课程及专业: 计算机网络 实验时数(学分):2 学时 实验类别: 实践实验类 二.实验目的 Apache Dubbo是一款 ...
- Effective C++ 总结笔记(一)
一.让自己习惯C++ 01.视C++为一个语言联邦 c++是多重范型编程 语言,视c++包括4种次语言: 1:C 2:Object-Oreinted C++: 3:Template C++: 4:ST ...
- ES6—数值(Number,Math对象)(复习+学习)
ES6-数值(Number,Math对象)(复习+学习) 每天一学,今天要学习ES6的关于数的扩展以及复习,然后通过看书,查阅资料,以及webAPI来搞清楚遇到的,没见过的对象方法等等,下面为本次学习 ...
- 大爽Python入门教程 2-3 字符串,列表,字典
大爽Python入门公开课教案 点击查看教程总目录 除了通用的序列方法, 列表和字符串还有些自己的专属方法. 后面介绍有些是英中文对照介绍(英文来自官方文档), 便于大家更深入的去理解其意思. 灵活的 ...