3

我正在尝试做这样的事情:

Public Sub (ByVal boolTest As Boolean)
Dim objConnecton As System.Data.Common.DbConnection
Try

  If boolTest Then
         objConnecton = New SqlConnection
  Else
          objConnecton = New OracleConnection 
  End If
  Catch ex As Exception

Finally
  'Cleanup here
End Try

这适用于 Oracle.DataAccess 的 2.112.1.0 版,但不适用于 10.2.0.100 版。使用版本 10.2.0.100,我收到以下编译错误:

“'Oracle.DataAccess.Client.OracleConnection' 类型的值无法转换为 'System.Data.Common.DbConnection'”

我正在尝试使用 SQLConnection 或 OracleConnection 的实例初始化连接对象,具体取决于布尔值。

为什么我会收到此错误?

4

3 回答 3

4

为什么我会收到此错误?

用于 .NET 的 Oracle 客户端的更高版本(10.2+)不派生自标准 .NET 框架类,例如DbConnection. 如果您想无缝支持多个数据库,这有一个不幸的副作用,即需要更多的工作,因为您不能再仅使用System.Data.Common.

于 2012-05-16T18:23:31.363 回答
2

您可以使用 Microsoft 的 OracleConnection 实现而不是 Oracle one ..

http://msdn.microsoft.com/en-us/library/system.data.oracleclient.oracleconnection(v=vs.90).aspx

最好的祝福。

于 2012-05-16T18:27:20.280 回答
0

改用 System.Data.IDbConnection 怎么样?

于 2012-05-16T18:28:05.857 回答