如何将DataConnectionDialog与Oracle提供程序一起使用?

时间:2014-09-12 17:08:24

标签: .net oracle

我正在测试一个WinForms应用,它会显示DataConnectionDialog以配置与 Oracle数据库的连接。 我正在使用的代码:

  var oracleDataSource = DataSource.OracleDataSource;
  oracleDataSource.Providers.Add(DataProvider.OracleDataProvider);

  var dcd = new DataConnectionDialog();
  dcd.DataSources.Add(DataSource.OracleDataSource);
  DataConnectionDialog.Show(dcd);

但我需要使用新的Oracle Database (ODP.NET, Managed Driver)提供程序。但是在DataProvider枚举中,我没有这个选项。有谁知道如何添加它?

感谢。

1 个答案:

答案 0 :(得分:0)

我通过旧的Microsoft代码中的一些更改来实现它。 您可以在https://onedrive.live.com/redir?resid=DAA8B744A27752C5!531&authkey=!AIxn6V0X3uM1NFE&ithint=file%2c7z

找到我的代码

打开对话框时,请使用以下代码段添加ODP.NET提供程序:

using OracleConnectionProperties = ConnectionUIProviders.OracleConnectionProperties;
using OracleConnectionUIControl = ConnectionUIProviders.OracleConnectionUIControl;


        DataConnectionDialog dialog = new DataConnectionDialog();
        DataSource.AddStandardDataSources(dialog);
        var p = new Microsoft.Data.ConnectionUI.DataProvider("Oracle.ManagedDataAccess.Client", "Oracle ODP.NET",
            "Oracle ODP.NET", "Oracle ODP.NET Oracle Data Provider for .NET",
            typeof(Oracle.ManagedDataAccess.Client.OracleConnection), typeof(OracleConnectionUIControl),
            typeof(OracleConnectionProperties));
        var oracleProviders = dialog.DataSources.Single(x => x == DataSource.OracleDataSource).Providers;
        oracleProviders.Clear();
        oracleProviders.Add(p);