SqlDataSource.Insert Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Voert een invoegbewerking uit met behulp van de InsertCommand SQL-tekenreeks en eventuele parameters in de InsertParameters verzameling.
public:
int Insert();
public int Insert();
member this.Insert : unit -> int
Public Function Insert () As Integer
Retouren
Een waarde die het aantal rijen aangeeft dat is ingevoegd in de onderliggende database.
Uitzonderingen
Er SqlDataSource kan geen verbinding worden tot stand gebracht met de onderliggende gegevensbron.
Voorbeelden
In het volgende codevoorbeeld ziet u hoe u gegevens invoegt in een database met behulp van het SqlDataSource besturingselement en een eenvoudige webpagina met webformulieren. De huidige gegevens in de tabel Gegevens worden weergegeven in het DropDownList besturingselement. U kunt nieuwe records toevoegen door waarden in de TextBox besturingselementen in te voeren en vervolgens op de knop Invoegen te klikken. Wanneer op de knop Invoegen wordt geklikt, worden de opgegeven waarden ingevoegd in de database en wordt de DropDownList knop vernieuwd.
Important
Dit voorbeeld bevat een tekstvak dat gebruikersinvoer accepteert. Dit is een mogelijke beveiligingsrisico en waarden worden ingevoegd in parameters zonder validatie. Dit is ook een mogelijke beveiligingsrisico. Gebruik de Inserting gebeurtenis om parameterwaarden te valideren voordat u de query uitvoert. Zie Overzicht van Script Exploits voor meer informatie.
Note
In dit voorbeeld ziet u hoe u declaratieve syntaxis gebruikt voor gegevenstoegang. Zie Toegang tot gegevens in Visual Studio voor informatie over het openen van gegevens met behulp van code in plaats van markeringen.
<%@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>
Opmerkingen
Voordat de invoegbewerking wordt uitgevoerd, wordt de OnInserting methode aangeroepen om de Inserting gebeurtenis te genereren. U kunt deze gebeurtenis afhandelen om de waarden van de parameters te onderzoeken en eventuele voorverwerkingen vóór de Insert bewerking uit te voeren. Als u een invoegbewerking wilt uitvoeren, bouwt het SqlDataSourceView object een DbCommand object met behulp van de InsertCommand tekst en eventuele bijbehorende InsertParameters eigenschappen en voert het DbCommand object vervolgens uit op de onderliggende database.
Nadat de bewerking is voltooid, wordt de OnInserted methode aangeroepen om de Inserted gebeurtenis te genereren. U kunt deze gebeurtenis afhandelen om alle retourwaarden en foutcodes te onderzoeken en eventuele naverwerking uit te voeren.
De Insert methode wordt verstrekt voor programmatische toegang tot de Insert methode. Als het SqlDataSource besturingselement is gekoppeld aan een gegevensgebonden besturingselement, roept het gegevensgebonden besturingselement automatisch de Insert methode aan.
De Insert methode delegeert de methode aan de Insert methode van het SqlDataSourceView object dat is gekoppeld aan het SqlDataSource besturingselement.
Important
Waarden worden ingevoegd in parameters zonder validatie. Dit is een mogelijke beveiligingsrisico. Gebruik de Filtering gebeurtenis om parameterwaarden te valideren voordat u de query uitvoert. Zie Overzicht van Script Exploits voor meer informatie.