2009-06-22 8 views
2

J'ai une fonction qui est normalement appelée lors d'une boucle dans un SqlDataReader, qui va prendre des données de ce SqlDataReader et faire des choses avec lui.Comment est-ce que je peux faire une fonction qui peut prendre un SQLDataReader et un DBDataRecord en tant que paramètre?

Maintenant, je dois être en mesure d'appeler aussi à l'intérieur d'un objet Repeater lié de données, qui est également liée à un SqlDataReader ...

Dans le contrôle DataBound, en cas de « OnDataBinding », je normalement ce faire, lors de la liaison à un DataSet:

RepeaterItem Binder = (RepeaterItem) Me.NamingContainer; 
DataRowView rowResult = (DataRowView) Binder.DataItem; 

maintenant, depuis que je suis lier à un DataReader, j'ai essayé:

SqlDataReader rowResult = (SqlDataReader) Binder.DataItem; 

Et cela ne fonctionne pas, car apparemment DataItem est de type DataRecordInternal

J'ai pu le jeter à un « DbDataRecord », et je peux accéder à ses valeurs, mais je ne peux évidemment pas passer comme paramètre à la fonction qui attend un SqlDataReader ...

Je ne trouve pas non plus de classe de base ou d'interface qu'ils ont tous les deux en commun, à utiliser pour le paramètre ...

Ce qui me dérange le plus ici, c'est comment, grâce à la liaison de données, le SqlDataReader est "transformé en "un DbDataRecord. Si je pouvais le faire dans ma fonction, je pourrais avoir 2 surcharges: Une qui prend un DbDataRecord et fait son travail, et une qui prend un SqlDataReader, "le convertit" en un DbDataRecord, et appelle la première surcharge.

Des idées?
Merci!

Répondre

4

Peut-être IDataRecord?

+0

Oui! Je vous remercie!!! –

Questions connexes