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 InsertParameters kolekcji.
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 przedstawia sposób wstawiania danych do bazy danych przy użyciu kontrolki SqlDataSource i prostej strony Web Forms. 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. Użyj zdarzenia, Inserting aby zweryfikować wartości parametrów przed wykonaniem zapytania. Aby uzyskać więcej informacji, zobacz Script Exploits Overview (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 wywoływana OnInserting jest metoda w celu wywołania 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 kompiluje 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 wywoływana OnInserted jest metoda w celu wywołania Inserted zdarzenia. To zdarzenie można obsłużyć w celu zbadania wszystkich zwracanych wartości i kodów błędów oraz wykonania dowolnego przetwarzania końcowego.
Metoda Insert jest udostępniana w celu programowego dostępu do Insert
metody . Jeśli kontrolka SqlDataSource jest skojarzona z kontrolką powiązaną z danymi, kontrolka powiązana z danymi automatycznie wywołuje metodę Insert
.
Metoda Insert deleguje do Insert metody SqlDataSourceView obiektu, który jest skojarzony z kontrolką SqlDataSource .
Ważne
Wartości są wstawiane do parametrów bez walidacji, co jest potencjalnym zagrożeniem bezpieczeństwa. Użyj zdarzenia, Filtering aby zweryfikować wartości parametrów przed wykonaniem zapytania. Aby uzyskać więcej informacji, zobacz Script Exploits Overview (Omówienie luk w zabezpieczeniach skryptów).
Dotyczy
Zobacz też
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla