winform連接oracle時Oracle.DataAccess.dll版本問題 Silverlight


1.通用TestOracle.zip部署到iis上,或直接運行程序測試當前全局程序集

 protected void Button1_Click(object sender, EventArgs e)
        {
            //OracleConnection con = new OracleConnection("Data Source=(DESCRIPTION =(ADDRESS_LIST =(ADDRESS =(PROTOCOL = TCP)(HOST = ip地址)(PORT = 1521)))( CONNECT_DATA =(SERVICE_NAME = orcl)));User Id=用戶名;Password=密碼;");
            DbFactory.Init("Data Source=(DESCRIPTION =(ADDRESS_LIST =(ADDRESS =(PROTOCOL = TCP)(HOST = ip地址)(PORT = 1521)))( CONNECT_DATA =(SERVICE_NAME = orcl)));User Id=用戶名;Password=密碼;", DbTypeEnum.Oracle);
            OracleConnection con = (OracleConnection)DbFactory.GetDbCon();
            con.Open();

            //獲取當前運行的dll的版本
            Assembly assembly = Assembly.GetExecutingAssembly();
            Response.Write(con.GetType().Assembly.FullName + "<br/>");
            con.Clone();

            //獲取自己封裝的數據訪問版本
            //DbHelper db = DbFactory.GetInstance();
            //Response.Write(db.GetType().Assembly.FullName + "<br/>");

            ////獲取ODP.Net的版本
            //DbConnection cnn = DbFactory.GetDbCon();
            //Response.Write(cnn.GetType().Assembly.FullName + "<br/>");

            //var r = db.ExecuteReader(cnn, CommandType.Text, "select * from BJSW_RSVR_R t");
            //Response.Write(r.HasRows);
            //cnn.Close();

           

            //方式二
            //DbHelper db = DbFactory.GetInstance();
            //var r = db.ExecuteReadEntity<X>(DbFactory.ConnectionString, CommandType.Text, "select * from HY_GPH_A", (reader) =>
            //{
            //    Response.Write(reader.HasRows);
            //    if (reader.Read())
            //    {
            //        List<X> l = new List<X>();
            //        l.Add(new X() { Name = reader[0].ToString() });
            //        return l;
            //    }
            //    else
            //    {
            //        return null;
            //    }
            //});

            //方式三
            //TestDao dao = new TestDao();
            //var list = dao.QueryList();
            //Response.Write(list == null?"沒有數據":"有數據");
        }

 

2.將winform生成的版本修改為x64,一般服務器都是64位

3.在app.config中添加Oracle.DataAccess.dll版本

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="Oracle.DataAccess" publicKeyToken="89B483F429C47342" culture="neutral" />
        <bindingRedirect oldVersion="4.112.3.0" newVersion="2.112.1.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" />
  </startup>
</configuration>

4.通過TestOracle.zip得到Oracle.DataAccess版本,將版本添加到newVersion中

 

5.獲取值在程序集中查看Oracle.DataAccess版本

6.Test

 7.silverlight 在web.config中添加配置

  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="Oracle.DataAccess"
        publicKeyToken="89B483F429C47342"
        culture="neutral" />
        <bindingRedirect
          oldVersion="4.112.3.0"
          newVersion="2.112.1.0"/>
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
</configuration>

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM