Exporter (0) Imprimer
Développer tout

ObjectDataSource, classe

Remarque : cette classe est nouvelle dans le .NET Framework version 2.0.

Représente un objet métier qui fournit des données aux contrôles liés aux données dans des architectures multicouches d'application Web.

Espace de noms : System.Web.UI.WebControls
Assembly : System.Web (dans system.web.dll)

public class ObjectDataSource : DataSourceControl
public class ObjectDataSource extends DataSourceControl
public class ObjectDataSource extends DataSourceControl

ObjectDataSource est un contrôle de source de données ASP.NET qui représente un objet de couche intermédiaire lié aux bases de données ou un objet d'interface de données pour les contrôles liés aux données. Vous pouvez utiliser le contrôle ObjectDataSource conjointement à un contrôle lié aux données pour afficher, modifier et trier des données sur une page Web avec peu ou pas de code.

Une pratique de conception d'application très courante consiste à séparer la couche présentation de la logique métier et à encapsuler la logique métier dans les objets métier. Ces objets métier forment une couche distincte entre la couche présentation et la couche Données, constituant ainsi une architecture d'applications à trois couches. Le contrôle ObjectDataSource permet aux développeurs d'utiliser un contrôle de source de données ASP.NET tout en conservant leur architecture d'applications à trois couches.

Le contrôle ObjectDataSource utilise la réflexion pour créer des instances d'objets métier et appeler des méthodes sur ces objets afin de récupérer, mettre à jour, insérer et supprimer des données. La propriété TypeName identifie le nom de la classe fonctionnant avec ObjectDataSource. Le contrôle ObjectDataSource crée et détruit une instance de la classe pour chaque appel à une méthode ; il ne garde pas l'objet en mémoire pendant la durée de vie de la demande Web. Cela constitue un facteur important si l'objet métier que vous utilisez requiert beaucoup de ressources ou si sa création et sa destruction coûtent cher. L'utilisation d'un objet coûteux ne peut pas provenir d'un choix de conception optimal, mais vous pouvez contrôler le cycle de vie de l'objet à l'aide des événements ObjectCreating, ObjectCreated et ObjectDisposing.

RemarqueRemarque

Les méthodes qui sont identifiées par les propriétés SelectMethod, UpdateMethod, InsertMethod et DeleteMethod peuvent être des méthodes d'instance ou des méthodes staticShared en Visual Basic). Si les méthodes sont static (Shared en Visual Basic), aucune instance de l'objet métier n'est créée et les événements ObjectCreating, ObjectCreated et ObjectDisposing ne sont pas déclenchés.

Pour récupérer les données d'un objet métier, affectez à la propriété SelectMethod le nom de la méthode qui récupère les données. Si la méthode ne retourne pas d'objet IEnumerable ou DataSet, l'objet est encapsulé par l'exécution dans une collection IEnumerable. Si la signature de la méthode comporte des paramètres, vous pouvez ajouter des objets Parameter à la collection SelectParameters, puis les lier aux valeurs que vous souhaitez passer à la méthode spécifiée par la méthode SelectMethod. Pour que ObjectDataSource puisse utiliser les paramètres, ceux-ci doivent correspondre aux noms et types des paramètres dans la signature de la méthode.

Le contrôle ObjectDataSource récupère des données chaque fois que la méthode Select est appelée. Cette méthode fournit un accès par programme à la méthode spécifiée par la propriété SelectMethod. La méthode spécifiée par la propriété SelectMethod est appelée automatiquement par les contrôles liés au ObjectDataSource lorsque leur méthode DataBind est appelée. Si vous définissez la propriété DataSourceID d'un contrôle lié aux données, le contrôle crée automatiquement une liaison avec les données de la source de données, si nécessaire. La définition de la propriété DataSourceID est la méthode recommandée pour lier un contrôle ObjectDataSource à un contrôle lié aux données. Vous pouvez également définir la propriété DataSource, mais vous devrez ensuite appeler explicitement la méthode DataBind du contrôle lié aux données. Vous pouvez à tout moment appeler la méthode Select par programme pour récupérer des données.

Pour plus d'informations sur la liaison de contrôles liés aux données à des contrôles de source de données, consultez Liaison à des données à l'aide d'un contrôle de source de données.

Selon les fonctions de l'objet métier fonctionnant avec ObjectDataSource, vous pouvez exécuter des opérations de données, telles que des mises à jour, des insertions et des suppressions. Pour exécuter ces opérations de données, définissez le nom de méthode approprié et tous les paramètres associés pour l'opération que vous souhaitez exécuter. Par exemple, pour une opération de mise à jour, affectez à la propriété UpdateMethod le nom de la méthode de l'objet métier qui effectue des mises à jour et ajoutez tous les paramètres requis à la collection UpdateParameters. Si le contrôle ObjectDataSource est associé à un contrôle lié aux données, les paramètres sont ajoutés par le contrôle lié aux données. Dans ce cas, vous devez vous assurer que les noms de paramètres de la méthode correspondent aux noms des champs du contrôle lié aux données. La mise à jour est effectuée lorsque la méthode Update est appelée, soit explicitement par votre code ou automatiquement par un contrôle lié aux données. Les opérations Delete et Insert suivent le même modèle général. Les objets métier sont supposés exécuter ces types d'opérations de données dans chaque enregistrement de manière individuelle, plutôt que par lots.

Le contrôle ObjectDataSource peut filtrer les données récupérées par la propriété SelectMethod, si les données sont retournées en tant qu'objet DataSet, DataView ou DataTable. Le contrôle ObjectDataSource vous permet de mettre en cache tous les types de données, mais vous ne devez pas mettre en cache les objets qui conservent les ressources ou un état ne pouvant pas être partagés pour traiter plusieurs demandes (par exemple, un objet SqlDataReader ouvert), parce que cette même instance de l'objet sera utilisée pour traiter plusieurs demandes. Vous pouvez affecter une expression de filtrage à la propriété FilterExpression à l'aide d'une syntaxe de chaîne de format et de valeurs de liaison dans l'expression aux paramètres spécifiés dans la collection FilterParameters.

ObjectDataSource ne conserve pas l'instance de l'objet métier à travers plusieurs demandes, mais il peut mettre en cache le résultat de la méthode SelectMethod. Tandis que les données sont mises en cache, les appels suivants à la méthode Select retournent les données mises en cache au lieu de créer l'objet métier et appeler son SelectMethod à l'aide de la réflexion. La mise en cache vous permet d'éviter de créer l'objet et d'appeler sa méthode de données aux dépens de la mémoire du serveur Web ; il peut s'agir d'un bon compromis. ObjectDataSource met les données automatiquement en cache lorsque la propriété EnableCaching a la valeur true et lorsque la valeur de la propriété CacheDuration correspond au nombre de secondes pendant lesquelles le cache stocke les données avant d'être ignoré. Vous pouvez également spécifier une propriété CacheExpirationPolicy et éventuellement une propriété SqlCacheDependency.

Le tableau suivant décrit les fonctionnalités du contrôle ObjectDataSource.

Fonction

Configuration requise

Sélection

Affectez à la propriété SelectMethod le nom de la méthode de l'objet métier qui sélectionne les données et incluez tous les paramètres nécessaires dans la collection SelectParameters, soit par programme ou en utilisant un contrôle lié aux données.

Tri

Affectez à la propriété SortParameterName le nom du paramètre dans la méthode SelectMethod qui retient les critères de tri.

Filtrage

Affectez à la propriété FilterExpression une expression de filtrage et ajoutez les paramètres éventuels à la collection FilterParameters pour filtrer les données lorsque la méthode Select est appelée. La méthode spécifiée par la propriété SelectMethod doit retourner un DataSet, DataView ou DataTable.

Pagination

La pagination de source de données est prise en charge si la méthode SelectMethod contient les paramètres pour le nombre maximal d'enregistrements à récupérer et l'index du premier enregistrement à récupérer. Les noms de ces paramètres doivent être définis dans les propriétés MaximumRowsParameterName et StartRowIndexParameterName respectivement. Un contrôle lié aux données peut exécuter la pagination lui-même, même si le contrôle ObjectDataSource ne prend pas en charge la pagination directement dans la méthode spécifiée par la propriété SelectMethod. Pour que le contrôle lié aux données puisse exécuter la pagination, la méthode spécifiée par la propriété SelectMethod doit retourner un objet qui implémente l'interface Icollection.

Mise à jour

Affectez à la propriété UpdateMethod le nom de la méthode de l'objet métier qui met les données à jour et incluez tous les paramètres nécessaires dans la collection UpdateParameters.

Suppression

Affectez à la propriété DeleteMethod le nom de la méthode ou de la fonction d'objet métier qui supprime les données et incluez tous les paramètres nécessaires dans la collection DeleteParameters.

Insertion

Affectez à la propriété InsertMethod le nom de la méthode ou de la fonction d'objet métier qui insère les données et incluez tous les paramètres nécessaires dans la collection InsertParameters.

Mise en cache

Affectez la valeur true à la propriété EnableCaching, et définissez les propriétés CacheDuration et CacheExpirationPolicy selon le comportement de mise en cache de votre choix pour vos données mises en cache.

Comme tous les contrôles de source de données, le contrôle ObjectDataSource est associé à une classe d'affichage de la source de données. Le contrôle ObjectDataSource correspond à l'interface utilisée par le développeur de pages pour traiter les données, tandis que la classe ObjectDataSourceView correspond à l'interface avec laquelle les contrôles liés aux données fonctionnent. En outre, la classe ObjectDataSourceView décrit les fonctions du contrôle de source de données et exécute le travail réel. Le contrôle ObjectDataSource n'est associé qu'à un ObjectDataSourceView et est toujours nommé DefaultView. Tandis que l'objet ObjectDataSourceView est exposé par la méthode GetView, nombre de ses propriétés et méthodes sont encapsulées et exposées directement par le contrôle ObjectDataSource. En arrière-plan, l'objet ObjectDataSourceView exécute toutes les opérations de données, y compris la récupération, l'insertion, la mise à jour, la suppression, le filtrage et le tri des données. Pour plus d'informations, consultez ObjectDataSourceView.

Il n'y a pas de rendu visuel du contrôle ObjectDataSource ; il est implémenté comme un contrôle. Vous pouvez donc le créer de manière déclarative et lui permettre éventuellement de participer à la gestion d'état. Par conséquent, ObjectDataSource ne prend pas en charge les fonctionnalités visuelles, telles que la propriété EnableTheming ou SkinID.

RubriqueEmplacement
Procédure pas à pas : liaison de données de pages Web à un composant de données Visual StudioGénération d'applications Web ASP.NET dans Visual Studio
Procédure pas à pas : liaison de données à un objet métier personnaliséGénération d'applications Web ASP.NET dans Visual Studio
Comment : sécuriser des chaînes de connexion lors de l'utilisation de contrôles de source de données (Visual Studio)Génération d'applications Web ASP.NET dans Visual Studio
Comment : ajouter des contrôles serveur Web Repeater à une page Web Forms (Visual Studio)Génération d'applications Web ASP.NET dans Visual Studio
Comment : établir une liaison vers les données d'un contrôle basé sur des modèles dans Visual StudioGénération d'applications Web ASP.NET dans Visual Studio
Procédure pas à pas : liaison de données de pages Web à un composant de données Visual StudioGénération d'applications Web ASP.NET dans Visual Studio
Comment : établir une liaison vers les données d'un contrôle basé sur des modèlesGénération d'applications Web ASP.NET
Comment : sécuriser des chaînes de connexion lors de l'utilisation de contrôles de source de donnéesGénération d'applications Web ASP.NET
Procédure pas à pas : liaison de données de pages Web à un composant de données Visual StudioGénération d'applications Web ASP.NET dans Visual Studio
Comment : sécuriser des chaînes de connexion lors de l'utilisation de contrôles de source de donnéesGénération d'applications Web ASP.NET dans Visual Studio
Comment : ajouter des contrôles serveur Web Repeater à une page Web FormsGénération d'applications Web ASP.NET dans Visual Studio
Comment : établir une liaison vers les données d'un contrôle basé sur des modèlesGénération d'applications Web ASP.NET dans Visual Studio
Procédure pas à pas : liaison de données à un objet métier personnaliséGénération d'applications Web ASP.NET dans Visual Studio
Comment : établir une liaison vers les données d'un contrôle basé sur des modèles dans Visual StudioGénération d'applications Web ASP.NET dans Visual Studio
Comment : sécuriser des chaînes de connexion lors de l'utilisation de contrôles de source de donnéesGénération d'applications Web ASP.NET dans Visual Studio
Comment : ajouter des contrôles serveur Web Repeater à une page Web FormsGénération d'applications Web ASP.NET dans Visual Studio
Comment : établir une liaison vers les données d'un contrôle basé sur des modèlesGénération d'applications Web ASP.NET dans Visual Studio
Procédure pas à pas : liaison de données à un objet métier personnaliséGénération d'applications Web ASP.NET dans Visual Studio
Comment : établir une liaison vers les données d'un contrôle basé sur des modèles dans Visual StudioGénération d'applications Web ASP.NET dans Visual Studio

Cette section comprend deux exemples de code. Le premier exemple de code illustre comment un contrôle GridView peut afficher des données à l'aide d'un objet ObjectDataSource sur une page Web Forms. Le deuxième exemple de code fournit un exemple d'objet métier de couche intermédiaire utilisé par cet exemple de code ObjectDataSource et de nombreux autres.

L'exemple de code suivant montre comment un contrôle GridView peut afficher des données à l'aide d'un contrôle ObjectDataSource sur une page Web Forms. ObjectDataSource identifie le nom de classe qualifié complet ou partiel d'un objet métier avec sa propriété TypeName et une méthode de l'objet métier appelée pour récupérer les données avec sa propriété SelectMethod. Au moment de l'exécution, l'objet est créé et la méthode est appelée par réflexion. Le contrôle GridView effectue une énumération de la collection IEnumerable retournée par SelectMethod, puis affiche les données.

<%@ 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>

L'exemple de code suivant fournit un exemple d'objet métier de couche intermédiaire utilisé par cet exemple de code ObjectDataSource et de nombreux autres. L'exemple de code se compose des deux classes de base suivantes :

  • La classe EmployeeLogic, qui est une classe sans état qui encapsule la logique métier.

  • La classe NorthwindEmployee, qui est une classe du modèle contenant uniquement les fonctionnalités de base requises pour charger et rendre persistantes des données de la couche Données.

Une classe NorthwindDataException supplémentaire est fournie dans un but pratique.

Cet ensemble d'exemples de classes fonctionne avec la base de données Northwind Traders disponible avec Microsoft SQL Server et Microsoft Access. Pour obtenir un exemple complet, vous devez compiler et utiliser ces classes avec les exemples de code Web Forms fournis.

Cet exemple est conçu pour être simple à suivre et pour illustrer l'une des interactions les plus courantes entre un objet métier et un contrôle ObjectDataSource. Il ne s'agit pas d'une recommandation de conception. Dans certains exemples, des méthodes supplémentaires sont ajoutées aux classes EmployeeLogic ou NorthwindEmployee, ou des modifications sont apportées à ce jeu de classes pour illustrer les concepts fondamentaux.

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

  • AspNetHostingPermission  pour opérer dans un environnement hébergé. Valeur de demande : LinkDemand ; valeur d'autorisation : Minimal
  • AspNetHostingPermission  pour opérer dans un environnement hébergé. Valeur de demande : InheritanceDemand ; valeur d'autorisation : Minimal

System.Object
   System.Web.UI.Control
     System.Web.UI.DataSourceControl
      System.Web.UI.WebControls.ObjectDataSource

Les membres statiques publics (Shared en Visual Basic) de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.

Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Édition Media Center, Windows XP Professionnel Édition x64, Windows XP SP2, Windows XP Starter Edition

Le .NET Framework ne prend pas en charge toutes les versions de chaque plate-forme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise.

.NET Framework

Prise en charge dans : 2.0

Ajouts de la communauté

AJOUTER
Afficher:
© 2015 Microsoft