SqlDataSource.Insert Methode
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.
Führt einen Einfügevorgang mit der InsertCommand SQL-Zeichenfolge und allen Parametern aus, die sich in der InsertParameters Auflistung befinden.
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 Zeilen darstellt, die in die zugrunde liegende Datenbank eingefügt wurden.
Ausnahmen
Die SqlDataSource Verbindung mit der zugrunde liegenden Datenquelle kann nicht hergestellt werden.
Beispiele
Im folgenden Codebeispiel wird veranschaulicht, wie Daten mithilfe des SqlDataSource Steuerelements und einer einfachen Webseite 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.
Important
Dieses Beispiel enthält ein Textfeld, das Benutzereingaben akzeptiert, bei denen es sich um eine potenzielle Sicherheitsrisiken handelt, und Werte werden ohne Überprüfung in Parameter eingefügt, was auch eine potenzielle Sicherheitsrisiken darstellt. Verwenden Sie das Inserting Ereignis, um Parameterwerte zu überprüfen, bevor Sie die Abfrage ausführen. Weitere Informationen finden Sie unter Script Exploits Overview.
Note
In diesem Beispiel wird gezeigt, wie sie eine 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 Inserting Ereignis auszuheben. Sie können dieses Ereignis behandeln, um die Werte der Parameter zu untersuchen und alle Vorverarbeitungen vor dem Insert Vorgang auszuführen. Zum Ausführen eines Einfügevorgangs erstellt das SqlDataSourceView Objekt ein DbCommand Objekt mit dem InsertCommand Text und den zugehörigen InsertParameters Eigenschaften und führt dann das DbCommand Objekt für die zugrunde liegende Datenbank aus.
Nach Abschluss des Vorgangs wird die OnInserted Methode aufgerufen, um das Inserted Ereignis auszuheben. Sie können dieses Ereignis behandeln, um alle Rückgabewerte und Fehlercodes zu untersuchen und jede Nachbearbeitung 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 an die Insert Methode des SqlDataSourceView Objekts, das dem SqlDataSource Steuerelement zugeordnet ist.
Important
Werte werden ohne Überprüfung in Parameter eingefügt, was eine potenzielle Sicherheitsgefahr ist. Verwenden Sie das Filtering Ereignis, um Parameterwerte zu überprüfen, bevor Sie die Abfrage ausführen. Weitere Informationen finden Sie unter Script Exploits Overview.