2009-06-22 3 views
2

У меня есть функция, которая обычно вызывается во время цикла внутри SqlDataReader, который будет принимать данные из этого SqlDataReader и делать с ним кое-что.Как я могу сделать функцию, которая может принимать SQLDataReader и DBDataRecord в качестве параметра?

Теперь, мне нужно, чтобы иметь возможность также назвать его изнутри Bound данных объекта Repeater, который также связан с SqlDataReader ...

В контроле DataBound, в «OnDataBinding» событие, я как правило, делают это, когда привязка к DataSet:

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

Теперь, так как я привязки к DataReader, я попробовал:

SqlDataReader rowResult = (SqlDataReader) Binder.DataItem; 

И это не работает, потому что, видимо, является DataItem типа DataRecordInternal

Я был в состоянии бросить его в «DbDataRecord», и я могу получить доступ к его ценности, но я, очевидно, не может передать его в качестве параметра функции, ожидающей SqlDataReader ...

Я также не могу найти какой-либо базовый класс или интерфейс, который у них обоих есть, для использования для параметра ...

Что меня озадачивает больше всего в том, как через привязку данных SqlDataReader получает «превращенный в "DbDataRecord. Если бы я мог сделать это внутри моей функции, у меня могло бы быть 2 перегрузки: один, который берет DbDataRecord и выполняет свою работу, и тот, который принимает SqlDataReader, «преобразует его» в DbDataRecord и вызывает первую перегрузку.

Любые идеи?
Спасибо!

ответ

4

Возможно, IDataRecord?

+0

Да! Спасибо!!! –