2

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

现在,我还需要能够从 Data 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

1 回答 1

4

也许IDataRecord

于 2009-06-22T18:25:11.407 回答