ObjectDataSource.InsertParameters ObjectDataSource.InsertParameters ObjectDataSource.InsertParameters ObjectDataSource.InsertParameters Property

Définition

Obtient la collection de paramètres qui contient les paramètres utilisés par la propriété InsertMethod.Gets the parameters collection that contains the parameters that are used by the InsertMethod property.

public:
 property System::Web::UI::WebControls::ParameterCollection ^ InsertParameters { System::Web::UI::WebControls::ParameterCollection ^ get(); };
[System.Web.UI.PersistenceMode(System.Web.UI.PersistenceMode.InnerProperty)]
public System.Web.UI.WebControls.ParameterCollection InsertParameters { get; }
member this.InsertParameters : System.Web.UI.WebControls.ParameterCollection
Public ReadOnly Property InsertParameters As ParameterCollection

Valeur de propriété

ParameterCollection qui contient les paramètres utilisés par la méthode identifiée par la propriété InsertMethod.A ParameterCollection that contains the parameters used by the method identified by the InsertMethod property.

Exemples

Cette section contient deux exemples de code.This section contains two code examples. Le premier exemple de code montre comment utiliser un ObjectDataSource objet avec un objet métier et un DetailsView contrôle pour insérer des données.The first code example demonstrates how to use an ObjectDataSource object with a business object and a DetailsView control to insert data. Le deuxième exemple de code fournit un exemple d’implémentation Insert de la méthode utilisée dans le premier exemple de code.The second code example provides an example implementation of the Insert method that is used in the first code example.

L’exemple de code suivant montre comment utiliser un ObjectDataSource contrôle avec un objet métier et un DetailsView contrôle pour insérer des données.The following code example demonstrates how to use an ObjectDataSource control with a business object and a DetailsView control to insert data. Initialement, le DetailsView affiche des zones de texte dans lesquelles vous pouvez entrer des données NorthwindEmployee pour un nouvel enregistrement, ainsi qu’un bouton d' insertion généré automatiquement.Initially, the DetailsView displays text boxes in which you can enter data for a new NorthwindEmployee record, along with an automatically generated Insert button. Une fois que vous avez entré des données dans DetailsView les champs du contrôle, cliquez sur le bouton Insérer .After you enter data into the fields of the DetailsView control, click the Insert button. La InsertMethod propriété identifie la méthode qui exécute l’opération d’insertion.The InsertMethod property identifies which method performs the insert operation.

Si vous cliquez sur le bouton Insérer , l’opération est effectuée à l’aide de la méthode spécifiée InsertMethod par la propriété et de tous les paramètres spécifiés dans la InsertParameters collection.If you click the Insert button, the operation is performed using the method that is specified by the InsertMethod property and any parameters that are specified in the InsertParameters collection. Dans cet exemple de code, un paramètre est spécifié dans InsertParameters la collection qui correspond à l’ID du superviseur.In this code example, one parameter is specified in the InsertParameters collection that corresponds to the supervisor's ID. En effet, même si l’ID est affiché dans la Rows collection pour le DetailsView contrôle en tant BoundField qu’objet, ObjectDataSource il est passé en tant que chaîne au contrôle.This is because even though the ID is displayed in the Rows collection for the DetailsView control as a BoundField object, it is passed as a string to the ObjectDataSource control. En l’ajoutant explicitement à la InsertParameters collection avec une Type propriété définie sur la Int32 valeur ObjectDataSource , elle est passée Int32correctement par à la méthode en tant que, et non en tant que chaîne.By adding it explicitly to the InsertParameters collection with a Type property set to the Int32 value, it will be passed correctly by the ObjectDataSource to the method as an Int32, not as a string.

Lorsque l' Insert opération est effectuée, la méthode identifiée par la InsertMethod propriété est appelée.When the Insert operation is performed, the method that is identified by the InsertMethod property is called. Si la Insert méthode de l’objet a une signature de méthode qui inclut des paramètres InsertParameters , la collection doit contenir des paramètres dont les noms correspondent aux paramètres de signature Insert de méthode pour que la méthode se termine correctement.If the Insert method of the object has a method signature that includes parameters, the InsertParameters collection must contain parameters that have names that match the method signature parameters for the Insert method to complete successfully.

Important

Vous devez valider toute valeur de paramètre reçue du client.You should validate any parameter value that you receive from the client. Le runtime remplace simplement la valeur de paramètre dans la InsertMethod propriété.The runtime simply substitutes the parameter value into the InsertMethod property.

<%@ Register TagPrefix="aspSample" Namespace="Samples.AspNet.CS" Assembly="Samples.AspNet.CS" %>
<%@ Import namespace="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:detailsview
          id="DetailsView1"
          runat="server"
          autogenerateinsertbutton="True"
          autogeneraterows="false"
          datasourceid="ObjectDataSource1"
          defaultmode="Insert" >
          <fields>
            <asp:BoundField headertext="FirstName" datafield="FirstName" />
            <asp:BoundField headertext="LastName"   datafield="LastName" />
            <asp:BoundField headertext="Title"      datafield="Title" />
            <asp:BoundField headertext="Courtesy"   datafield="Courtesy" />
            <asp:BoundField headertext="Supervisor" datafield="Supervisor" />
          </fields>
        </asp:detailsview>

        <asp:objectdatasource
          id="ObjectDataSource1"
          runat="server"
          selectmethod="GetEmployee"
          insertmethod="InsertNewEmployeeWrapper"
          typename="Samples.AspNet.CS.EmployeeLogic" >
          <selectparameters>
            <asp:parameter name="anID" defaultvalue="-1" />
          </selectparameters>
          <insertparameters>
            <asp:parameter name="Supervisor" type="Int32" />
          </insertparameters>
        </asp:objectdatasource>

    </form>
  </body>
</html>
<%@ Register TagPrefix="aspSample" Namespace="Samples.AspNet.VB" Assembly="Samples.AspNet.VB" %>
<%@ Import namespace="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 - VB Example</title>
  </head>
  <body>
    <form id="Form1" method="post" runat="server">

        <asp:detailsview
          id="DetailsView1"
          runat="server"
          autogenerateinsertbutton="True"
          autogeneraterows="false"
          datasourceid="ObjectDataSource1"
          defaultmode="Insert" >
          <fields>
            <asp:BoundField headertext="FirstName" datafield="FirstName" />
            <asp:BoundField headertext="LastName"   datafield="LastName" />
            <asp:BoundField headertext="Title"      datafield="Title" />
            <asp:BoundField headertext="Courtesy"   datafield="Courtesy" />
            <asp:BoundField headertext="Supervisor" datafield="Supervisor" />
          </fields>
        </asp:detailsview>

        <asp:objectdatasource
          id="ObjectDataSource1"
          runat="server"
          selectmethod="GetEmployee"
          insertmethod="InsertNewEmployeeWrapper"
          typename="Samples.AspNet.VB.EmployeeLogic" >
          <selectparameters>
            <asp:parameter name="anID" defaultvalue="-1" />
          </selectparameters>
          <insertparameters>
            <asp:parameter name="Supervisor" type="Int32" />
          </insertparameters>
        </asp:objectdatasource>

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

L’exemple de code suivant fournit un exemple d’implémentation Insert de la méthode que l’exemple de code précédent utilise.The following code example provides an example implementation of the Insert method that the preceding code example uses. La InsertNewEmployeeWrapper méthode est ajoutée à l' EmployeeLogic objet de couche intermédiaire fourni dans la ObjectDataSource vue d’ensemble de la classe pour permettre à l’objet de travailler plus ObjectDataSource facilement avec le contrôle dans les scénarios Web, sans réécriture substantielle dans le logique métier.The InsertNewEmployeeWrapper method is added to the EmployeeLogic middle-tier object that is provided in the ObjectDataSource class overview to enable the object to work more easily with the ObjectDataSource control in Web scenarios, without a substantial rewrite to the actual business logic.

Pour exécuter l’exemple, vous devez disposer de NorthwindEmployee la classe fournie dans la vue ObjectDataSource d’ensemble de la classe.To run the example, you must have the NorthwindEmployee class that is provided in the ObjectDataSource class overview. Cet exemple illustre uniquement comment connecter le ObjectDataSource à une méthode d’objet métier qui obtient des données pour un nouvel enregistrement de base de données à l’aide de paramètres.This example illustrates only how to connect the ObjectDataSource to a business object method that gets data for a new database record by using parameters. L’exemple n’ajoute pas d’enregistrements à la base de données Save , car la NorthwindEmployee méthode de la classe n’inclut pas de code pour mettre à jour la base de données.The example does not add records to the database, because the Save method of the NorthwindEmployee class does not include code to update the database.

// This InsertNewEmployeeWrapper method is a wrapper method that enables
// the use of ObjectDataSource and InsertParameters, without
// substantially rewriting the true implementation for the NorthwindEmployee
// or the EmployeeLogic objects.
//
// The parameters to the method must be named the same as the
// DataControlFields used by the GridView or DetailsView controls.
public static void InsertNewEmployeeWrapper (string FirstName,
                                             string LastName,
                                             string Title,
                                             string Courtesy,
                                             int    Supervisor)
{
  // Build the NorthwindEmployee object and
  // call the true  implementation.
  NorthwindEmployee tempEmployee = new NorthwindEmployee();

  tempEmployee.FirstName  = FirstName;
  tempEmployee.LastName   = LastName;
  tempEmployee.Title      = Title;
  tempEmployee.Courtesy   = Courtesy;
  tempEmployee.Supervisor = Supervisor;

  // Call the true implementation.
  InsertNewEmployee(tempEmployee);
}

public static void InsertNewEmployee(NorthwindEmployee ne) {
  bool retval = ne.Save();
  if (! retval) { throw new NorthwindDataException("InsertNewEmployee failed."); }
}
' This InsertNewEmployeeWrapper method is a wrapper method that enables
' the use of ObjectDataSource and InsertParameters, without
' substantially rewriting the true implementation for the NorthwindEmployee
' or the EmployeeLogic objects.
'
' The parameters to the method must be named the same as the
' DataControlFields used by the GridView or DetailsView controls.
Public Shared Sub InsertNewEmployeeWrapper(FirstName As String, LastName As String, Title As String, Courtesy As String, Supervisor As Integer)
   ' Build the NorthwindEmployee object and
   ' call the true  implementation.
   Dim tempEmployee As New NorthwindEmployee()

   tempEmployee.FirstName = FirstName
   tempEmployee.LastName = LastName
   tempEmployee.Title = Title
   tempEmployee.Courtesy = Courtesy
   tempEmployee.Supervisor = Supervisor

   ' Call the true implementation.
   InsertNewEmployee(tempEmployee)
End Sub


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

Remarques

Les noms et types des paramètres contenus dans la InsertParameters collection doivent correspondre aux noms et aux types des paramètres de la InsertMethod signature de propriété.The names and types of the parameters that are contained in the InsertParameters collection must match the names and types of the parameters that are in the InsertMethod property signature. Les noms de paramètre respectent la casse.The parameter names are case sensitive. Lorsque vous utilisez des contrôles liés aux données qui fournissent des paramètres, tels GridView que DetailsView les contrôles et ObjectDataSource , le contrôle fusionne automatiquement tous les paramètres explicitement spécifiés dans la collection avec les paramètres fourni par le contrôle lié aux données.When working with data-bound controls that supply parameters, such as the GridView and DetailsView controls, the ObjectDataSource control automatically merges any parameters that are explicitly specified in the collection with the parameters that are provided by the data-bound control. C’est important, car les contrôles liés aux données fournissent toujours leurs String paramètres en tant que types, et si la signature de la méthode inclut des types numériques ou de date, InsertParameters vous devez inclure explicitement un paramètre dans la collection avec le type correct.This is important because data-bound controls always supply their parameters as String types, and if the method signature includes numeric or date types, you must explicitly include a parameter in the InsertParameters collection with the correct type. Sinon, le ObjectDataSource contrôle tente d’effectuer un cast des paramètres en fonction du type défini par les paramètres dans la collection.Otherwise, the ObjectDataSource control attempts to cast the parameters according to the type that is defined by the parameters in the collection. Pour plus d’informations, consultez utilisation de paramètres avec le contrôle ObjectDataSource.For more information, see Using Parameters with the ObjectDataSource Control.

La InsertParameters propriété récupère la InsertParameters propriété contenue dans le ObjectDataSourceView associé ObjectDataSource au contrôle.The InsertParameters property retrieves the InsertParameters property that is contained by the ObjectDataSourceView that is associated with the ObjectDataSource control.

Pour plus d’informations sur la fusion des paramètres, la durée de vie des InsertMethodobjets et la résolution des méthodes, consultez.For more information about parameter merging, object lifetime, and method resolution, see InsertMethod.

S’applique à

Voir aussi