ObjectDataSource.InsertParameters Eigenschaft
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ruft die Parameterauflistung ab, die die Parameter enthält, die von der InsertMethod Eigenschaft verwendet werden.
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
Eigenschaftswert
A ParameterCollection , das die parameter enthält, die von der von der InsertMethod Eigenschaft identifizierten Methode verwendet werden.
- Attribute
Beispiele
Dieser Abschnitt enthält zwei Codebeispiele. Das erste Codebeispiel veranschaulicht die Verwendung eines ObjectDataSource Objekts mit einem Geschäftsobjekt und einem DetailsView Steuerelement zum Einfügen von Daten. Das zweite Codebeispiel stellt eine Beispielimplementierung der Insert Methode bereit, die im ersten Codebeispiel verwendet wird.
Im folgenden Codebeispiel wird die Verwendung eines ObjectDataSource Steuerelements mit einem Geschäftsobjekt und einem DetailsView Steuerelement zum Einfügen von Daten veranschaulicht. Zunächst werden die Textfelder angezeigt, DetailsView in denen Sie Daten für einen neuen NorthwindEmployee Datensatz eingeben können, zusammen mit einer automatisch generierten Schaltfläche "Einfügen ". Nachdem Sie Daten in die Felder des DetailsView Steuerelements eingegeben haben, klicken Sie auf die Schaltfläche "Einfügen ". Die InsertMethod Eigenschaft gibt an, welche Methode den Einfügevorgang ausführt.
Wenn Sie auf die Schaltfläche "Einfügen " klicken, wird der Vorgang mithilfe der Methode ausgeführt, die von der InsertMethod Eigenschaft und allen Parametern angegeben wird, die in der InsertParameters Auflistung angegeben sind. In diesem Codebeispiel wird in der Auflistung ein Parameter angegeben, der InsertParameters der ID des Supervisors entspricht. Dies liegt daran, dass die ID zwar in der Rows Auflistung für das DetailsView Steuerelement als BoundField Objekt angezeigt wird, aber als Zeichenfolge an das ObjectDataSource Steuerelement übergeben wird. Durch das explizite Hinzufügen der InsertParameters Auflistung mit einer Type Eigenschaft, die auf den Int32 Wert festgelegt ist, wird sie von der ObjectDataSource Methode ordnungsgemäß als Int32Zeichenfolge übergeben, nicht als Zeichenfolge.
Wenn der Insert Vorgang ausgeführt wird, wird die von der InsertMethod Eigenschaft identifizierte Methode aufgerufen. Wenn die Insert Methode des Objekts eine Methodensignatur aufweist, die Parameter enthält, muss die InsertParameters Auflistung Parameter mit Namen enthalten, die den Methodensignaturparametern entsprechen, damit die Insert Methode erfolgreich abgeschlossen werden kann.
Von Bedeutung
Sie sollten jeden Parameterwert überprüfen, den Sie vom Client erhalten. Die Laufzeit ersetzt einfach den Parameterwert in die InsertMethod Eigenschaft.
<%@ 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>
Im folgenden Codebeispiel wird eine Beispielimplementierung der Insert Methode bereitgestellt, die im vorherigen Codebeispiel verwendet wird. Die InsertNewEmployeeWrapper Methode wird dem EmployeeLogic mittleren Objekt hinzugefügt, das in der ObjectDataSource Klassenübersicht bereitgestellt wird, damit das Objekt einfacher mit dem ObjectDataSource Steuerelement in Webszenarien funktioniert, ohne dass eine wesentliche Neuschreibung in die eigentliche Geschäftslogik erfolgt.
Zum Ausführen des Beispiels müssen Sie über die NorthwindEmployee Klasse verfügen, die in der ObjectDataSource Klassenübersicht bereitgestellt wird. In diesem Beispiel wird nur veranschaulicht, wie die ObjectDataSource Verbindung mit einer Geschäftsobjektmethode hergestellt wird, die Daten für einen neuen Datenbankdatensatz mithilfe von Parametern abruft. Das Beispiel fügt der Datenbank keine Datensätze hinzu, da die Save Methode der NorthwindEmployee Klasse keinen Code zum Aktualisieren der Datenbank enthält.
// 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
Hinweise
Die Namen und Typen der Parameter, die in der InsertParameters Auflistung enthalten sind, müssen mit den Namen und Typen der Parameter übereinstimmen, die sich in der Eigenschaftssignatur InsertMethod befinden. Bei den Parameternamen wird die Groß-/Kleinschreibung beachtet. Beim Arbeiten mit datengebundenen Steuerelementen, die Parameter bereitstellen, z. B. die GridView Steuerelemente DetailsView , werden automatisch alle Parameter zusammengeführt, ObjectDataSource die explizit in der Auflistung angegeben sind, mit den Parametern, die vom datengebundenen Steuerelement bereitgestellt werden. Dies ist wichtig, da datengebundene Steuerelemente ihre Parameter immer als String Typen angeben und wenn die Methodensignatur numerische oder Datumstypen enthält, müssen Sie explizit einen Parameter in die InsertParameters Auflistung mit dem richtigen Typ einschließen. Andernfalls versucht das ObjectDataSource Steuerelement, die Parameter gemäß dem Typ zu umwandeln, der von den Parametern in der Auflistung definiert wird. Weitere Informationen finden Sie unter Verwenden von Parametern mit dem ObjectDataSource-Steuerelement.
Die InsertParameters Eigenschaft ruft die InsertParameters Eigenschaft ab, die durch das ObjectDataSourceView Steuerelement enthalten ObjectDataSource ist.
Weitere Informationen zum Zusammenführen von Parametern, zur Objektlebensdauer und zur Methodenauflösung finden Sie unter InsertMethod.