ObjectDataSource.SelectMethod ObjectDataSource.SelectMethod ObjectDataSource.SelectMethod ObjectDataSource.SelectMethod Property

定義

データを取得するために ObjectDataSource コントロールが呼び出すメソッドまたは関数の名前を取得または設定します。Gets or sets the name of the method or function that the ObjectDataSource control invokes to retrieve data.

public:
 property System::String ^ SelectMethod { System::String ^ get(); void set(System::String ^ value); };
public string SelectMethod { get; set; }
member this.SelectMethod : string with get, set
Public Property SelectMethod As String

プロパティ値

データを取得するために ObjectDataSource が使用するメソッドまたは関数の名前を表す文字列。A string that represents the name of the method or function that the ObjectDataSource uses to retrieve data. 既定値は、空の文字列 ("") です。The default is an empty string ("").

次のコード例は、 GridViewコントロールが Web フォームページのObjectDataSourceコントロールを使用してデータを表示する方法を示しています。The following code example demonstrates how a GridView control can display data using an ObjectDataSource control on a Web Forms page. ObjectDataSource 、そのTypeNameプロパティとプロパティを使用してデータSelectMethodを取得するために呼び出されるメソッドを使用して、部分的または完全に修飾されたクラス名を識別します。The ObjectDataSource identifies a partially or fully qualified class name with its TypeName property and a method that is called to retrieve data with its SelectMethod property. 実行時に、オブジェクトが作成され、リフレクションを使用してメソッドが呼び出されます。At run time, the object is created and the method is called using reflection. コントロールGridViewは、 SelectMethodプロパティにIEnumerableよって指定されたメソッドによって返されるコレクションを列挙し、データを表示します。The GridView control enumerates through the IEnumerable collection that is returned by the method that is specified by the SelectMethod property, and displays the data.

<%@ Register TagPrefix="aspSample" Namespace="Samples.AspNet.CS" Assembly="Samples.AspNet.CS" %>
<%@ Page language="c#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
  <head>
    <title>ObjectDataSource - C# Example</title>
  </head>
  <body>
    <form id="Form1" method="post" runat="server">

        <asp:gridview
          id="GridView1"
          runat="server"
          datasourceid="ObjectDataSource1" />

        <asp:objectdatasource
          id="ObjectDataSource1"
          runat="server"
          selectmethod="GetAllEmployees"
          typename="Samples.AspNet.CS.EmployeeLogic" />

    </form>
  </body>
</html>
<%@ Register TagPrefix="aspSample" Namespace="Samples.AspNet.VB" Assembly="Samples.AspNet.VB" %>
<%@ Page language="vb" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
  <head>
    <title>ObjectDataSource - Visual Basic Example</title>
  </head>
  <body>
    <form id="Form1" method="post" runat="server">

        <asp:gridview
          id="GridView1"
          runat="server"
          datasourceid="ObjectDataSource1" />

        <asp:objectdatasource
          id="ObjectDataSource1"
          runat="server"
          selectmethod="GetAllEmployees"
          typename="Samples.AspNet.VB.EmployeeLogic" />

    </form>
  </body>
</html>

注釈

指定されたメソッドは任意のメソッドシグネチャを持つことができますが、 ObjectDataSourceコントロールが正常に呼び出すには、次の表に示すいずれかの型を返す必要があります。The specified method can have any method signature, but it must return one of the types shown in the following table for the ObjectDataSource control to call it successfully.

戻り値の型Return type アクションAction
IEnumerable IEnumerableSelectメソッドによって返されます。The IEnumerable is returned by the Select method.
DataTable はを使用しSelectDataTable作成され、メソッドによって返さDataViewれます。A DataView is created using the DataTable and returned by the Select method.
DataView は、 Selectメソッドによって返されます。 DataViewA DataView is returned by the Select method.
DataSet の最初DataTable SelectDataViewが抽出され、が作成され、メソッドによって返されます。 DataSetThe first DataTable of the DataSet is extracted, and a DataView is created and returned by the Select method.
Object オブジェクトは、1つの要素IEnumerableのコレクションにラップされ、 Selectメソッドによって返されます。The object is wrapped in a one-element IEnumerable collection and returned by the Select method.

プロパティSelectMethodは、 SelectMethod コントロールObjectDataSourceに関連付けらObjectDataSourceViewれているオブジェクトのプロパティにデリゲートします。The SelectMethod property delegates to the SelectMethod property of the ObjectDataSourceView object that is associated with the ObjectDataSource control.

ObjectDataSourceクラスを使用してデータを削除または更新する場合は、 DeleteParametersコレクションまたはUpdateParametersコレクション内ObjectDataSourceのコントロールに対して構成されているパラメーター名が、select メソッドによって返される列名と一致していることを確認してください。.When you use the ObjectDataSource class to delete or update data, make sure that the parameter names configured for the ObjectDataSource control in the DeleteParameters collection or UpdateParameters collection match the column names that are returned by the select method.

オブジェクトの有効期間Object Lifetime

SelectMethodプロパティによって識別されるメソッドには、インスタンスメソッドまたはstatic (Shared Visual Basic) メソッドを使用できます。The method that is identified by the SelectMethod property can be an instance method or a static (Shared in Visual Basic) method. インスタンスメソッドの場合は、 SelectMethodプロパティによって指定されたメソッドが呼び出されるたびに、ビジネスオブジェクトが作成され、破棄されます。If it is an instance method, the business object is created and destroyed each time the method that is specified by the SelectMethod property is called. プロパティでObjectCreating ObjectCreated 指定されたメソッドが呼び出される前に、イベントおよびイベントを処理してビジネスオブジェクトを操作できます。SelectMethodYou can handle the ObjectCreated and ObjectCreating events to work with the business object before the method that is specified by the SelectMethod property is called. また、 SelectMethodプロパティによっObjectDisposingて指定されたメソッドが呼び出された後に発生するイベントを処理することもできます。You can also handle the ObjectDisposing event that is raised after the method that is specified by the SelectMethod property is called. ビジネスオブジェクトがIDisposableインターフェイスDisposeを実装している場合は、オブジェクトが破棄される前にメソッドが呼び出されます。If the business object implements the IDisposable interface, the Dispose method is called before the object is destroyed. staticメソッドがObjectDisposing (Shared Visual Basic) の場合、ビジネスオブジェクトは作成されず、 ObjectCreatedObjectCreating、の各イベントを処理することはできません。If the method is static (Shared in Visual Basic), the business object is never created and you cannot handle the ObjectCreated, ObjectCreating, and ObjectDisposing events.

パラメーターのマージParameter Merging

パラメーターは、 SelectParameters次のソースからコレクションに追加されます。Parameters are added to the SelectParameters collection from these sources:

  • 要素から宣言SelectParametersによって宣言されます。Declaratively from the SelectParameters element.

  • メソッドからプログラムSelectingで。Programmatically from the Selecting method.

最初に、 SelectParameters要素に示されているパラメーターが追加されます。First, the parameters listed in the SelectParameters element are added. 2つ目は、パラメーターがプログラムによっSelectingて追加および削除されるSelectイベントです。これは、メソッドが実行される前に発生します。Second, parameters are programmatically added and removed in the Selecting event, which occurs before the Select method is run. メソッドは、パラメーターがマージされた後に解決されます。The method is resolved after the parameters are merged. メソッドの解決方法については、次のセクションで説明します。Method resolution is discussed in the next section.

重要

クライアントから受け取った任意のパラメーター値を検証する必要があります。You should validate any parameter value that you receive from the client. ランタイムは、単にパラメーター値をSelectMethodプロパティに置き換えます。The runtime simply substitutes the parameter value into the SelectMethod property.

メソッドの解決方法Method Resolution

メソッドが呼び出されると、データバインドコントロールのデータフィールド、 SelectParameters要素で宣言によって作成されたパラメーター、およびSelectingイベントハンドラーに追加されたパラメーターがすべてマージされます。 SelectWhen the Select method is called, the data fields from the data-bound control, the parameters that were created declaratively in the SelectParameters element, and the parameters that were added in the Selecting event handler are all merged. (詳細については、前のセクションを参照してください)。次ObjectDataSourceに、コントロールは、呼び出すメソッドの検索を試みます。(For more information, see the preceding section.) The ObjectDataSource control then attempts to find a method to call. 最初に、 SelectMethodプロパティで指定された名前を持つ1つ以上のメソッドを検索します。First, it looks for one or more methods with the name that is specified in the SelectMethod property. 一致するInvalidOperationExceptionものが見つからない場合は、例外がスローされます。If no match is found, an InvalidOperationException exception is thrown. 一致するものが見つかった場合は、一致するパラメーター名が検索されます。If a match is found, it then looks for matching parameter names. たとえば、 TypeNameプロパティによって指定された型にというSelectARecord2 つのメソッドがあるとします。For example, suppose a type that is specified by the TypeName property has two methods named SelectARecord. 1 SelectARecordつのIDパラメーターとがあり、 NameもうSelectARecord一方にはととNumberいう2つのパラメーターがあります。One SelectARecord has one parameter, ID, and the other SelectARecord has two parameters, Name and Number. コレクションにという名前ID SelectARecordのパラメーターが1つしかない場合、 IDパラメーターだけを持つメソッドが呼び出されます。 SelectParametersIf the SelectParameters collection has only one parameter named ID, the SelectARecord method with just the ID parameter is called. パラメーターの型は、メソッドの解決時にチェックされません。The type of the parameter is not checked in resolving the methods. パラメーターの順序は重要ではありません。The order of the parameters does not matter.

DataObjectTypeNameプロパティが設定されている場合、メソッドは別の方法で解決されます。If the DataObjectTypeName property is set, the method is resolved in a different way. ObjectDataSource 、プロパティで指定されている型DataObjectTypeNameの1つSelectMethodのパラメーターを受け取る、プロパティに指定されている名前のメソッドを検索します。The ObjectDataSource looks for a method with the name that is specified in the SelectMethod property that takes one parameter of the type that is specified in the DataObjectTypeName property. この場合、パラメーターの名前は関係ありません。In this case, the name of the parameter does not matter.

適用対象

こちらもご覧ください