DataSourceView イベント


関連項目
DataSourceView クラスSystem.Web.UI 名前空間
DataSourceControl クラス
HierarchicalDataSourceView
その他の技術情報
ASP.NET データ アクセスの概要データ ソース コントロールの概要
DataSourceView クラス
アセンブリ: System.Web (system.web.dll 内)


ASP.NET では、Web サーバー コントロールを一貫した方式でデータにバインドできるようにするデータ バインディング アーキテクチャがサポートされています。データにバインドされる Web サーバー コントロールをデータ バインド コントロールといいます。また、そのバインディングを容易にするクラスをデータ ソース コントロールといいます。データ ソース コントロールは、リレーショナル データベース、ファイル、ストリーム、ビジネス オブジェクトなど、あらゆるデータ ソースを表すことができます。データ ソース コントロールにより、基になるデータのソースや形式にかかわらず、一貫した方式でデータがデータ バインド コントロールに提供されます。
多くの Web 開発タスクは、ASP.NET に用意されている SqlDataSource、AccessDataSource、XmlDataSource などのデータ ソース コントロールを使用して行います。独自にカスタムのデータ ソース コントロールを実装する場合は、DataSourceControl 基本クラスおよび DataSourceView 基本クラスを使用します。
データ ソース コントロールは、IDataSource オブジェクトに、そのオブジェクトに関連付けられたデータ ソース ビューと呼ばれるリストを組み合わせたものと考えることができます。データの各リストは、DataSourceView オブジェクトで表されます。DataSourceView クラスは、すべてのデータ ソース ビューの基本クラスか、データ ソース コントロールに関連付けられているデータのリストです。データ ソース ビューによって、データ ソース コントロールの機能が定義されます。基になるデータ ストレージには 1 つ以上のデータのリストが含まれているので、データ ソース コントロールは、1 つ以上の名前付きのデータ ソース ビューに常に関連付けられています。データ ソース コントロールでは、データ ソース コントロールに現在関連付けられているデータ ソース ビューが GetViewNames メソッドを使用して列挙され、特定のデータ ソース ビュー インスタンスが GetView メソッドを使用して名前を指定することにより取得されます。
基になるデータ ソースから ExecuteSelect メソッドを使用してデータを取得する操作は、すべての DataSourceView オブジェクトでサポートされています。すべてのビューでは、ExecuteInsert、ExecuteUpdate、ExecuteDelete などの操作を含む一連の基本的な操作をオプションでサポートできます。データ バインド コントロールでは、GetView メソッドおよび GetViewNames メソッドを使用して関連付けられているデータ ソース ビューを取得するか、デザイン時または実行時にデータ ソース ビューを照会することにより、データ ソース コントロールの機能を検出できます。

DataSourceView クラスを拡張して、データ ソース コントロールの厳密に型指定されたビュー クラスを作成する方法を次のコード例に示します。CsVDataSourceView クラスは、CsvDataSource データ ソース コントロールの機能を定義し、コンマ区切りのファイル (.csv) に格納されたデータを使用するためのデータ バインド コントロールの実装を提供します。CsvDataSource データ ソース コントロールの詳細については、DataSourceControl クラスのトピックを参照してください。
' The CsvDataSourceView class encapsulates the ' capabilities of the CsvDataSource data source control. Public Class CsvDataSourceView Inherits DataSourceView Public Sub New(owner As IDataSource, name As String) MyBase.New(owner, DefaultViewName) End Sub 'New ' The data source view is named. However, the CsvDataSource ' only supports one view, so the name is ignored, and the ' default name used instead. Public Shared DefaultViewName As String = "CommaSeparatedView" ' The location of the .csv file. Private aSourceFile As String = [String].Empty Friend Property SourceFile() As String Get Return aSourceFile End Get Set ' Use MapPath when the SourceFile is set, so that files local to the ' current directory can be easily used. Dim mappedFileName As String mappedFileName = HttpContext.Current.Server.MapPath(value) aSourceFile = mappedFileName End Set End Property ' Do not add the column names as a data row. Infer columns if the CSV file does ' not include column names. Private columns As Boolean = False Friend Property IncludesColumnNames() As Boolean Get Return columns End Get Set columns = value End Set End Property ' Get data from the underlying data source. ' Build and return a DataView, regardless of mode. Protected Overrides Function ExecuteSelect(selectArgs As DataSourceSelectArguments) _ As System.Collections.IEnumerable Dim dataList As IEnumerable = Nothing ' Open the .csv file. If File.Exists(Me.SourceFile) Then Dim data As New DataTable() ' Open the file to read from. Dim sr As StreamReader = File.OpenText(Me.SourceFile) Try ' Parse the line Dim dataValues() As String Dim col As DataColumn ' Do the following to add schema. dataValues = sr.ReadLine().Split(","c) ' For each token in the comma-delimited string, add a column ' to the DataTable schema. Dim token As String For Each token In dataValues col = New DataColumn(token, System.Type.GetType("System.String")) data.Columns.Add(col) Next token ' Do not add the first row as data if the CSV file includes column names. If Not IncludesColumnNames Then data.Rows.Add(CopyRowData(dataValues, data.NewRow())) End If ' Do the following to add data. Dim s As String Do s = sr.ReadLine() If Not s Is Nothing Then dataValues = s.Split(","c) data.Rows.Add(CopyRowData(dataValues, data.NewRow())) End If Loop Until s Is Nothing Finally sr.Close() End Try data.AcceptChanges() Dim dataView As New DataView(data) If Not selectArgs.SortExpression Is String.Empty Then dataView.Sort = selectArgs.SortExpression End If dataList = dataView Else Throw New System.Configuration.ConfigurationErrorsException("File not found, " + Me.SourceFile) End If If dataList is Nothing Then Throw New InvalidOperationException("No data loaded from data source.") End If Return dataList End Function 'ExecuteSelect Private Function CopyRowData([source]() As String, target As DataRow) As DataRow Try Dim i As Integer For i = 0 To [source].Length - 1 target(i) = [source](i) Next i Catch iore As IndexOutOfRangeException ' There are more columns in this row than ' the original schema allows. Stop copying ' and return the DataRow. Return target End Try Return target End Function 'CopyRowData ' The CsvDataSourceView does not currently ' permit deletion. You can modify or extend ' this sample to do so. Public Overrides ReadOnly Property CanDelete() As Boolean Get Return False End Get End Property Protected Overrides Function ExecuteDelete(keys As IDictionary, values As IDictionary) As Integer Throw New NotSupportedException() End Function 'ExecuteDelete ' The CsvDataSourceView does not currently ' permit insertion of a new record. You can ' modify or extend this sample to do so. Public Overrides ReadOnly Property CanInsert() As Boolean Get Return False End Get End Property Protected Overrides Function ExecuteInsert(values As IDictionary) As Integer Throw New NotSupportedException() End Function 'ExecuteInsert ' The CsvDataSourceView does not currently ' permit update operations. You can modify or ' extend this sample to do so. Public Overrides ReadOnly Property CanUpdate() As Boolean Get Return False End Get End Property Protected Overrides Function ExecuteUpdate(keys As IDictionary, _ values As IDictionary, _ oldValues As IDictionary) As Integer Throw New NotSupportedException() End Function 'ExecuteUpdate End Class 'CsvDataSourceView
// The CsvDataSourceView class encapsulates the // capabilities of the CsvDataSource data source control. public class CsvDataSourceView : DataSourceView { public CsvDataSourceView(IDataSource owner, string name) :base(owner, DefaultViewName) { } // The data source view is named. However, the CsvDataSource // only supports one view, so the name is ignored, and the // default name used instead. public static string DefaultViewName = "CommaSeparatedView"; // The location of the .csv file. private string sourceFile = String.Empty; internal string SourceFile { get { return sourceFile; } set { // Use MapPath when the SourceFile is set, so that files local to the // current directory can be easily used. string mappedFileName = HttpContext.Current.Server.MapPath(value); sourceFile = mappedFileName; } } // Do not add the column names as a data row. Infer columns if the CSV file does // not include column names. private bool columns = false; internal bool IncludesColumnNames { get { return columns; } set { columns = value; } } // Get data from the underlying data source. // Build and return a DataView, regardless of mode. protected override IEnumerable ExecuteSelect(DataSourceSelectArguments selectArgs) { IEnumerable dataList = null; // Open the .csv file. if (File.Exists(this.SourceFile)) { DataTable data = new DataTable(); // Open the file to read from. using (StreamReader sr = File.OpenText(this.SourceFile)) { // Parse the line string s = ""; string[] dataValues; DataColumn col; // Do the following to add schema. dataValues = sr.ReadLine().Split(','); // For each token in the comma-delimited string, add a column // to the DataTable schema. foreach (string token in dataValues) { col = new DataColumn(token,typeof(string)); data.Columns.Add(col); } // Do not add the first row as data if the CSV file includes column names. if (! IncludesColumnNames) data.Rows.Add(CopyRowData(dataValues, data.NewRow())); // Do the following to add data. while ((s = sr.ReadLine()) != null) { dataValues = s.Split(','); data.Rows.Add(CopyRowData(dataValues, data.NewRow())); } } data.AcceptChanges(); DataView dataView = new DataView(data); if (selectArgs.SortExpression != String.Empty) { dataView.Sort = selectArgs.SortExpression; } dataList = dataView; } else { throw new System.Configuration.ConfigurationErrorsException("File not found, " + this.SourceFile); } if (null == dataList) { throw new InvalidOperationException("No data loaded from data source."); } return dataList; } private DataRow CopyRowData(string[] source, DataRow target) { try { for (int i = 0;i < source.Length;i++) { target[i] = source[i]; } } catch (System.IndexOutOfRangeException) { // There are more columns in this row than // the original schema allows. Stop copying // and return the DataRow. return target; } return target; } // The CsvDataSourceView does not currently // permit deletion. You can modify or extend // this sample to do so. public override bool CanDelete { get { return false; } } protected override int ExecuteDelete(IDictionary keys, IDictionary values) { throw new NotSupportedException(); } // The CsvDataSourceView does not currently // permit insertion of a new record. You can // modify or extend this sample to do so. public override bool CanInsert { get { return false; } } protected override int ExecuteInsert(IDictionary values) { throw new NotSupportedException(); } // The CsvDataSourceView does not currently // permit update operations. You can modify or // extend this sample to do so. public override bool CanUpdate { get { return false; } } protected override int ExecuteUpdate(IDictionary keys, IDictionary values, IDictionary oldValues) { throw new NotSupportedException(); } }


System.Web.UI.DataSourceView
System.Web.UI.WebControls.ObjectDataSourceView
System.Web.UI.WebControls.SiteMapDataSourceView
System.Web.UI.WebControls.SqlDataSourceView
System.Web.UI.WebControls.XmlDataSourceView


Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


DataSourceView コンストラクタ
アセンブリ: System.Web (system.web.dll 内)

- owner
DataSourceView に関連付けられているデータ ソース コントロール。
- viewName
DataSourceView オブジェクトの名前。

Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


DataSourceView プロパティ

名前 | 説明 | |
---|---|---|
![]() | CanDelete | 現在の DataSourceControl オブジェクトに関連付けられている DataSourceView オブジェクトで ExecuteDelete 操作がサポートされているかどうかを示す値を取得します。 |
![]() | CanInsert | 現在の DataSourceControl オブジェクトに関連付けられている DataSourceView オブジェクトで ExecuteInsert 操作がサポートされているかどうかを示す値を取得します。 |
![]() | CanPage | 現在の DataSourceControl オブジェクトに関連付けられている DataSourceView オブジェクトで、ExecuteSelect メソッドで取得したデータを使用するページングがサポートされているかどうかを示す値を取得します。 |
![]() | CanRetrieveTotalRowCount | 現在の DataSourceControl オブジェクトに関連付けられた DataSourceView オブジェクトで、データではなく行の合計数を取得する操作がサポートされているかどうかを示す値を取得します。 |
![]() | CanSort | 現在の DataSourceControl オブジェクトに関連付けられている DataSourceView オブジェクトで、基になるデータ ソースに対する並べ替え済みのビューがサポートされているかどうかを示す値を取得します。 |
![]() | CanUpdate | 現在の DataSourceControl オブジェクトに関連付けられている DataSourceView オブジェクトで ExecuteUpdate 操作がサポートされているかどうかを示す値を取得します。 |
![]() | Name | データ ソース ビュー名を取得します。 |


関連項目
DataSourceView クラスSystem.Web.UI 名前空間
DataSourceControl クラス
HierarchicalDataSourceView
その他の技術情報
ASP.NET データ アクセスの概要データ ソース コントロールの概要
DataSourceView メソッド

名前 | 説明 | |
---|---|---|
![]() | Delete | DataSourceView オブジェクトで表されたデータのリストに対して、削除操作を非同期に実行します。 |
![]() | Equals | オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 ( Object から継承されます。) |
![]() | GetHashCode | 特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 ( Object から継承されます。) |
![]() | GetType | 現在のインスタンスの Type を取得します。 ( Object から継承されます。) |
![]() | Insert | DataSourceView オブジェクトで表されたデータのリストに対して、挿入操作を非同期に実行します。 |
![]() | ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 ( Object から継承されます。) |
![]() | Select | 基になるデータ ストレージからデータのリストを非同期に取得します。 |
![]() | ToString | 現在の Object を表す String を返します。 ( Object から継承されます。) |
![]() | Update | DataSourceView オブジェクトで表されたデータのリスト対して、更新操作を非同期に実行します。 |

名前 | 説明 | |
---|---|---|
![]() | ExecuteDelete | DataSourceView オブジェクトで表されたデータのリストに対して、削除操作を実行します。 |
![]() | ExecuteInsert | DataSourceView オブジェクトで表されたデータのリストに対して、挿入操作を実行します。 |
![]() | ExecuteSelect | 基になるデータ ストレージからデータのリストを取得します。 |
![]() | ExecuteUpdate | DataSourceView オブジェクトで表されたデータのリストに対して、更新操作を実行します。 |
![]() | Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 ( Object から継承されます。) |
![]() | MemberwiseClone | 現在の Object の簡易コピーを作成します。 ( Object から継承されます。) |
![]() | OnDataSourceViewChanged | DataSourceViewChanged イベントを発生させます。 |
![]() | RaiseUnsupportedCapabilityError | RaiseUnsupportedCapabilitiesError メソッドによって呼び出され、ビューでサポートされている機能と ExecuteSelect 操作に必要な機能を比較します。 |

関連項目
DataSourceView クラスSystem.Web.UI 名前空間
DataSourceControl クラス
HierarchicalDataSourceView
その他の技術情報
ASP.NET データ アクセスの概要データ ソース コントロールの概要
DataSourceView メンバ
データ ソース コントロールの機能を定義するすべてのデータ ソース ビュー クラスの基本クラスとして機能します。
DataSourceView データ型で公開されるメンバを以下の表に示します。


名前 | 説明 | |
---|---|---|
![]() | CanDelete | 現在の DataSourceControl オブジェクトに関連付けられている DataSourceView オブジェクトで ExecuteDelete 操作がサポートされているかどうかを示す値を取得します。 |
![]() | CanInsert | 現在の DataSourceControl オブジェクトに関連付けられている DataSourceView オブジェクトで ExecuteInsert 操作がサポートされているかどうかを示す値を取得します。 |
![]() | CanPage | 現在の DataSourceControl オブジェクトに関連付けられている DataSourceView オブジェクトで、ExecuteSelect メソッドで取得したデータを使用するページングがサポートされているかどうかを示す値を取得します。 |
![]() | CanRetrieveTotalRowCount | 現在の DataSourceControl オブジェクトに関連付けられた DataSourceView オブジェクトで、データではなく行の合計数を取得する操作がサポートされているかどうかを示す値を取得します。 |
![]() | CanSort | 現在の DataSourceControl オブジェクトに関連付けられている DataSourceView オブジェクトで、基になるデータ ソースに対する並べ替え済みのビューがサポートされているかどうかを示す値を取得します。 |
![]() | CanUpdate | 現在の DataSourceControl オブジェクトに関連付けられている DataSourceView オブジェクトで ExecuteUpdate 操作がサポートされているかどうかを示す値を取得します。 |
![]() | Name | データ ソース ビュー名を取得します。 |


名前 | 説明 | |
---|---|---|
![]() | Delete | DataSourceView オブジェクトで表されたデータのリストに対して、削除操作を非同期に実行します。 |
![]() | Equals | オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 (Object から継承されます。) |
![]() | GetHashCode | 特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 (Object から継承されます。) |
![]() | GetType | 現在のインスタンスの Type を取得します。 (Object から継承されます。) |
![]() | Insert | DataSourceView オブジェクトで表されたデータのリストに対して、挿入操作を非同期に実行します。 |
![]() | ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 (Object から継承されます。) |
![]() | Select | 基になるデータ ストレージからデータのリストを非同期に取得します。 |
![]() | ToString | 現在の Object を表す String を返します。 (Object から継承されます。) |
![]() | Update | DataSourceView オブジェクトで表されたデータのリスト対して、更新操作を非同期に実行します。 |

名前 | 説明 | |
---|---|---|
![]() | ExecuteDelete | DataSourceView オブジェクトで表されたデータのリストに対して、削除操作を実行します。 |
![]() | ExecuteInsert | DataSourceView オブジェクトで表されたデータのリストに対して、挿入操作を実行します。 |
![]() | ExecuteSelect | 基になるデータ ストレージからデータのリストを取得します。 |
![]() | ExecuteUpdate | DataSourceView オブジェクトで表されたデータのリストに対して、更新操作を実行します。 |
![]() | Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 (Object から継承されます。) |
![]() | MemberwiseClone | 現在の Object の簡易コピーを作成します。 (Object から継承されます。) |
![]() | OnDataSourceViewChanged | DataSourceViewChanged イベントを発生させます。 |
![]() | RaiseUnsupportedCapabilityError | RaiseUnsupportedCapabilitiesError メソッドによって呼び出され、ビューでサポートされている機能と ExecuteSelect 操作に必要な機能を比較します。 |


関連項目
DataSourceView クラスSystem.Web.UI 名前空間
DataSourceControl クラス
HierarchicalDataSourceView
その他の技術情報
ASP.NET データ アクセスの概要データ ソース コントロールの概要
Weblioに収録されているすべての辞書からDataSourceViewを検索する場合は、下記のリンクをクリックしてください。

- DataSourceViewのページへのリンク