Freigeben über


ObjectDataSource.InsertParameters Eigenschaft

Definition

Ruft die Parameterauflistung ab, die die von der InsertMethod-Eigenschaft verwendeten Parameter enthält.

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

Eine ParameterCollection, die die Parameter enthält, die von der durch die InsertMethod-Eigenschaft angegebenen Methode verwendet werden.

Attribute

Beispiele

Dieser Abschnitt enthält zwei Codebeispiele. Im ersten Codebeispiel wird veranschaulicht, wie Ein ObjectDataSource Objekt mit einem Geschäftsobjekt und einem DetailsView Steuerelement zum Einfügen von Daten verwendet wird. Das zweite Codebeispiel enthält eine Beispielimplementierung der Insert Methode, die im ersten Codebeispiel verwendet wird.

Im folgenden Codebeispiel wird veranschaulicht, wie Ein ObjectDataSource -Steuerelement mit einem Geschäftsobjekt und einem DetailsView -Steuerelement zum Einfügen von Daten verwendet wird. Zunächst werden 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 angegeben wird, und allen Parametern, die in der InsertParameters Auflistung angegeben sind. In diesem Codebeispiel wird in der Auflistung ein Parameter angegeben, der InsertParameters der ID des Vorgesetzten entspricht. Dies liegt daran, dass die ID, obwohl in der Rows Auflistung für das DetailsView Steuerelement als BoundField Objekt angezeigt wird, als Zeichenfolge an das ObjectDataSource Steuerelement übergeben wird. Durch explizites Hinzufügen der InsertParameters Auflistung mit einer Type auf den Int32 Wert festgelegten Eigenschaft wird sie von der ObjectDataSource -Methode ordnungsgemäß als Int32übergeben, nicht als Zeichenfolge.

Wenn der Insert Vorgang ausgeführt wird, wird die Methode aufgerufen, die durch die InsertMethod -Eigenschaft identifiziert wird. Wenn die Insert Methode des Objekts über eine Methodensignatur verfügt, die Parameter enthält, muss die InsertParameters Auflistung Parameter mit Namen enthalten, die den Methodensignaturparametern entsprechen, damit die Insert Methode erfolgreich abgeschlossen werden kann.

Wichtig

Sie sollten jeden Parameterwert überprüfen, den Sie vom Client erhalten. Die Laufzeit ersetzt einfach den Parameterwert in der 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>

Das folgende Codebeispiel enthält eine Beispielimplementierung der Insert Methode, die im vorherigen Codebeispiel verwendet wird. Die InsertNewEmployeeWrapper -Methode wird dem Objekt der EmployeeLogic mittleren Ebene hinzugefügt, das in der ObjectDataSource Klassenübersicht bereitgestellt wird, damit das Objekt einfacher mit dem ObjectDataSource Steuerelement in Webszenarien arbeiten kann, ohne dass die eigentliche Geschäftslogik erheblich umgeschrieben wird.

Zum Ausführen des Beispiels benötigen Sie die NorthwindEmployee Klasse, die in der ObjectDataSource Klassenübersicht angegeben ist. In diesem Beispiel wird nur veranschaulicht, wie sie mithilfe von Parametern eine Verbindung mit einer Geschäftsobjektmethode herstellen ObjectDataSource , die Daten für einen neuen Datenbankdatensatz abruft. Im Beispiel werden der Datenbank keine Datensätze hinzugefügt, 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 in der InsertMethod Eigenschaftensignatur übereinstimmen. Bei den Parameternamen wird die Groß-/Kleinschreibung beachtet. Bei der Arbeit mit datengebundenen Steuerelementen, die Parameter bereitstellen, z. B. die GridView Steuerelemente und DetailsView , führt das ObjectDataSource Steuerelement automatisch alle Parameter zusammen, 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 bereitstellen, und wenn die Methodensignatur numerische oder Datumstypen enthält, müssen Sie explizit einen Parameter mit dem richtigen Typ in die InsertParameters Auflistung einschließen. Andernfalls versucht das ObjectDataSource Steuerelement, die Parameter entsprechend dem Typ zu umwandeln, der durch die Parameter 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 in der enthalten ist, die ObjectDataSourceView dem ObjectDataSource -Steuerelement zugeordnet ist.

Weitere Informationen zum Zusammenführen von Parametern, zur Objektlebensdauer und zur Methodenauflösung finden Sie unter InsertMethod.

Gilt für:

Weitere Informationen