ObjectDataSource クラスとは? わかりやすく解説

ObjectDataSource クラス

メモ : このクラスは、.NET Framework version 2.0新しく追加されたものです。

階層 Web アプリケーション アーキテクチャで、データ バインド コントロールデータ提供するビジネス オブジェクト表します

名前空間: System.Web.UI.WebControls
アセンブリ: System.Web (system.web.dll 内)
構文構文

Public Class ObjectDataSource
    Inherits DataSourceControl
Dim instance As ObjectDataSource
public class ObjectDataSource : DataSourceControl
public class ObjectDataSource extends DataSourceControl
public class ObjectDataSource extends
 DataSourceControl
解説解説

ObjectDataSource は、データ バインド コントロールに対してデータ バインディング関連中間層オブジェクトまたはデータ インターフェイス オブジェクトを表す ASP.NET データ ソース コントロールです。ObjectDataSourceデータ バインド コントロール組み合わせて使用すると、コードをほとんどまたはまったく必要とせずに、Web ページデータ表示編集並べ替えを行うことができます

アプリケーションのごく一般的なデザイン方法は、プレゼンテーション層ビジネス ロジックから分離しビジネス ロジックビジネス オブジェクトカプセル化する方法です。これらのビジネス オブジェクトは、プレゼンテーション層データ層を明確に区別する層を形成します。したがって3 階アプリケーション アーキテクチャ実現しますObjectDataSource コントロール使用すると、開発者3 階アプリケーション アーキテクチャ維持しながら、ASP.NET データ ソース コントロール使用できます

ObjectDataSource コントロールは、リフレクション使用してビジネス オブジェクトインスタンス作成し作成したインスタンスに対してメソッド呼び出してデータ更新挿入、および削除しますTypeName プロパティは、ObjectDataSource使用するクラスの名前を識別します。ObjectDataSource コントロールは、メソッド呼び出すたびにクラスインスタンス作成し破棄します。つまり、このコントロールは、Web 要求有効期間中、メモリ内にオブジェクト保持しません。使用するビジネス オブジェクト多数リソース必要な場合、この点を十分に考慮しないと、作成破棄負荷かかります負荷のかかるオブジェクト使用デザイン上の最適な選択とはいえませんが、ObjectCreating、ObjectCreated、ObjectDisposing の各イベント使用することで、オブジェクト有効期間制御できます

メモメモ

SelectMethod、UpdateMethod、InsertMethod、DeleteMethod の各プロパティ識別されるメソッドには、インスタンス メソッドまたは static (Visual Basic では Shared) メソッド指定できますメソッドstatic (Visual Basic では Shared) の場合ビジネス オブジェクトインスタンス作成されず、ObjectCreatingObjectCreatedObjectDisposing の各イベント発生しません。

ビジネス オブジェクトからデータ取得するには、データ取得するメソッドの名前で SelectMethod プロパティ設定しますメソッドが IEnumerable オブジェクトまたは DataSet オブジェクト返さない場合オブジェクトランタイムによって IEnumerable コレクションラップされますメソッド シグネチャパラメータ含まれている場合は、Parameter オブジェクトを SelectParameters コレクション追加でき、さらにこれらのオブジェクトを、SelectMethod メソッド指定されメソッドに渡す値にバインドできますObjectDataSourceパラメータ使用するには、パラメータメソッド シグネチャパラメータの名前と型に一致する必要があります

ObjectDataSource コントロールは、Select メソッド呼び出されるたびにデータ取得します。このメソッド使用すると、SelectMethod プロパティ指定されメソッドプログラムによってアクセスできますSelectMethod プロパティ指定されメソッドは、DataBind メソッド呼び出し時にObjectDataSourceバインドされたコントロールによって自動的に呼び出されます。データ バインド コントロールDataSourceID プロパティ設定すると、コントロール必要に応じてデータ ソースデータ自動的にバインドされますObjectDataSource コントロールデータ バインド コントロールバインドする場合は、DataSourceID プロパティ設定することをお勧めます。DataSource プロパティ設定することもできますが、その場合はデータ バインド コントロールDataBind メソッド明示的に呼び出す必要がありますデータ取得するために、Select メソッドプログラムによっていつでも呼び出すことができます

データ バインド コントロールデータ ソース コントロールバインドする方法詳細については、「データ ソース コントロールによるデータへのバインド」を参照してください

ObjectDataSource コントロール使用するビジネス オブジェクト機能に応じて更新挿入削除などのデータ操作実行できます。これらのデータ操作実行するには、実行する操作に対して適切なメソッド名と関連するパラメータ設定します。たとえば、更新操作場合UpdateMethod プロパティを、更新実行するビジネス オブジェクト メソッドの名前に設定し必要なパラメータを UpdateParameters コレクション追加しますObjectDataSource コントロールデータ バインド コントロール関連付けられている場合パラメータはそのデータ バインド コントロールによって追加されます。この場合メソッドパラメータ名とデータ バインド コントロールフィールド名を必ず一致させる必要がありますUpdate メソッドコードから明示的に呼び出されるか、データ バインド コントロールか自動的に呼び出されると、更新実行されます。Delete 操作および Insert 操作場合も、同じ一般的なパターン従いますビジネス オブジェクトは、これらのデータ操作バッチ処理ではなく一度に 1 レコードずつ実行することを前提としています。

データDataSet、DataView、DataTable の各オブジェクトとして返される場合ObjectDataSource コントロールは、SelectMethod プロパティによって取得したデータフィルタ処理できますObjectDataSource コントロール使用すると、データすべての型をキャッシュできます。ただし、オブジェクトのこの同じインスタンスは、複数要求処理するために使用されるため、複数要求処理する際に共有できないリソースや状態を保持しているオブジェクト (開いた SqlDataReader オブジェクトなど) はキャッシュしないでください書式指定文字列構文使用して、FilterExpression プロパティフィルタ式に設定し、式の値を FilterParameters コレクション指定されパラメータバインドできます

ObjectDataSource は、ビジネス オブジェクトインスタンス複数要求わたって保持はしませんが、SelectMethod メソッド結果キャッシュできますデータキャッシュされている間、Select メソッド以降呼び出しは、ビジネス オブジェクト作成しリフレクション使用してそのビジネス オブジェクトSelectMethod呼び出す代わりにキャッシュ データ返しますオブジェクト作成しデータ メソッド呼び出すと Web サーバー上のメモリ消費されますが、キャッシュ利用することでこれを回避できます。つまり、これは適切なトレードオフいえます。EnableCaching プロパティtrue設定し、CacheDuration プロパティキャッシュ破棄されるまでの秒数、つまり、キャッシュデータ格納される秒数に設定すると、ObjectDataSourceデータ自動的にキャッシュます。また、CacheExpirationPolicy プロパティオプションの SqlCacheDependency プロパティ指定することもできます

ObjectDataSource コントロール機能次の表に示します

機能

要件

選択

SelectMethod プロパティを、データ選択するビジネス オブジェクト メソッドの名前に設定しプログラムによって、またはデータ バインド コントロール使用してSelectParameters コレクション必要なパラメータ追加します

並べ替え

SortParameterName プロパティを、並べ替え基準指定する SelectMethod メソッドパラメータ名に設定します

フィルタ処理

FilterExpression プロパティフィルタ式に設定しますオプションFilterParameters コレクションパラメータ追加しSelect メソッド呼び出し時にデータフィルタ処理することもできますSelectMethod プロパティ指定されメソッドは、DataSetDataView、または DataTable返す必要があります

ページング

SelectMethod メソッドに、取得するレコード最大数と取得する最初レコードインデックス指定するパラメータ含めると、データ ソース ページングサポートされます。これらのパラメータの名前は、それぞれ MaximumRowsParameterName プロパティおよび StartRowIndexParameterName プロパティ設定する必要ありますSelectMethod プロパティ指定されメソッドで、ObjectDataSource コントロール直接ページングサポートしてない場合でも、データ バインド コントロール独自にページング実行できる場合ありますデータ バインド コントロールがこれを実行できるようにするには、SelectMethod プロパティ指定されメソッドが、Icollection インターフェイス実装するオブジェクト返す必要があります

更新

UpdateMethod プロパティを、データ更新するビジネス オブジェクト メソッドの名前に設定しUpdateParameters コレクション必要なパラメータ追加します

削除

DeleteMethod プロパティを、データ削除するビジネス オブジェクト メソッドまたは関数の名前に設定し、DeleteParameters コレクション必要なパラメータ追加します

挿入

InsertMethod プロパティを、データ挿入するビジネス オブジェクト メソッドまたは関数の名前に設定し、InsertParameters コレクション必要なパラメータ追加します

キャッシュ

EnableCaching プロパティtrue設定しキャッシュ データに対して必要なキャッシュ動作基づいてCacheDuration プロパティCacheExpirationPolicy プロパティ設定します

すべてのデータ ソース コントロール同様にObjectDataSource コントロールデータ ソース ビュー クラス関連付けられています。ObjectDataSource コントロールは、ページ開発者データ処理するために使用するインターフェイスであり、ObjectDataSourceView クラスデータ バインド コントロール使用するインターフェイスです。また、ObjectDataSourceView クラスは、データ ソース コントロール機能記述し実際の処理を実行しますObjectDataSource コントロールには、ObjectDataSourceView1 つだけ関連付けられており、常に DefaultView という名前になりますObjectDataSourceView オブジェクトは GetView メソッドによって公開され、そのプロパティメソッド多くは、ObjectDataSource コントロールによってラップされ、直接公開されます。背後では、データ取得挿入更新削除フィルタ処理並べ替えなど、すべてのデータ操作ObjectDataSourceView オブジェクト実行します詳細については、「ObjectDataSourceView」を参照してください

ObjectDataSource コントロール視覚的に表示されません。このコントロールは、宣言によって作成できるようにコントロールとして実装されますまた、オプション状態管理関与させることもできます。したがってObjectDataSource は、EnableTheming プロパティや SkinID プロパティなどの表示機能サポートしていません。

TopicLocation
チュートリアル : Visual Studio データ コンポーネントによる Web ページデータ バインディングVisual Studio での ASP .NET Web アプリケーション作成
チュートリアル : カスタム ビジネス オブジェクトへのデータ バインディングVisual Studio での ASP .NET Web アプリケーション作成
方法 : Visual Studioテンプレート コントロールデータバインドするVisual Studio での ASP .NET Web アプリケーション作成
方法 : Web フォーム ページRepeater Web サーバー コントロール追加する (Visual Studio)Visual Studio での ASP .NET Web アプリケーション作成
方法 : データ ソース コントロール使用するときに接続文字列セキュリティ保護するASP .NET Web アプリケーション作成
方法 : データ ソース コントロール使用するときに接続文字列セキュリティ保護する (Visual Studio)Visual Studio での ASP .NET Web アプリケーション作成
方法 : テンプレート コントロールデータ連結するASP .NET Web アプリケーション作成
使用例使用例

このセクションには、2 つコード例含まれています。1 つ目のコード例では、GridView コントロールWeb フォームObjectDataSource オブジェクト使用してデータ表示する方法示します2 つ目のコード例では、このコード例ObjectDataSource の他の多くコード例使用する中間層ビジネス オブジェクトの例を示します

GridView コントロールWeb フォームObjectDataSource コントロール使用してデータ表示する方法次のコード例示しますObjectDataSource は、TypeName プロパティビジネス オブジェクト部分修飾クラス名または完全修クラス名識別しSelectMethod プロパティデータ取得するために呼び出されるビジネス オブジェクト メソッド識別します。実行時オブジェクト作成されメソッドリフレクション使用して呼び出されます。GridView コントロールは、SelectMethod によって返されIEnumerable コレクションに対して列挙処理を実行しデータ表示します

<%@ Register TagPrefix="aspSample" Namespace="Samples.AspNet.VB"
 Assembly="Samples.AspNet.VB"
 %>
<%@ Page language="vb" %>
<html>
  <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>
<%@ Register TagPrefix="aspSample" Namespace="Samples.AspNet.CS"
 Assembly="Samples.AspNet.CS" %>
<%@ Page language="c#" %>
<html>
  <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.JSL"
 Assembly="Samples.AspNet.JSL" %>
<%@ Page language="VJ#" %>
<html>
  <head>
    <title>ObjectDataSource - VJ# 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.JSL.EmployeeLogic" />

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

このコード例ObjectDataSource の他の多くコード例使用する中間層ビジネス オブジェクトの例を次のコード例示します。このコード例は、次の 2 つビジネス クラス構成されます。

便宜上追加NorthwindDataException クラス提供されています。

これらのサンプル クラスは、Northwind Traders データベース (Microsoft SQL Server および Microsoft Access付属) で動作します実際に動作させるためには、これらのクラスコンパイルし、提供されWeb フォームコード例組み合わせて使用する必要があります

この例は、ビジネス オブジェクトObjectDataSource コントロールやり取りする最も一般的な方法1 つに従って、これをわかりやすく示すようにデザインされています。これがデザイン推奨例ではありません。一部の例では、EmployeeLogic クラスまたは NorthwindEmployee クラスメソッド追加されています。また、このクラスセット変更加え基本概念示している例もあります

Imports System
Imports System.Collections
Imports System.Configuration
Imports System.Data
Imports System.Data.SqlClient
Imports System.Web.UI
Imports System.Web.UI.WebControls

Namespace Samples.AspNet.VB
'
' EmployeeLogic is a stateless business object that encapsulates
' the operations you can perform on a NorthwindEmployee object.
' When the class is written in Visual Basic, you cannot use the Shared
' part.
Public Class EmployeeLogic
   ' Returns a collection of NorthwindEmployee objects.
   Public Shared Function
 GetAllEmployees() As ICollection
      Dim al As New ArrayList()

      Dim cts As ConnectionStringSettings =
 ConfigurationManager.ConnectionStrings("NorthwindConnection")
      Dim sds As New SqlDataSource(cts.ConnectionString,
 "SELECT EmployeeID FROM Employees")
      Try
         Dim IDs As IEnumerable = sds.Select(DataSourceSelectArguments.Empty)

         ' Iterate through the Enumeration and create a
         ' NorthwindEmployee object for each ID.
         For Each row As
 DataRowView In IDs
            Dim id As String
 = row("EmployeeID").ToString()
            Dim nwe As New
 NorthwindEmployee(id)
            ' Add the NorthwindEmployee object to the collection.
            al.Add(nwe)
         Next
      Finally
         ' If anything strange happens, clean up.
         sds.Dispose()
      End Try

      Return al
   End Function 'GetAllEmployees

   Public Shared Function
 GetEmployee(anID As Object) As
 NorthwindEmployee
      Return New NorthwindEmployee(anID)
   End Function 'GetEmployee


   Public Shared Sub UpdateEmployeeInfo(ne
 As NorthwindEmployee)
      Dim retval As Boolean
 = ne.Save()
      If Not retval Then
         Throw New NorthwindDataException("UpdateEmployee
 failed.")
      End If
   End Sub 'UpdateEmployeeInfo

   Public Shared Sub DeleteEmployee(ne
 As NorthwindEmployee)
   End Sub 'DeleteEmployee

End Class 'EmployeeLogic


Public Class NorthwindEmployee


   Public Sub New()
      ID = DBNull.Value
      aLastName = ""
      aFirstName = ""
      aTitle = ""
      titleOfCourtesy = ""
      reportsTo = - 1
   End Sub 'New


   Public Sub New(anID As
 Object)
      Me.ID = anID
      Dim cts As ConnectionStringSettings =
 ConfigurationManager.ConnectionStrings("NorthwindConnection")
      Dim conn As New SqlConnection(cts.ConnectionString)
      Dim sc As New SqlCommand("
 SELECT FirstName,LastName,Title,TitleOfCourtesy,ReportsTo " & _
                               " FROM Employees "
 & _
                               " WHERE EmployeeID = @empId",
 conn)
      ' Add the employee ID parameter and set its value.
      sc.Parameters.Add(New SqlParameter("@empId",
 SqlDbType.Int)).Value = Int32.Parse(anID.ToString())
      Dim sdr As SqlDataReader = Nothing

      Try
         conn.Open()
         sdr = sc.ExecuteReader()

         ' This is not a while loop. It only loops once.
         If Not (sdr Is
 Nothing) AndAlso sdr.Read() Then
            ' The IEnumerable contains DataRowView objects.
            Me.aFirstName = sdr("FirstName").ToString()
            Me.aLastName = sdr("LastName").ToString()
            Me.aTitle = sdr("Title").ToString()
            Me.titleOfCourtesy = sdr("TitleOfCourtesy").ToString()
            If Not sdr.IsDBNull(4) Then
               Me.reportsTo = sdr.GetInt32(4)
            End If
         Else
            Throw New NorthwindDataException("Data
 not loaded for employee id.")
         End If
      Finally
         Try
            If Not (sdr Is
 Nothing) Then
               sdr.Close()
            End If
            conn.Close()
         Catch se As SqlException
            ' Log an event in the Application Event Log.
            Throw
         End Try
      End Try
   End Sub 'New

   Private ID As Object

   Private aLastName As String
   Public Property LastName() As
 String
      Get
         Return aLastName
      End Get
      Set
         aLastName = value
      End Set
   End Property

   Private aFirstName As String
   Public Property FirstName() As
 String
      Get
         Return aFirstName
      End Get
      Set
         aFirstName = value
      End Set
   End Property

   Private aTitle As String
   Public Property Title() As
 String
      Get
         Return aTitle
      End Get
      Set
         aTitle = value
      End Set
   End Property

   Private titleOfCourtesy As String
   Public Property Courtesy() As
 String
      Get
         Return titleOfCourtesy
      End Get
      Set
         titleOfCourtesy = value
      End Set
   End Property
   Private reportsTo As Integer

   Public Property Supervisor() As
 Integer
      Get
         Return reportsTo
      End Get
      Set
         reportsTo = value
      End Set
   End Property

   Public Function Save() As
 Boolean
      Return True
   End Function 'Save
End Class 'NorthwindEmployee


Friend Class NorthwindDataException
   Inherits Exception

   Public Sub New(msg As
 String)
      MyBase.New(msg)
   End Sub 'New
End Class 'NorthwindDataException
End Namespace
namespace Samples.AspNet.CS {

using System;
using System.Collections;
using System.Collections.Specialized;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Web.UI;
using System.Web.UI.WebControls;
  //
  // EmployeeLogic is a stateless business object that encapsulates
  // the operations one can perform on a NorthwindEmployee object.
  //
  public class EmployeeLogic {

    // Returns a collection of NorthwindEmployee objects.
    public static ICollection GetAllEmployees
 () {
      ArrayList al = new ArrayList();

      ConnectionStringSettings cts = ConfigurationManager.ConnectionStrings["NorthwindConnection"];

      SqlDataSource sds
        = new SqlDataSource(cts.ConnectionString, "SELECT
 EmployeeID FROM Employees");

      try {

        IEnumerable IDs = sds.Select(DataSourceSelectArguments.Empty);

        // Iterate through the Enumeration and create a
        // NorthwindEmployee object for each ID.
        foreach (DataRowView row in IDs) {
          string id = row["EmployeeID"].ToString();
          NorthwindEmployee nwe = new NorthwindEmployee(id);
          // Add the NorthwindEmployee object to the collection.
          al.Add(nwe);
        }
      }
      finally {
        // If anything strange happens, clean up.
        sds.Dispose();
      }

      return al;
    }
    public static NorthwindEmployee GetEmployee(object
 anID) {
      return new NorthwindEmployee(anID);
    }

    public static void UpdateEmployeeInfo(NorthwindEmployee
 ne) {
      bool retval = ne.Save();
      if (! retval) { throw new NorthwindDataException("UpdateEmployee
 failed."); }
    }

    public static void DeleteEmployee(NorthwindEmployee
 ne) { }

  }

  public class NorthwindEmployee {

    public NorthwindEmployee () {
      ID = DBNull.Value;
      lastName = "";
      firstName = "";
      title="";
      titleOfCourtesy = "";
      reportsTo = -1;
    }

    public NorthwindEmployee (object anID) {
      this.ID = anID;

      ConnectionStringSettings cts = ConfigurationManager.ConnectionStrings["NorthwindConnection"];

        SqlConnection conn = new SqlConnection (cts.ConnectionString);
      SqlCommand sc =
        new SqlCommand(" SELECT FirstName,LastName,Title,TitleOfCourtesy,ReportsTo
 " +
                       " FROM Employees " +
                       " WHERE EmployeeID = @empId",
                       conn);
      // Add the employee ID parameter and set its value.
      sc.Parameters.Add(new SqlParameter("@empId",SqlDbType.Int)).Value
 = Int32.Parse(anID.ToString());
      SqlDataReader sdr = null;

      try {
        conn.Open();
        sdr = sc.ExecuteReader();

        // This is not a while loop. It only loops once.
        if (sdr != null && sdr.Read())
 {
          // The IEnumerable contains DataRowView objects.
          this.firstName        = sdr["FirstName"].ToString();
          this.lastName         = sdr["LastName"].ToString();
          this.title            = sdr["Title"].ToString();
          this.titleOfCourtesy  = sdr["TitleOfCourtesy"].ToString();
          if (! sdr.IsDBNull(4)) {
            this.reportsTo        = sdr.GetInt32(4);
          }
        }
        else {
          throw new NorthwindDataException("Data not loaded
 for employee id.");
        }
      }
      finally {
        try {
          if (sdr != null) sdr.Close();
          conn.Close();
        }
        catch (SqlException) {
          // Log an event in the Application Event Log.
          throw;
        }
      }
    }

    private object ID;

    private string lastName;
    public string LastName {
      get { return lastName; }
      set { lastName = value; }
    }

    private string firstName;
    public string FirstName {
      get { return firstName; }
      set { firstName = value;  }
    }

    private string title;
    public String Title {
      get { return title; }
      set { title = value; }
    }

    private string titleOfCourtesy;
    public string Courtesy {
      get { return titleOfCourtesy; }
      set { titleOfCourtesy = value; }
    }

    private int    reportsTo;
    public int Supervisor {
      get { return reportsTo; }
      set { reportsTo = value; }
    }

    public bool Save () {
      return true;
    }
  }

  internal class NorthwindDataException: Exception {
    public NorthwindDataException(string msg)
 : base (msg) { }
  }
}
package  Samples.AspNet.JSL; 

import System.*;
import System.Collections.*;
import System.Collections.Specialized.*;
import System.Configuration.*;
import System.Data.*;
import System.Data.SqlClient.*;
import System.Web.UI.*;
import System.Web.UI.WebControls.*;
   
//
// EmployeeLogic is a stateless business object that encapsulates
// the operations one can perform on a NorthwindEmployee object.
//
public class EmployeeLogic
{
    // Returns a collection of NorthwindEmployee objects.
    public static ICollection GetAllEmployees()
        throws NorthwindDataException, SqlException
    {
        ArrayList al = new ArrayList();

        ConnectionStringSettings cts = 
            ConfigurationManager.get_ConnectionStrings().get_Item("NorthwindConnection");

        
        SqlDataSource sds =
            new SqlDataSource(cts.get_ConnectionString(), "SELECT
 EmployeeID FROM Employees");

        try {
            IEnumerable ids = sds.Select(DataSourceSelectArguments.get_Empty());

            // Iterate through the Enumeration and create a
            // NorthwindEmployee object for each id.
            IEnumerator enumerator = ids.GetEnumerator();
            while (enumerator.MoveNext()) {
                // The IEnumerable contains DataRowView objects.
                DataRowView row = (DataRowView)enumerator.get_Current();
                String id = row.get_Item("EmployeeID").ToString();
                NorthwindEmployee nwe = new NorthwindEmployee(id);
                // Add the NorthwindEmployee object to the collection.
                al.Add(nwe);
            }
        }
        finally {
            // If anything strange happens, clean up.
            sds.Dispose();
        }

        return al;
    } //GetAllEmployees

    public static NorthwindEmployee GetEmployee(Object
 anId)
        throws NorthwindDataException, SqlException
    {
        return new NorthwindEmployee(anId);
    } //GetEmployee

    public static void UpdateEmployeeInfo(NorthwindEmployee
 ne)
        throws NorthwindDataException, SqlException
    {
        boolean retval = ne.Save();
        if (!retval) {
            throw new NorthwindDataException("UpdateEmployee
 failed.");
        }
    } //UpdateEmployeeInfo

    public static void DeleteEmployee(NorthwindEmployee
 ne)
    {
    } //DeleteEmployee 
} //EmployeeLogic

public class NorthwindEmployee
{
    public NorthwindEmployee()
    {
        id = DBNull.Value;
        lastName = "";
        firstName = "";
        title = "";
        titleOfCourtesy = "";
        reportsTo = -1;
    } //NorthwindEmployee

    public NorthwindEmployee(Object anId)
        throws NorthwindDataException, SqlException
    {
        this.id = anId;

        ConnectionStringSettings cts = 
        ConfigurationManager.get_ConnectionStrings().get_Item("NorthwindConnection");
    SqlConnection conn = new SqlConnection(cts.get_ConnectionString());
        SqlCommand sc = new SqlCommand(" SELECT FirstName,LastName,Title,TitleOfCourtesy,ReportsTo"
 +
            " FROM Employees " +
            " WHERE EmployeeID = @empId",
            conn);
        // Add the employee ID parameter and set its value.
        sc.get_Parameters().Add(new SqlParameter("@empId",
 SqlDbType.Int)).
            set_Value((Int32)Int32.Parse(anId.ToString()));
        SqlDataReader sdr = null;

        try {
            conn.Open();
            sdr = sc.ExecuteReader();
            // This is not a while loop. It only loops once.
            if (sdr != null && sdr.Read())
 {
                // The IEnumerable contains DataRowView objects.
                this.firstName = sdr.get_Item("FirstName").ToString();
                this.lastName = sdr.get_Item("LastName").ToString();
                this.title = sdr.get_Item("Title").ToString();
                this.titleOfCourtesy = sdr.get_Item("TitleOfCourtesy").
                    ToString();
                if (!(sdr.IsDBNull(4))) {
                    this.reportsTo = sdr.GetInt32(4);
                }
            }
            else {
                throw new NorthwindDataException("Data not loaded
 for employee id.");
            }
        }
        finally {
            try {
                if (sdr != null) {
                    sdr.Close();
                }
                conn.Close();
            }
            catch (SqlException exp) {
                // Log an event in the Application Event Log.
                throw exp;
            }
        }
    } //NorthwindEmployee

    private Object id;

    private String lastName;

    /** @property 
     */
    public String get_LastName()
    {
        return lastName;
    } //get_LastName

    /** @property 
     */
    public void set_LastName(String value)
    {
        lastName = value;
    } //set_LastName

    private String firstName;

    /** @property 
     */
    public String get_FirstName()
    {
        return firstName;
    } //get_FirstName

    /** @property 
     */
    public void set_FirstName(String value)
    {
        firstName = value;
    } //set_FirstName

    private String title;

    /** @property 
     */
    public String get_Title()
    {
        return title;
    } //get_Title

    /** @property 
     */
    public void set_Title(String value)
    {
        title = value;
    } //set_Title

    private String titleOfCourtesy;

    /** @property 
     */
    public String get_Courtesy()
    {
        return titleOfCourtesy;
    } //get_Courtesy

    /** @property 
     */
    public void set_Courtesy(String value)
    {
        titleOfCourtesy = value;
    } //set_Courtesy

    private int reportsTo;

    /** @property 
     */
    public int get_Supervisor()
    {
        return reportsTo;
    } //get_Supervisor

    /** @property 
     */
    public void set_Supervisor(int
 value)
    {
        reportsTo = value;
    } //set_Supervisor

    public boolean Save()
    {
        return true;
    } //Save
} //NorthwindEmployee

public class NorthwindDataException extends
 System.Exception
{
    public NorthwindDataException(String msg)
    {
         super(msg);
    } //NorthwindDataException
} //NorthwindDataException
.NET Framework のセキュリティ.NET Frameworkセキュリティ
継承階層継承階層
System.Object
   System.Web.UI.Control
     System.Web.UI.DataSourceControl
      System.Web.UI.WebControls.ObjectDataSource
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバ場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
ObjectDataSource メンバ
System.Web.UI.WebControls 名前空間
IDataSource
DataSourceControl
ObjectDataSourceView



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「ObjectDataSource クラス」の関連用語

ObjectDataSource クラスのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



ObjectDataSource クラスのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2025 Microsoft.All rights reserved.

©2025 GRAS Group, Inc.RSS