通用权限管理系统底层先前访问Oracle数据库时需要客户端安装驱动软件,如下图:

安装完毕还需要一番配置,系统再引用其dll,

现在我们使用了最新的dll

该dll是Oracle出的最新的版本。

通用权限管理系统底层需要调整的地方:

1、OracleHelper.cs调整

OracleHelper.cs完整的代码
namespace DotNet.Utilities
{
// 需要安装客户端安装驱动
//using Oracle.DataAccess.Client;
// 2016.07.04 不需要客户端驱动
using Oracle.ManagedDataAccess.Client;
/// <summary>
/// OracleHelper
/// 有关数据库连接的方法。
///
/// 修改记录
///
/// 2008.08.26 版本:1.3 JiRiGaLa 修改Open时的错误反馈。
/// 2008.06.01 版本:1.2 JiRiGaLa 数据库连接获得方式进行改进,构造函数获得调通。
/// 2008.05.08 版本:1.1 JiRiGaLa 调试通过,修改一些 有关参数的 Bug。
/// 2008.05.07 版本:1.0 JiRiGaLa 创建。
///
/// 版本:1.3
///
/// <author>
/// <name>JiRiGaLa</name>
/// <date>2008.08.26</date>
/// </author>
/// </summary>
public class OracleHelper : BaseDbHelper, IDbHelper
{
public override DbProviderFactory GetInstance()
{
// 需要安装客户端安装驱动
//return DbProviderFactories.GetFactory("Oracle.DataAccess.Client");
// 2016.07.04 不需要客户端驱动
return DbProviderFactories.GetFactory("Oracle.ManagedDataAccess.Client");
} #region public override CurrentDbType CurrentDbType 当前数据库类型
/// <summary>
/// 当前数据库类型
/// </summary>
public override CurrentDbType CurrentDbType
{
get
{
return CurrentDbType.Oracle;
}
}
#endregion #region public OracleHelper() 构造方法
/// <summary>
/// 构造方法
/// </summary>
public OracleHelper()
{
FileName = "OracleHelper.txt"; // sql查询句日志
}
#endregion #region public OracleHelper(string connectionString) 构造方法
/// <summary>
/// 构造方法
/// </summary>
/// <param name="connectionString">数据连接</param>
public OracleHelper(string connectionString)
: this()
{
this.ConnectionString = connectionString;
}
#endregion #region public string GetDbNow() 获得数据库日期时间
/// <summary>
/// 获得数据库日期时间
/// </summary>
/// <returns>日期时间</returns>
public string GetDbNow()
{
return " SYSDATE ";
}
#endregion #region public string GetDbDateTime() 获得数据库日期时间
/// <summary>
/// 获得数据库日期时间
/// </summary>
/// <returns>日期时间</returns>
public string GetDbDateTime()
{
string commandText = " SELECT " + this.GetDbNow() + " FROM DUAL ";
this.Open();
string dateTime = this.ExecuteScalar(commandText, null, CommandType.Text).ToString();
this.Close();
return dateTime;
}
#endregion #region public override string PlusSign() 获得Sql字符串相加符号
/// <summary>
/// 获得Sql字符串相加符号
/// </summary>
/// <returns>字符加</returns>
public override string PlusSign()
{
return " || ";
}
#endregion #region string PlusSign(params string[] values) 获得Sql字符串相加符号
/// <summary>
/// 获得Sql字符串相加符号
/// </summary>
/// <param name="values">参数值</param>
/// <returns>字符加</returns>
public string PlusSign(params string[] values)
{
string returnValue = string.Empty;
for (int i = ; i < values.Length; i++)
{
returnValue += values[i] + " || ";
}
if (!String.IsNullOrEmpty(returnValue))
{
returnValue = returnValue.Substring(, returnValue.Length - );
}
else
{
returnValue = " || ";
}
return returnValue;
}
#endregion #region public string SqlSafe(string value) 检查参数的安全性
/// <summary>
/// 检查参数的安全性
/// </summary>
/// <param name="value">参数</param>
/// <returns>安全的参数</returns>
public string SqlSafe(string value)
{
value = value.Replace("'", "''");
// value = value.Replace("%", "'%");
return value;
}
#endregion #region public IDbDataParameter MakeInParam(string targetFiled, object targetValue) 获取参数
/// <summary>
/// 获取参数
/// </summary>
/// <param name="targetFiled">目标字段</param>
/// <param name="targetValue">值</param>
/// <returns>参数</returns>
public IDbDataParameter MakeInParam(string targetFiled, object targetValue)
{
return new OracleParameter(":" + targetFiled, targetValue);
}
#endregion #region public IDbDataParameter MakeParameter(string targetFiled, object targetValue) 获取参数
/// <summary>
/// 获取参数
/// </summary>
/// <param name="targetFiled">目标字段</param>
/// <param name="targetValue">值</param>
/// <returns>参数集</returns>
public IDbDataParameter MakeParameter(string targetFiled, object targetValue)
{
IDbDataParameter dbParameter = null;
if (targetFiled != null)
{
dbParameter = this.MakeInParam(targetFiled, targetValue);
}
return dbParameter;
}
#endregion #region public IDbDataParameter[] MakeParameters(string[] targetFileds, Object[] targetValues) 获取参数
/// <summary>
/// 获取参数
/// </summary>
/// <param name="targetFiled">目标字段</param>
/// <param name="targetValue">值</param>
/// <returns>参数集</returns>
public IDbDataParameter[] MakeParameters(string[] targetFileds, Object[] targetValues)
{
List<IDbDataParameter> dbParameters = new List<IDbDataParameter>();
if (targetFileds != null && targetValues != null)
{
for (int i = ; i < targetFileds.Length; i++)
{
if (targetFileds[i] != null && targetValues[i] != null)
{
dbParameters.Add(this.MakeInParam(targetFileds[i], targetValues[i]));
}
}
}
return dbParameters.ToArray();
}
#endregion #region public IDbDataParameter[] MakeParameters(List<KeyValuePair<string, object>> parameters) 获取参数
/// <summary>
/// 获取参数
/// </summary>
/// <param name="parameters">参数</param>
/// <returns>参数集</returns>
public IDbDataParameter[] MakeParameters(List<KeyValuePair<string, object>> parameters)
{
// 这里需要用泛型列表,因为有不合法的数组的时候
List<IDbDataParameter> result = new List<IDbDataParameter>();
if (parameters != null && parameters.Count > )
{
foreach (var parameter in parameters)
{
if (parameter.Key != null && parameter.Value != null && (!(parameter.Value is Array)))
{
result.Add(MakeParameter(parameter.Key, parameter.Value));
}
}
}
return result.ToArray();
}
#endregion #region public IDbDataParameter MakeInParam(string parameterName,object parameterValue,DbType dbType, int parameterSize )获取输出参数
/// <summary>
/// 获取输出参数
/// </summary>
/// <param name="paramName">目标字段</param>
/// <param name="dbType">数据类型</param>
/// <param name="size">长度</param>
/// <returns>参数</returns>
public IDbDataParameter MakeOutParam(string parameterName, object parameterValue, DbType dbType, int parameterSize)
{
return MakeParameter(parameterName, null, dbType, parameterSize, ParameterDirection.Output);
}
#endregion #region public IDbDataParameter MakeInParam(string parameterName,object parameterValue,DbType dbType, int parameterSize ) 获取输入参数
/// <summary>
/// 获取输入参数
/// </summary>
/// <param name="paramName">目标字段</param>
/// <param name="dbType">数据类型</param>
/// <param name="size">值</param>
/// <param name="value"></param>
/// <returns>参数</returns>
public IDbDataParameter MakeInParam(string parameterName, object parameterValue, DbType dbType, int parameterSize)
{
return MakeParameter(parameterName, parameterValue, dbType, parameterSize, ParameterDirection.Input);
}
#endregion #region public IDbDataParameter MakeParameter(string parameterName, object parameterValue, DbType dbType, Int32 parameterSize, ParameterDirection parameterDirection)获取参数
/// <summary>
/// 获取参数
/// </summary>
/// <param name="paramName">目标字段</param>
/// <param name="dbType">数据类型</param>
/// <param name="size">长度</param>
/// <param name="direction">参数类型</param>
/// <param name="value">值</param>
/// <returns>参数</returns> public IDbDataParameter MakeParameter(string parameterName, object parameterValue, DbType dbType, Int32 parameterSize, ParameterDirection parameterDirection)
{
OracleParameter result; if (parameterSize > )
{
result = new OracleParameter(parameterName, (OracleDbType)dbType, parameterSize);
}
else
{
result = new OracleParameter(parameterName, (OracleDbType)dbType);
} result.Direction = parameterDirection;
if (!(parameterDirection == ParameterDirection.Output && parameterValue == null))
{
result.Value = parameterValue;
} return result;
}
#endregion #region public string GetParameter(string parameter) 获得参数Sql表达式
/// <summary>
/// 获得参数Sql表达式
/// </summary>
/// <param name="parameter">参数名称</param>
/// <returns>字符串</returns>
public string GetParameter(string parameter)
{
return ":" + parameter;
}
#endregion
}
}

2、web.config中需要增加以下节点内容

代码内容

  <system.data>
<DbProviderFactories>
<remove invariant="Oracle.ManagedDataAccess.Client"/>
<add name="ODP.NET, Managed Driver" invariant="Oracle.ManagedDataAccess.Client" description="Oracle Data Provider for .NET, Managed Driver"
type="Oracle.ManagedDataAccess.Client.OracleClientFactory, Oracle.ManagedDataAccess, Version=4.121.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342"/>
</DbProviderFactories>
</system.data>

通用权限管理系统底层更换最新Oracle驱动的方法的更多相关文章

  1. 如何在通用权限管理系统中集成log4net日志功能

    开发人员都知道,在系统运行中要记录各种日志,自己写一个日志功能,无论是在效率还是功能扩展上来说都不是很好,目前大多用的是第三方的日志系统,其中一个非常有名,用的最多的就是log4net.下面是关于这个 ...

  2. 通用权限管理系统接口文档V4.2 版本之消息接口介绍

    通用权限管理系统提供的消息接口可实现消息获取,消息发送,底层使用Redis对消息进行缓存,解决消息的并发请求对数据库的压力. 前端可以通过客户端轮询来获取最新消息,前端效果截图如下:

  3. 通用权限管理系统Ver2.0

    通用权限管理系统Ver2.0平台采用kendo+mvc4+Nhibernate技术实现,底层采用自定义ORM实现数据库底层代码,支持Oracle.SqlServer.mysql等常用数据库,界面采用k ...

  4. 以WCF安全认证方式调用通用权限管理系统获取基础信息资料

    在B/S开发中,涉及到获取系统基础资料的问题,因为是在不同平台下的开发,采用了WCF方式获取. 下面是一个调用通用权限管理系统(吉日嘎拉)基础信息资料的一个demo供参考 调用原理图: web.con ...

  5. Net 通用权限管理系统源码 带数据库设计文档,部署说明文档

    Net 通用权限管理系统源码 带数据库设计文档,部署说明文档 包括数据库设计文档部署安装文档源码数据库文件 下载地址:http://www.mallhd.com/archives/1389

  6. 通用权限管理系统数据字典 V3.9 版本,欢迎开发个各种业务系统的朋友们,参考表结构

    C#.NET通用权限管理系统组件数据字典 导  航 ◇ (01) BaseItemDetails ◇ (02) BaseItems ◇ (03) BaseLog ◇ (04) BaseMessage ...

  7. 通用权限管理系统之权限菜单zTree树的展示及移动的处理方法

    在通用权限管理系统中,有很多数据结构是有父子关系的,如组织机构,部门,权限菜单等,在展示的时候,大多数是通过zTree树的形式展现的,如下: 权限菜单展示 这种数据后台输出比较容易处理,参考如下获取某 ...

  8. 基于Extjs 4.2的通用权限管理系统,通用后台模板,EF+MVC+Extjs 4.2

    基于Extjs 4.2的通用权限管理系统,通用后台. 我们的宗旨:珍爱生命,拒绝重复!Don't Repeat Yourself!!! 本案例采用EntityFramework+MVC4.0+Extj ...

  9. 基于云端的通用权限管理系统,SAAS服务,基于SAAS的权限管理,基于SAAS的单点登录SSO,企业单点登录,企业系统监控,企业授权认证中心

    基于云端的通用权限管理系统 SAAS服务 基于SAAS的权限管理 基于SAAS的单点登录SSO 基于.Net的SSO,单点登录系统,提供SAAS服务 基于Extjs 4.2 的企业信息管理系统 基于E ...

随机推荐

  1. 20155226《网络攻防》 Exp3 免杀原理与实践

    20155226<网络攻防> Exp3 免杀原理与实践 实验过程 1. msfvenom直接生成meterpreter可执行文件 直接将上周做实验时用msf生成的后门文件放在virscan ...

  2. 20155339平措卓玛 Exp1 PC平台逆向破解(5)M

    20155339平措卓玛 Exp1 PC平台逆向破解(5)M 实践内容 手工修改可执行文件,改变程序执行流程,直接跳转到getShell函数. 利用foo函数的Bof漏洞,构造一个攻击输入字符串,覆盖 ...

  3. Git配置用户名与邮箱

    1.用户名和邮箱地址的作用 用户名和邮箱地址是本地git客户端的一个变量 每次commit都会用用户名和邮箱纪录. github的contributions统计就是按邮箱来统计的. 2.查看用户名和邮 ...

  4. 小兔博客新增源码下载模块,JavaWeb项目实战,JavaScript入门教程 ,JavaSE案例等

    从今以后,所有的源码在 http://www.xiaotublog.com/downloadView.html 都可以免费下载,在下载页面还可以直接链接到相关的教程地址(如果有教程的话...). 最近 ...

  5. mfc CString,string,char* 之间的转换

    知识点: CString转char*,string string转char*,CString char* 转CString,string 一.CString转char*,string //字串转换测试 ...

  6. 微信小程序初体验与DEMO分享

    前言 前一段时间微信公布小程序,瞬间引来了大量的关注.博主的公司也将其定为目标之一,遂派本菜为先头兵(踩坑侠). 这次开发了一个比较完整的DEMO,模仿自某个APP首页,由于保护隐私的目的我把数据拷贝 ...

  7. Jq_$.getJSON( )

    jQuery中的$.getJSON( )方法函数主要用来从服务器加载json编码的数据,它使用的是GET HTTP请求.使用方法如下: $.getJSON( url [, data ] [, succ ...

  8. LintCode——Pour Water

    Pour Water: We are given an elevation map, heights[i] representing the height of the terrain at that ...

  9. 更新k8s镜像版本的三种方式

    一.知识准备 更新镜像版本是在k8s日常使用中非常常见的一种操作,本文主要介绍更新介绍的三种方法 二.环境准备 组件 版本 OS Ubuntu 18.04.1 LTS docker 18.06.0-c ...

  10. BugPhobia开发篇章:Beta阶段第II次Scrum Meeting

    0x01 :Scrum Meeting基本摘要 Beta阶段第二次Scrum Meeting 敏捷开发起始时间 2015/12/13 00:00 A.M. 敏捷开发终止时间 2015/12/14 22 ...