志铭-2021年12月7日 21:22:15

关于使用MSSM访问Oracle数据库


关于. 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数据库的更多相关文章

  1. Windows Server 2008 下ASP程序连接ORACLE数据库驱动错误

    今天开发那边升级.改造系统过程中,在测试服务器碰到关于ASP程序连接ORACLE数据库的小问题,虽然是小问题,但是整起来真要命啊,花了不少时间,主要是ASP程序啊,这种上古神器,哥还是当年毕业的时候弄 ...

  2. C#使用托管程序连接Oracle数据库(Oracle.ManagedDataAccess.dll)

    一.概述 Oracle Data Provider for  .NET, Managed Driver: Oracle官方的托管数据库访问组件,单DLL,Oracle.ManagedDataAcces ...

  3. 程序连接Oracle数据库出现未找到提供程序.该程序可能未正确安装错误提示

    好不容易使用plsql可以成功连上数据库了,应用程序连接数据库却出现了问题 其实解决这个问题也简单: 1.  查看oracle安装目录下的BIN目录,E:\app\Administrator\prod ...

  4. 程序连接oracle数据库问题Cannot create PoolableConnectionFactory ...

    报错: [ERROR] -- :: com.ipi.caee.InitServlet - 初始化数据加载异常 org.springframework.transaction.CannotCreateT ...

  5. 2.oracle数据库:[1]oracle简易客户端安装方法

      准备oracle简易客户端程序,如果没有请到oracle网站下载www.oracle.com,可以下载基本包及其他扩展程序包,例如:如果要使用sqlplus则需要下载sqlplus包,笔者下载了i ...

  6. 【备忘录】ORACLE数据库每日计划EXPDP备份

        1.OracleBackup_expdp版本|oracle.bat文件 还需手动更改的内容如下: 调用格式需改成call %~dp0\OracleBackup 数据库 用户名 密码 文件夹名称 ...

  7. atitit.客户端连接oracle数据库的方式总结

    客户端连接oracle数据库的方式总结 目录 Java程序连接一般使用jar驱动连接..... 桌面GUI一般采取c语言驱动oci.dll 直接连接... 间接连接(需要配置tns及其envi var ...

  8. asp.net连接ORACLE数据库

    这段时间维护客户的一个系统,该系统使用的是ORACLE数据库,之前开发的时候用的都是MSSQL,并没有使用过ORACLE.这两种数据库虽然都是关系型数据库,但是具体的操作大有不同,这里作下记录. 连接 ...

  9. 关于64位win7环境下VS连接oracle数据库的问题

    本机环境:64位win7,安装了64位的oracle桌面类 服务器环境:64位windows server 2008,64位oracle服务器端 问题:本机用sql developer连数据库没有问题 ...

随机推荐

  1. Linkerd 2:5 分种厘清 Service Mesh 相关术语

    API Gateway(API 网关) API gateway 位于应用程序的前面,旨在解决身份验证和授权.速率限制以及为外部消费者提供公共访问点等业务问题. 相比之下,service mesh 专注 ...

  2. Luogu P3758 [TJOI2017]可乐 | 矩阵乘法

    题目链接 让我们先来思考一个问题,在一张包含$n$个点的图上,如何求走两步后从任意一点$i$到任意一点$j$的方案数. 我们用$F_p(i,j)$来表示走$p$步后从$i$到$j$的方案数,如果存储原 ...

  3. 『学了就忘』Linux基础命令 — 19、目录操作的相关命令

    目录 1.ls命令 2.cd命令 (1)绝对路径和相对路径 (2)cd命令的简化用法 3.pwd命令 4.mkdir命令 5.rmdir命令 常用目录操作的相关命令: ls命令 cd命令 pwd命令 ...

  4. Dubbo框架协议总结

    Dubbo支持的各种协议及相关特性及应用场景,均可在官网文档中找到. 支持的协议有dubbo.rmi.hession.http.webservice.thrift.memcached.redis.re ...

  5. 挂载nfs存储

    查看nfs服务器上提供了哪些nfs目录 showmount -e 172.16.3.8 使用showmount前需要安装nfs-utils包 yum install nfs-utils -y 挂载nf ...

  6. PHP查看内存占用

    function test(){ echo memory_get_usage(), '<br>'; $start = memory_get_usage(); $a = []; for ($ ...

  7. springcloud优雅停止上下线与熔断

    SpringCloud 服务优雅上下线 Spring Boot 框架使用"约定大于配置"的特性,优雅流畅的开发过程,应用部署启动方式也很优雅.但是我们通常使用的停止应用的方式是 k ...

  8. Mysql教程:(六)修改语句、、删除语句、字符查询like

    1.修改语句 update 表名 set  where 条件 mysql> update student set birth=1988,department='中文系' where id=901 ...

  9. MySQL基础语句(MySQL内置函数 )

    MySQL 字符串函数 函数 描述 实例 ASCII(s) 返回字符串 s 的第一个字符的 ASCII 码. 返回 CustomerName 字段第一个字母的 ASCII 码: SELECT ASCI ...

  10. Linux 软连接与硬连接 区别

    先说结论 软连接相当于快捷方式,访问软连接会被替换为其指向的绝对路径,如果其指向的文件被删除,则无法访问. 硬连接相当于指针,与它指向的文件都指向相同的inode,当其指向的文件被删除,inode由于 ...