Browse DevX
Sign up for e-mail newsletters from DevX

Tip of the Day
Language: VB7
Expertise: Advanced
Nov 17, 2003



Building the Right Environment to Support AI, Machine Learning and Deep Learning

CreateDataAdapter - Creating a DataAdapter for a given connection object, via Reflection

' Create a suitable DataAdapter object for a given connection object.
' Example:
'    Dim da As DbDataAdapter = CreateDataAdapter(cn, "SELECT * FROM Titles")

Function CreateDataAdapter(ByVal cn As IDbConnection, _
    ByVal sql As String) As DbDataAdapter
    ' We must box CN to invoke the GetType method.
    Dim cnType As Type = CObj(cn).GetType()
    ' The complete name of the assembly where the connection is defined.
    Dim asmName As String = CObj(cn).GetType().Assembly.FullName
    ' The complete names of the DataAdapter and CommandBuilder objects
    Dim daTypeName As String = cnType.FullName.Replace("Connection", _
    ' Create the DataAdapter via Reflection.
    Dim daType As Type = Type.GetType(daTypeName & "," & asmName)
    Dim args() As Object = {sql, cn}
    Dim da As DbDataAdapter = DirectCast(Activator.CreateInstance(daType, args), _
    ' Create the CommandBuilder via reflection.
    Dim cbTypeName As String = cnType.FullName.Replace("Connection", _
    Dim cbType As Type = Type.GetType(cbTypeName & "," & asmName)
    Dim args2() As Object = {da}
    Dim cb As Object = Activator.CreateInstance(cbType, args2)
    Return da
End Function
Francesco Balena
Thanks for your registration, follow us on our social networks to keep up-to-date