SqlDataSource.Insert Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Wykonuje operację wstawiania przy użyciu InsertCommand ciągu SQL i wszystkich parametrów, które znajdują się w kolekcji InsertParameters .
public:
int Insert();
public int Insert ();
member this.Insert : unit -> int
Public Function Insert () As Integer
Zwraca
Wartość reprezentująca liczbę wierszy wstawionych do bazowej bazy danych.
Wyjątki
Nie SqlDataSource można nawiązać połączenia z bazowym źródłem danych.
Przykłady
Poniższy przykład kodu pokazuje, jak wstawić dane do bazy danych przy użyciu kontrolki SqlDataSource i prostej strony formularzy sieci Web. Bieżące dane w tabeli Dane są wyświetlane w kontrolce DropDownList . Możesz dodać nowe rekordy, wprowadzając wartości w kontrolkach TextBox , a następnie klikając przycisk Wstaw . Po kliknięciu przycisku Wstaw określone wartości zostaną wstawione do bazy danych, a następnie DropDownList odświeżone.
Ważne
Ten przykład zawiera pole tekstowe akceptujące dane wejściowe użytkownika, które jest potencjalnym zagrożeniem bezpieczeństwa i wartościami są wstawiane do parametrów bez walidacji, co jest również potencjalnym zagrożeniem bezpieczeństwa. Inserting Użyj zdarzenia, aby zweryfikować wartości parametrów przed wykonaniem zapytania. Aby uzyskać więcej informacji, zobacz Omówienie luk w zabezpieczeniach skryptów.
Uwaga
W tym przykładzie pokazano, jak używać składni deklaratywnej na potrzeby dostępu do danych. Aby uzyskać informacje na temat uzyskiwania dostępu do danych przy użyciu kodu zamiast znaczników, zobacz Uzyskiwanie dostępu do danych w programie 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>
Uwagi
Przed wykonaniem operacji wstawiania metoda jest wywoływana w OnInserting celu podniesienia Inserting zdarzenia. To zdarzenie można obsłużyć w celu zbadania wartości parametrów i wykonania dowolnego przetwarzania wstępnego przed operacją Insert . Aby wykonać operację wstawiania, SqlDataSourceView obiekt tworzy DbCommand obiekt przy użyciu InsertCommand tekstu i wszelkich skojarzonych InsertParameters właściwości, a następnie wykonuje DbCommand obiekt względem bazowej bazy danych.
Po zakończeniu operacji metoda jest wywoływana OnInserted , aby zgłosić Inserted zdarzenie. To zdarzenie można obsłużyć, aby zbadać wszystkie zwracane wartości i kody błędów oraz wykonać dowolne przetwarzanie końcowe.
Metoda Insert jest udostępniana w celu programowego dostępu do Insert
metody . Jeśli kontrolka SqlDataSource jest skojarzona z kontrolką powiązana z danymi, kontrolka powiązana z danymi automatycznie wywołuje metodę Insert
.
Metoda Insert deleguje do Insert metody obiektu skojarzonego SqlDataSourceView z kontrolką SqlDataSource .
Ważne
Wartości są wstawiane do parametrów bez walidacji, co jest potencjalnym zagrożeniem bezpieczeństwa. Filtering Użyj zdarzenia, aby zweryfikować wartości parametrów przed wykonaniem zapytania. Aby uzyskać więcej informacji, zobacz Omówienie luk w zabezpieczeniach skryptów.