Data binding 如何创建一个可以将SQLDataReader和DBDataRecord作为参数的函数?

Data binding 如何创建一个可以将SQLDataReader和DBDataRecord作为参数的函数?,data-binding,ado.net,sqldatareader,Data Binding,Ado.net,Sqldatareader,我有一个函数,通常在SqlDataReader内部循环时调用,它将从SqlDataReader获取数据并使用它做一些事情 现在,我还需要能够从数据绑定的Repeater对象内部调用它,该对象也绑定到SqlDataReader 在DataBound控件中的“OnDataBinding”事件中,我通常在绑定到数据集时执行以下操作: RepeaterItem Binder = (RepeaterItem) Me.NamingContainer; DataRowView rowResult = (Da

我有一个函数,通常在SqlDataReader内部循环时调用,它将从SqlDataReader获取数据并使用它做一些事情

现在,我还需要能够从数据绑定的Repeater对象内部调用它,该对象也绑定到SqlDataReader

在DataBound控件中的“OnDataBinding”事件中,我通常在绑定到数据集时执行以下操作:

RepeaterItem Binder  = (RepeaterItem) Me.NamingContainer;
DataRowView rowResult = (DataRowView) Binder.DataItem;
现在,由于绑定到DataReader,我尝试:

SqlDataReader rowResult = (SqlDataReader) Binder.DataItem;
它不起作用,因为DataItem的类型显然是DataRecordInternal

我能够将它强制转换为“DbDataRecord”,并且可以访问它的值,但是我显然不能将它作为参数传递给需要SqlDataReader的函数

我也找不到任何基类或接口,它们都有共同点,用于参数

最让我困惑的是,通过数据绑定,SqlDataReader如何“变成”DbDataRecord。如果我可以在我的函数中这样做,我可能会有两个重载:一个接受DbDataRecord并执行其工作,另一个接受SqlDataReader,将其“转换”为DbDataRecord并调用第一个重载

有什么想法吗?

谢谢

也许
IDataRecord