2 Stimmen

Wie kann ich eine Funktion erstellen, die einen SQLDataReader und einen DBDataRecord als Parameter annehmen kann?

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.

4voto

Marc Gravell Punkte 970173

Vielleicht IDataRecord ?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X