バージョン

WebScheduleGenericDataProvider について

WebScheduleGenericDataProvider™ コンポーネントによって、WebSchedule™ コントロールをサポートされるデータ ソースにバインドすることができます。この WebScheduleGenericDataProvider コンポーネントの追加によって、WebSchedule データ ソースの選択により高い柔軟性を提供します。データ バインディングのために SqlDataProvider や OleDbDataProvider に依存する必要はなくなります。

データ モデル

スケジューリング データはユーザーが選択する任意のスキーマで可能になります。WebScheduleGenericDataProvider コンポーネントによって、以下のプロパティを提供することによって、ユーザーがバインドするデータ ソースを指定することができます。 ActivityDataSource/ ActivityDataSourceIDResourceDataSource/ ResourceDataSourceID、および VarianceDataSource/ VarianceDataSourceID です。

データ エンティティからユーザーは好きなだけの数のフィールドを取得でき、 Activity および Resource オブジェクトの DataRow プロパティを介して、これらのフィールドにアクセスできます。 AppointmentBindingResourceBinding、および VarianceBinding オブジェクトで対応するプロパティを設定することによって、ユーザーがバインドしたい特定のフィールドを指定することもできます。データ モデルが WebSchedule のデータ モデル バインディングと一致しない場合(つまり、データソースのフィールド名が、AppointmentBinding、VarianceBinding、および ResourceBinding クラスのデフォルトの名前と異なる場合)、特定のバインディングを設定します。デフォルトのデータ スキーマについての詳細は、 WebSchedule の汎用データ プロバイダーのデータ モデルを参照してください。

WebSchedule のデータ モデルは、WebScheduleGenericDataProvider の追加によって変更されました。最初に気づくことは、Recurrence テーブルが削除され、追加のフィールドが Activity および Resource テーブルに追加されることです。以下の表に WebSchedule で正しく機能するために異なるデータ タイプに必要となるフィールドを一覧します。

データ 必要フィールド

予定

ID、StartDateTimeUtc、Duration、ResourceID、VarianceID、Subject、および Status

バリアンス

ID、StartDateTimeUtc、Duration、ResourceID、VarianceID、Subject、Status、および OriginalStartDateTimeUtc

リソース

ID および ResourceName

サポートされるデータ ソース

以下は WebScheduleGenericDataProvider のサポートされるデータ ソースのリストです。

  • DataSet および DataTable

  • IListSource

  • IDataSource

  • IEnumerable(読み取り専用、更新は IList または ICollection でなければなりません)

データ バインディングおよび CRUD ステートメント

SqlDataSource または AccessDataSource などのデータ ソース コントロールにバインドする場合、Activity、Resource、および Variance データに対応するために Select、Update、Insert、および Delete ステートメントを構成します。つまり、データの各タイプのデータ ソース コントロールを分離する必要はありますが、データ ソースを分離する必要はありません。表示したいだけの場合(CRUD ステートメントがない)バリアンス データに定義される追加のデータ ソースコントロールを用意することは義務ではなく、OriginalStartDateTimeUtc がデータ ソースでフィールドとして定義されている場合、予定として同じデータ ソースからバリアンス データを取得できます。データ ソース コントロールの CRUD ステートメントを正しく構成する方法の例については、 WebScheduleGenericDataSource を使用して Access データ ソースにバインドを参照してください。

CRUD ステートメントの代わりに、データ ソース オブジェクトにバインドすると WebScheduleGenericDataProvider は自動的にデータを更新および削除をします。新しいデータを追加する場合、追加するオブジェクトの DataKey を設定する必要があります。たとえば、Activity オブジェクトを追加する場合、 ActivityAdding イベントを処理し、そして Activity オブジェクトの DataKey プロパティを設定します。データベースのデータを指定および更新するために DataKey プロパティを使用できます。データ ソース オブジェクトへのバインディングについての詳細は、 WebScheduleGenericDataProvider を使用して WebSchedule をデータセットへのバインディングを参照してください。

WebScheduleGenericDataProvider の EnableConcurrencyChecks プロパティを True に設定することによって、データ ソース コントロールで並行処理のチェックを有効にすることができます。Update ステートメントは、以下の Where 句を含む必要があります。

… WHERE [ID] = @ID AND [Timestamp] = @Timestamp"

TimeStamp は、各レコードのタイムスタンプを表すデータ ソースのフィールドです。データ更新で並行処理の競合がある場合、 DataProviderError イベントが発生します。