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 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.