'odbcConnection'在vb.net互操作应用程序中含糊不清

时间:2013-12-31 10:47:45

标签: vb.net namespaces office-interop

我在VB.NET Windows窗体应用程序中有以下代码:

Case "DB2"
    Try
        Dim row As DataRow

        Using cnDB2 As New OdbcConnection(source_cnString)
            Dim drDB2 As OdbcDataReader = Nothing
            Dim cmdDB2 As New OdbcCommand(dtSource, cnDB2)

            cnDB2.Open()
            drDB2 = cmdDB2.ExecuteReader

            While drDB2.Read
                row = dsSourceData.Tables(tableName).NewRow()
                Dim iCell As Integer

但是我收到了编译错误:

'OdbcConnection' is ambiguous, imported from the namespaces or types 'Microsoft.Office.Interop.Excel, System.Data.Odbc'

我在课堂上有 Imports

Imports System.IO
Imports System.Xml
Imports System.Xml.XPath
Imports System.Data.Odbc
Imports System.Data.SqlClient
Imports Microsoft.Office.Interop.Excel
Imports System.Net.Mail
Imports System.Text

2 个答案:

答案 0 :(得分:1)

如错误输出中所述,OdbcConnection存在于'Microsoft.Office.Interop.Excel'和'System.Data.Odbc'命名空间中。您必须通过在代码中放入完整的命名空间来指定您正在使用的内容。

Using cnDB2 As New System.Data.Odbc.OdbcConnection(source_cnString)

答案 1 :(得分:1)

错误是由冲突的命名空间引起的。 System.Data.Odbc中的那个和Microsoft.Office.Interop.Excel中的那个,这里唯一的可能性就是准确指定您打算使用的命名空间。您可以为每个Odbc类键入完整的限定名称空间(System.Data.Odbc.OdbcConnection等),或使用简单的快捷方式缩写您的输入。

尝试在代码文件的开头添加此Imports statement

Imports NetOdbc = System.Data.Odbc

然后在你的代码中

Case "DB2"
    Try
        Dim row As DataRow

        Using cnDB2 As New NetOdbc.OdbcConnection(source_cnString)
            Dim drDB2 As NetOdbc.OdbcDataReader = Nothing
            Dim cmdDB2 As New NetOdbc.OdbcCommand(dtSource, cnDB2)

            cnDB2.Open()
            drDB2 = cmdDB2.ExecuteReader

            While drDB2.Read
                row = dsSourceData.Tables(tableName).NewRow()
                Dim iCell As Integer