备忘录:关于.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连数据库没有问题 ...
随机推荐
- MyBatis源码分析(一):从JDBC到MyBatis 介绍MyBatis的背景,为什么要用MyBatis
一.介绍JDBC JDBC全称Java Database Connectivity,是Java语言规范客户端访问数据库的应用程序接口,所面向的数据库类型为关系型数据库. JDBC的三层架构图: JDB ...
- [CSP-S 2021] 廊桥分配 题解
写篇题解来纪念我炸掉的CSP 唯一会做的题代码写挂了(痛苦面具 思路 我看到这道题第一眼想到的是线段树,感觉可以用线段树维护飞机入站到出战的这段时间,想了半天想不到代码怎么写. 国内机场与国外机场要分 ...
- hdu 1503 Advanced Fruits(DP)
题意: 将两个英文单词进行合并.[最长公共子串只要保留一份] 输出合并后的英文单词. 思路: 求最长公共子串. 记录路径: mark[i][j]=-1:从mark[i-1][j]转移而来. mark[ ...
- Mac 搭建后端PHP+Go环境
准备工作 1. 安装brew命令 #很慢很慢.. ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/insta ...
- Matlab 中 arburg 函数的理解与实际使用方法
1. 理解 1.1 Matlab 帮助: a = arburg(x,p)返回与输入数组x的p阶模型相对应的归一化自回归(AR)参数. 如果x是一个向量,则输出数组a是一个行向量. 如果x是矩阵,则参数 ...
- 使用python操作HDF5文件
HDF Hierarchical Data Format,又称HDF5 在深度学习中,通常会使用巨量的数据或图片来训练网络.对于如此大的数据集,如果对于每张图片都单独从硬盘读取.预处理.之后再送入网络 ...
- javascript 深拷贝与浅拷贝
javascript 深拷贝与浅拷贝 深拷贝与浅拷贝 赋值和深/浅拷贝的区别 浅拷贝的实现方式 1.Object.assign() 2.函数库lodash的_.clone方法 3.展开运算符... 4 ...
- Linux ns 6. Network Namespace 详解
文章目录 1. 简介 1.1 Docker Network 桥接模式配置 2. 代码解析 2.1 copy_net_ns() 2.2 pernet_list 2.2.1 loopback_net_op ...
- 在java中,怎样把一个double数转换为字符串时,不用科学计数法表示。
解决方法1: 对Double类型的数字进行 格式化输出 ,相对来说不是很精确 import java.text.DecimalFormat; public class TestDouble_Str ...
- mysql根据条件决定是否插入数据
这个问题其实分两个方面: 1.根据表的主键决定数据是否插入. 2.根据表的非主键决定是否插入. 假设有表DOC_INFO(医生表),联合主键HOS_ID(医院代码),DEPT_CODE(科室代码),D ...