Ho 2 classi delle quali una generica che vorrei usare per la gestione di DataTable tipizzati (ometto del codice per maggiore leggibilità)
Uso queste classi nel seguente modo:
Public Class Account
Inherits TypedDataRow
Implements IAccount
Private _table As AccountsTable
Sub New(ByVal builder As System.Data.DataRowBuilder)
MyBase.New(builder)
Me._table = CType(Me.Table, AccountsTable)
End Sub
End Class
Friend Class AccountsTable
Inherits TypedDataTable(Of Account)
Sub New(ByVal TableName As String)
MyBase.New(TableName)
End Sub
Protected Friend Sub New()
MyBase.New("Conti")
End Sub
End Class
Mi sono creato anche un Adapter personalizzato che popola attraverso una funzione la il DataTable: la funzione è la seguente:
Me.Connection.Open()
'Popola la tabella
Dim dr As SqlClient.SqlDataReader = Me.SelectCommand.ExecuteReader
Tabella.GetData(dr)
Visto tutto questo, il problema è che nel metodo TypedDataTable.GetDataFromReadre non esegue il cast
CType(Me.NewRow, T)
dove T è un tipo Account: l'errore restituito è "Impossibile eseguire il cast di oggetti di tipo 'TypedDataRow' sul tipo 'Account'." ma Account è un TypedDataRow...
Dove sbaglio e come posso risolvere?
Grazie dell'aiuto!!!
--------------
Maurizio Brini
--------------
Nessuna impresa è mai stata compiuta da un uomo ragionevole