4

標準の ASP.net コントロールではサポートされていない方法でページに情報を表示する必要があります。これを行うために、独自のコントロールを作成し、ASP.Net フォーム コントロールの機能の一部を再現する必要がありました。具体的には、多数の異なるデータ ソースにバインドする能力です。

ドキュメントによると、コントロールは、IEnumerable、ICollection、または IListSource インターフェイスをサポートする任意のデータ ソースにバインドできます。これで、コントロールを SQLDataReader に直接バインドできることがわかりましたが、これを機能させるためにクラスが準拠しているインターフェイスを特定できません。IIRC は iEnumerable を実装していますが、行ではなく列を列挙するためのものです。

私は自分のオブジェクトがこれらのデータソースを消費できるようにしたいと思っています。私にはそれを行う方法があります(リフレクションを使用してプロパティに動的にアクセスするなど)が、.Net フレームワークはすでにこれを行っているため、オブジェクトがあることを願っていますすでにフレームワークの一部であるため、自分で作成する必要がありません。質問:

1) ASP.Net コントロールのデータ ソースとして SQLDataReader を使用できるようにするために、SQLDataReader が満たす条件はどれですか? 2)許可されたASP.Netデータソースを行ごとに反復処理して、自分でロールする必要を回避できるクラスはありますか?

4

1 に答える 1

1

これがあなたの質問に正確に答えるかどうかはわかりませんが、DbDataRecord クラスを使用して SqlDataReader を反復処理できます (この場合、IEnumerable は行を反復処理します) (VB.NET):

For Each rec As Data.Common.DbDataRecord In MyReader
   'access fields by rec(ordinal) or rec(FieldName)
Next
于 2013-09-19T13:44:23.567 に答える