Freigeben über


SqlDataSource.Insert Methode

Definition

Führt mithilfe der InsertCommand-SQL-Zeichenfolge und allen Parametern, die in der InsertParameters-Auflistung vorhanden sind, einen Einfügevorgang aus.

public:
 int Insert();
public int Insert ();
member this.Insert : unit -> int
Public Function Insert () As Integer

Gibt zurück

Ein Wert, der die Anzahl der in die zugrunde liegenden Datenbank eingefügten Zeilen darstellt.

Ausnahmen

Die SqlDataSource kann keine Verbindung mit der zugrunde liegenden Datenquelle herstellen.

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie Daten mithilfe des SqlDataSource Steuerelements und einer einfachen Web Forms-Seite in eine Datenbank eingefügt werden. Die aktuellen Daten in der Datentabelle werden im DropDownList Steuerelement angezeigt. Sie können neue Datensätze hinzufügen, indem Sie Werte in die TextBox Steuerelemente eingeben und dann auf die Schaltfläche Einfügen klicken. Wenn auf die Schaltfläche Einfügen geklickt wird, werden die angegebenen Werte in die Datenbank eingefügt und dann DropDownList aktualisiert.

Wichtig

Dieses Beispiel enthält ein Textfeld, das Benutzereingaben akzeptiert, was eine potenzielle Sicherheitsbedrohung darstellt und Werte ohne Überprüfung in Parameter eingefügt werden, was auch eine potenzielle Sicherheitsbedrohung darstellt. Verwenden Sie das Inserting -Ereignis, um Parameterwerte vor dem Ausführen der Abfrage zu überprüfen. Weitere Informationen finden Sie unter Übersicht über Skriptangriffe.

Hinweis

In diesem Beispiel wird gezeigt, wie Sie die deklarative Syntax für den Datenzugriff verwenden. Informationen zum Zugreifen auf Daten mithilfe von Code anstelle von Markup finden Sie unter Zugreifen auf Daten in Visual Studio.

<%@Page  Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">
private void InsertShipper (object source, EventArgs e) {
  SqlDataSource1.Insert();
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>ASP.NET Example</title>
</head>
<body>
    <form id="form1" runat="server">

      <asp:dropdownlist
        id="DropDownList1"
        runat="server"
        datasourceid="SqlDataSource1"
        datatextfield="CompanyName"
        datavaluefield="ShipperID" />

<!-- Security Note: The SqlDataSource uses a FormParameter,
     Security Note: which does not perform validation of input from the client.
     Security Note: To validate the value of the FormParameter, handle the Inserting event. -->

      <asp:sqldatasource
        id="SqlDataSource1"
        runat="server"
        connectionstring="<%$ ConnectionStrings:MyNorthwind %>"
        selectcommand="SELECT CompanyName,ShipperID FROM Shippers"
        insertcommand="INSERT INTO Shippers (CompanyName,Phone) VALUES (@CoName,@Phone)">
          <insertparameters>
            <asp:formparameter name="CoName" formfield="CompanyNameBox" />
            <asp:formparameter name="Phone"  formfield="PhoneBox" />
          </insertparameters>
      </asp:sqldatasource>

      <br /><asp:textbox
           id="CompanyNameBox"
           runat="server" />

      <asp:RequiredFieldValidator
        id="RequiredFieldValidator1"
        runat="server"
        ControlToValidate="CompanyNameBox"
        Display="Static"
        ErrorMessage="Please enter a company name." />

      <br /><asp:textbox
           id="PhoneBox"
           runat="server" />

      <asp:RequiredFieldValidator
        id="RequiredFieldValidator2"
        runat="server"
        ControlToValidate="PhoneBox"
        Display="Static"
        ErrorMessage="Please enter a phone number." />

      <br /><asp:button
           id="Button1"
           runat="server"
           text="Insert New Shipper"
           onclick="InsertShipper" />

    </form>
  </body>
</html>
<%@Page  Language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">
Private Sub InsertShipper (ByVal Source As Object, ByVal e As EventArgs)
  SqlDataSource1.Insert()
End Sub ' InsertShipper
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>ASP.NET Example</title>
</head>
<body>
    <form id="form1" runat="server">

      <asp:dropdownlist
        id="DropDownList1"
        runat="server"
        datasourceid="SqlDataSource1"
        datatextfield="CompanyName"
        datavaluefield="ShipperID" />

<!-- Security Note: The SqlDataSource uses a FormParameter,
     Security Note: which does not perform validation of input from the client.
     Security Note: To validate the value of the FormParameter, handle the Inserting event. -->

      <asp:sqldatasource
        id="SqlDataSource1"
        runat="server"
        connectionstring="<%$ ConnectionStrings:MyNorthwind %>"
        selectcommand="SELECT CompanyName,ShipperID FROM Shippers"
        insertcommand="INSERT INTO Shippers (CompanyName,Phone) VALUES (@CoName,@Phone)">
          <insertparameters>
            <asp:formparameter name="CoName" formfield="CompanyNameBox" />
            <asp:formparameter name="Phone"  formfield="PhoneBox" />
          </insertparameters>
      </asp:sqldatasource>

      <br /><asp:textbox
           id="CompanyNameBox"
           runat="server" />

      <asp:RequiredFieldValidator
        id="RequiredFieldValidator1"
        runat="server"
        ControlToValidate="CompanyNameBox"
        Display="Static"
        ErrorMessage="Please enter a company name." />

      <br /><asp:textbox
           id="PhoneBox"
           runat="server" />

      <asp:RequiredFieldValidator
        id="RequiredFieldValidator2"
        runat="server"
        ControlToValidate="PhoneBox"
        Display="Static"
        ErrorMessage="Please enter a phone number." />

      <br /><asp:button
           id="Button1"
           runat="server"
           text="Insert New Shipper"
           onclick="InsertShipper" />

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

Hinweise

Bevor der Einfügevorgang ausgeführt wird, wird die OnInserting -Methode aufgerufen, um das Ereignis auszulösen Inserting . Sie können dieses Ereignis behandeln, um die Werte der Parameter zu untersuchen und vor dem Insert Vorgang eine Vorverarbeitung durchzuführen. Zum Ausführen eines Einfügevorgangs erstellt das SqlDataSourceView -Objekt ein DbCommand -Objekt mithilfe des InsertCommand Texts und aller zugeordneten InsertParameters Eigenschaften und führt das Objekt dann für die DbCommand zugrunde liegende Datenbank aus.

Nach Abschluss des Vorgangs wird die OnInserted -Methode aufgerufen, um das Ereignis auszulösen Inserted . Sie können dieses Ereignis behandeln, um alle Rückgabewerte und Fehlercodes zu untersuchen und eine Nachverarbeitung durchzuführen.

Die Insert -Methode wird für den programmgesteuerten Zugriff auf die Insert -Methode bereitgestellt. Wenn das SqlDataSource Steuerelement einem datengebundenen Steuerelement zugeordnet ist, ruft das datengebundene Steuerelement die Insert -Methode automatisch auf.

Die Insert -Methode delegiert die -Methode an die InsertSqlDataSourceView -Methode des -Objekts, das dem SqlDataSource Steuerelement zugeordnet ist.

Wichtig

Werte werden ohne Überprüfung in Parameter eingefügt, was eine potenzielle Sicherheitsbedrohung darstellt. Verwenden Sie das Filtering -Ereignis, um Parameterwerte vor dem Ausführen der Abfrage zu überprüfen. Weitere Informationen finden Sie unter Übersicht über Skriptangriffe.

Gilt für:

Weitere Informationen