devxlogo

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

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", _        "DataAdapter")    ' 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), _        DbDataAdapter)    ' Create the CommandBuilder via reflection.    Dim cbTypeName As String = cnType.FullName.Replace("Connection", _        "CommandBuilder")    Dim cbType As Type = Type.GetType(cbTypeName & "," & asmName)    Dim args2() As Object = {da}    Dim cb As Object = Activator.CreateInstance(cbType, args2)    Return daEnd Function

devx-admin

Share the Post: