Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Работа с данными

Страница: 1 |

 

  Вопрос: Что стряслосъ с (idb)DataAdapter в студии 2005 ? Добавлено: 09.01.06 15:28  

Автор вопроса:  student-uni

На строкi
 Return New OdbcDataAdapter(SelectString, ConnectionString)
ругаетса


вот текст которыи придумал Павел



Module DatenBanken

    Friend Class DBObjectsFactory
        Friend Enum DBType
            SQL = 1
            OleDb = 2
            ODBC = 3
            MySQL = 4
        End Enum
        Private _DBType As DBType

        Friend Sub New(ByVal MyDBType As DBType)
            Me._DBType = MyDBType
        End Sub

        Friend Function GetConnection(ByVal ConnectionString As String) As IDbConnection
            Select Case Me._DBType
                Case DBType.SQL

                    Return New SqlConnection(ConnectionString)
                Case DBType.OleDb

                    Return New OleDbConnection(ConnectionString)
                Case DBType.ODBC

                    Return New OdbcConnection(ConnectionString)
                Case DBType.MySQL

                    Return New MySqlConnection(ConnectionString)
                Case Else
                    Return Nothing
            End Select
        End Function

        Friend Function GetDataAdapter(ByVal SelectString As String, ByVal ConnectionString As IDbConnection) As IDataAdapter 'IDbDataAdapter
            Select Case Me._DBType
                Case DBType.SQL
                   
                    Return New SqlDataAdapter(SelectString, ConnectionString)
                Case DBType.OleDb
                    Return New OleDbDataAdapter(SelectString, ConnectionString)
                Case DBType.ODBC
                    Return New OdbcDataAdapter(SelectString, ConnectionString)
                Case DBType.MySQL
                    Return New MySqlDataAdapter(SelectString, ConnectionString)
                Case Else
                    Return Nothing
            End Select
        End Function

        Friend Function GetCommand(ByVal SelectString As String, ByVal ConnectionString As IDbConnection) As IDbCommand
            Select Case Me._DBType
                Case DBType.SQL
                    Return New SqlCommand(SelectString, ConnectionString)
                Case DBType.OleDb
                    Return New OleDbCommand(SelectString, ConnectionString)
                Case DBType.ODBC
                    Return New OdbcCommand(SelectString, ConnectionString)
                Case DBType.MySQL
                    Return New MySqlCommand(SelectString, ConnectionString)
                Case Else
                    Return Nothing
            End Select
        End Function

    End Class
End Module



а вот и ошибка, которая под ВС 2005 проявляется шибко
в тексте которыи придумал Павел :-)


Error 3 Overload resolution failed because no accessible 'New' can be called without a narrowing conversion:
    
'Public Sub New(selectCommandText As String, selectConnectionString As String)':
Argument matching parameter 'selectConnectionString' narrows from 'System.Data.IDbConnection' to 'String'.
    
'Public Sub New(selectCommandText As String, selectConnection As System.Data.Odbc.OdbcConnection)':
Argument matching parameter 'selectConnection' narrows from 'System.Data.IDbConnection' to 'System.Data.Odbc.OdbcConnection'. C:\Dokumente und Einstellungen\vvoytas\Eigene Dateien\mrcc\einstellungen.vb 919 28 RAS-Terminal Programm



а вот и фрагмент из МСДНа которыи говорит о том, что
датаадаптер должен кушатъ комманд как аргумент и недолжна проявлятъця ошибка,
которая под вс2005 проявляетса шибко в тексте которыи придумал павел


Overload List
Name Description
OleDbDataAdapter () Initializes a new instance of the OleDbDataAdapter class.
OleDbDataAdapter (OleDbCommand) Initializes a new instance of the OleDbDataAdapter class with the specified OleDbCommand as the SelectCommand property.
OleDbDataAdapter (String, OleDbConnection) Initializes a new instance of the OleDbDataAdapter class with a SelectCommand.
OleDbDataAdapter (String, String) Initializes a new instance of the OleDbDataAdapter class with a SelectCommand



а если серезно то с коммандом все нормалъно а с датаадаптером проблема, он не ест интерфеисныи комманд как аргумент

Повторю - в 2003 все работает


Помогите кто может, :-)
Заранее Спасибо

Ответить

  Ответы Всего ответов: 3  

Номер ответа: 1
Автор ответа:
 student-uni



Вопросов: 122
Ответов: 257
 Профиль | | #1 Добавлено: 09.01.06 15:37
уточню
Dim MySQLComm As IdbCommand
Return New SqlDataAdapter(MySQLComm)
ест
а
Dim SelectString As string
Dim ConnectionString As IDbConnection
Return New OSqlDataAdapter(SelectString, ConnectionString)
не ест
а должен, должен же перегужатъся !!!

Ответить

Номер ответа: 2
Автор ответа:
 student-uni



Вопросов: 122
Ответов: 257
 Профиль | | #2 Добавлено: 09.01.06 16:02
выкрутился через ж...

может кто по умнее что придумает ?



 Friend Function GetDataAdapter(ByVal SelectString As String, ByVal ConnectionString As IDbConnection) As IDbDataAdapter
            Select Case Me._DBType
                Case DBType.SQL
                    Dim MySqlCommand As SqlCommand = New SqlCommand(SelectString, ConnectionString)
                    Return New SqlDataAdapter(MySqlCommand)
                Case DBType.OleDb
                    Dim olda As OleDbCommand = New OleDbCommand(SelectString, ConnectionString)
                    Return New OleDbDataAdapter(olda)
                Case DBType.ODBC
                    Dim odbcda As OdbcCommand = New OdbcCommand(SelectString, ConnectionString)
                    Return New OdbcDataAdapter(odbcda)
                Case DBType.MySQL
                    Dim mySQLda As MySqlCommand = New MySqlCommand(SelectString, ConnectionString)
                    Return New MySqlDataAdapter(mySQLda)
                Case Else
                    Return Nothing
            End Select
        End Function

Ответить

Номер ответа: 3
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #3
Добавлено: 10.01.06 03:52
Не есть IDBCommand - корми ем "свой" Command, приведя тип к нужному:

Return New SqlDataAdapter(CType(Command, SqlCommand))

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам