【问题标题】:VS2010 Convert datasets to ODP.netVS2010 将数据集转换为 ODP.net
【发布时间】:2014-01-08 11:06:09
【问题描述】:

我们在 VS2010 中有一个解决方案。在某些项目中,我们有一个数据集。所有数据集都包含超过 1 个 DataTables 和 tableAdapter。 该解决方案是使用 SYSTEM.DATA.ORACLECLIENT 开发的。 现在我们要转换为 ODP.net,我们必须使用 ORACLE.DATAACCESS.CLIENT。 我们在论坛上做了如何做到这一点。 所以我们已经完成了: - 删除了项目级别上的引用“SYSTEM.DATA.ORACLECLIENT”。 - 添加了引用“ORACLE.DATAACCESS”。 - 所有“使用 SYSTEM.DATA.ORACLECLIENT;”改为“使用Oracle.DataAccess.Client;” - 在某些连接字符串中,我们删除了“Unicode=true” - 我们还没有在 OracleCommand 中添加 BindingName = true 做任何事情 - 我们还没有对 VarChar、VarNumeric 等更改 dbtype 做任何事情...

我没有收到任何构建错误,但在运行解决方案时我收到有关“值不在预期范围内”的错误。

现在我感觉我的数据集没有 100% 转换为 ODP.net。 所以我需要一些帮助。

如何检查或确实将数据集转换为 OPD.net (Oracle.DataAccess.Client) ? “分层更新”、“DeleteDBDirectMethods”等属性呢? 一个数据集由 4 个文件表示:.cs、Designer.cs、.xsc 和 .xss。 这些文件中的代码似乎没问题:我的意思是我看到了 Oracle.DataAccess.Client。

谁能帮帮我?

【问题讨论】:

    标签: visual-studio-2010 oracle dataset odp.net odac


    【解决方案1】:

    在将我们的数据集 (XSD) 从使用 System.Data.OracleClient 转换为 Oracle.DataAccess.Client 后,我​​们也遇到了这个问题。

    问题在于数据集设计器仍在使用“Number”作为 ProviderType 的数据类型。 Oracle 不支持“Number”数据类型。我们必须为每个表适配器更改每个数据集中的 ProviderType,并为表适配器中的每个查询更改每个参数集合。我们为 ProviderType 使用了“Decimal”,它似乎工作正常。不要忘记检查自动生成的“选择”、“更新”和“删除”查询。

    我们也没有更改 BindByName = true。

    希望这会有所帮助。

    【讨论】:

      【解决方案2】:

      我听从了this post on the Oracle forums中给出的建议:

      我试图从使用 System.Data.OracleClient 适配器转换为使用 ODP.NET,所以我直接进入数据集 xsd 并将提供程序更改为指向 Oracle.DataAccess.Client 并使用正确的提供者。

      这对我有用 - 使用 XML(文本)编辑器打开 XSD,然后找到这一行:

      <Connection ... Provider="System.Data.OracleClient">
      

      改成这样:

      <Connection ... Provider="Oracle.ManagedDataAccess.Client">
      

      重建时,.Designer.cs 文件中的所有代码都将更新为使用Oracle.ManagedDataAccess

      【讨论】:

        猜你喜欢
        • 2010-12-24
        • 2015-11-28
        • 2012-01-13
        • 2014-05-15
        • 1970-01-01
        • 1970-01-01
        • 2013-07-23
        • 2011-09-30
        相关资源
        最近更新 更多