Ich habe eine Funktion, die normalerweise aufgerufen wird, während Schleifen innerhalb eines SqlDataReader, die Daten aus diesem SqlDataReader nehmen und einige Dinge mit ihm tun.
Nun muss ich in der Lage sein, es auch von innerhalb eines Data Bound Repeater-Objekts aufrufen, das auch an einen SqlDataReader gebunden ist...
Im DataBound-Steuerelement, in der "OnDataBinding"-Ereignis, ich normalerweise tun dies, wenn die Bindung an ein DataSet:
RepeaterItem Binder = (RepeaterItem) Me.NamingContainer;
DataRowView rowResult = (DataRowView) Binder.DataItem;
Da ich an einen DataReader gebunden bin, habe ich versucht:
SqlDataReader rowResult = (SqlDataReader) Binder.DataItem;
Und es funktioniert nicht, weil das DataItem offenbar vom Typ DataRecordInternal ist
Ich WAS in der Lage, es zu einem "DbDataRecord" zu gießen, und ich kann seine Werte zugreifen, aber ich kann offensichtlich nicht es als Parameter an die Funktion übergeben, die einen SqlDataReader erwartet...
Ich kann auch keine Basisklasse oder Schnittstelle finden, die beide gemeinsam haben, um für den Parameter zu verwenden...
Was mich hier am meisten verwirrt, ist, wie durch die Datenbindung der SqlDataReader in einen DbDataRecord "verwandelt" wird. Wenn ich das innerhalb meiner Funktion machen könnte, könnte ich 2 Überladungen haben: Eine, die einen DbDataRecord nimmt und seine Arbeit macht, und eine, die einen SqlDataReader nimmt, ihn in einen DbDataRecord "umwandelt" und die erste Überladung aufruft.
Irgendwelche Ideen?
Gracias.