ObjectDataSource.InsertParameters Propriété
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Obtient la collection de paramètres qui contient les paramètres utilisés par la propriété InsertMethod.
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; }
[<System.Web.UI.PersistenceMode(System.Web.UI.PersistenceMode.InnerProperty)>]
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.
- Attributs
Exemples
Cette section contient deux exemples de code. 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. Le deuxième exemple de code fournit un exemple d’implémentation de la Insert
méthode utilisée dans le premier exemple de code.
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. Initialement, le DetailsView affiche des zones de texte dans lesquelles vous pouvez entrer des données pour un nouvel NorthwindEmployee
enregistrement, ainsi qu’un bouton Insérer généré automatiquement. Après avoir entré des données dans les champs du DetailsView contrôle, cliquez sur le bouton Insérer . La InsertMethod propriété identifie la méthode qui effectue l’opération d’insertion.
Si vous cliquez sur le bouton Insérer , l’opération est effectuée à l’aide de la méthode spécifiée par la InsertMethod propriété et de tous les paramètres spécifiés dans la InsertParameters collection. Dans cet exemple de code, un paramètre est spécifié dans la InsertParameters collection qui correspond à l’ID du superviseur. En effet, même si l’ID est affiché dans la Rows collection pour le DetailsView contrôle en tant qu’objet BoundField , il est passé en tant que chaîne au ObjectDataSource contrôle. En l’ajoutant explicitement à la InsertParameters collection avec une Type propriété définie sur la Int32 valeur, il est passé correctement par le ObjectDataSource à la méthode en tant que Int32, et non en tant que chaîne.
Lorsque l’opération Insert est effectuée, la méthode identifiée par la InsertMethod propriété est appelée. Si la Insert méthode de l’objet a une signature de méthode qui inclut des paramètres, la InsertParameters collection doit contenir des paramètres dont les noms correspondent aux paramètres de signature de méthode pour que la Insert méthode se termine correctement.
Important
Vous devez valider toute valeur de paramètre que vous recevez du client. Le runtime remplace simplement la valeur du paramètre dans la InsertMethod propriété .
<%@ 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 de la Insert
méthode que l’exemple de code précédent utilise. La InsertNewEmployeeWrapper
méthode est ajoutée à l’objet EmployeeLogic
de niveau intermédiaire fourni dans la vue d’ensemble de la ObjectDataSource classe pour permettre à l’objet de fonctionner plus facilement avec le contrôle dans les ObjectDataSource scénarios Web, sans réécriture substantielle de la logique métier réelle.
Pour exécuter l’exemple, vous devez disposer de la NorthwindEmployee
classe fournie dans la vue d’ensemble de la ObjectDataSource classe. Cet exemple montre uniquement comment connecter le à une méthode d’objet métier qui obtient des données pour un nouvel enregistrement de base de données à l’aide ObjectDataSource de paramètres. L’exemple n’ajoute pas d’enregistrements à la base de données, car la Save
méthode de la NorthwindEmployee
classe n’inclut pas de code pour mettre à jour la base de données.
// 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 les types des paramètres contenus dans la InsertParameters collection doivent correspondre aux noms et aux types des paramètres figurant dans la signature de propriété InsertMethod . Les noms des paramètres respectent la casse. Lors de l’utilisation de contrôles liés aux données qui fournissent des paramètres, tels que les GridView contrôles et DetailsView , le ObjectDataSource contrôle fusionne automatiquement tous les paramètres explicitement spécifiés dans la collection avec les paramètres fournis par le contrôle lié aux données. Cela est important, car les contrôles liés aux données fournissent toujours leurs paramètres en tant que String types, et si la signature de méthode inclut des types numériques ou de date, vous devez inclure explicitement un paramètre dans la InsertParameters collection avec le type approprié. Sinon, le ObjectDataSource contrôle tente de convertir les paramètres en fonction du type défini par les paramètres de la collection. Pour plus d’informations, consultez Utilisation de paramètres avec le contrôle ObjectDataSource.
La InsertParameters propriété récupère la InsertParameters propriété contenue par le ObjectDataSourceView associé au ObjectDataSource contrôle .
Pour plus d’informations sur la fusion de paramètres, la durée de vie des objets et la résolution de méthode, consultez InsertMethod.