zoukankan      html  css  js  c++  java
  • 解决“未能加载文件或程序集“Microsoft.Practices.EnterpriseLibrary.Data,Version=4.1.0.0, Culture=neutral, PublicKeyToken=58a508d96b29b237”

            今天在调试程序的时候想使用最新版本的企业库,原先公司使用的是4.0版本的。没想到,在新功能中加入了4.1版本的企业库时候出现了如上的错误。在网上搜到了一些答案,但是很多都没有用。

           网上有两种方法:

                 1)将PublicKeyToken=58a508d96b29b233去掉

                 2)将PublicKeyToken=58a508d96b29b233改成PublicKeyToken=null

           但是这两种方法都没有效果。

          那就继续使用4.0版本的吧。因为公司的东西签过名,所以就直接将PublicKeyToken=58a508d96b29b233删掉了,以后再做签名处理。这样之后,还是会出现以上问题。那就直接到EL的官网下载了4.0的版本,将所有的添加企业库的地方都替换为现在新下载过来的版本。结果是不报这个错了。原因已经很明白了。那就是不同版本或者不同签名的企业库在同时使用。

           企业库的这个错没了,又来了另外的错。

          “failed: System.Data.OracleClient.OracleException : ORA-01036: 非法的变量名/编号”

          查看了下这里,才知道,这个是Oracle里面的变量名要用 “=:”来连接的。在这里记录一下。

      SqlClient参数表达式:@ParameterName  
      OracleClient参数表达式::ParameterName  
      OleDB.Net参数表达式:? 

    简单给个例子:

    OracleClient:

    public DataTable GetRepairRecordData(string DeviceHierarchyId) {
                Database db = DatabaseFactory.CreateDatabase();
                string sql = "select * from fpi_repairrecord where hierarchyid=:hierarchyid";
                DbCommand command = db.GetSqlStringCommand(sql);
                db.AddInParameter(command, "hierarchyid", DbType.String, DeviceHierarchyId);
                return db.ExecuteDataSet(command).Tables[0];
            }

    红色的符号按照上面的方式修改,在不同的数据库Provider中。

  • 相关阅读:
    win7 下加载MSCOMCTL.OCX
    getGLES1ExtensionString: Could not find GLES 1.x config!
    IUnknown(TVarData(Params[0]).VPointer) as Range
    win8 VB6打开提示MSCOMCTL.ocx未注册
    服务端接口处理流任务要如何返回?
    flink之kafka生产和消费实战-将生产数据存放到mongodb中
    初识doris的那些基本概念
    bash常见用法
    sonar p3c规则配置
    sonar之gitlab ci 在gradle项目的实践(汉化、branch、 commit提交评论)
  • 原文地址:https://www.cnblogs.com/UpThinking/p/1585327.html
Copyright © 2011-2022 走看看