Страница: 1 |
Страница: 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-сайт:
Профиль | | #3
Добавлено: 10.01.06 03:52
Не есть IDBCommand - корми ем "свой" Command, приведя тип к нужному:
Return New SqlDataAdapter(CType(Command, SqlCommand))