SqlDataSource.Insert Metoda

Definice

Provede operaci vložení pomocí InsertCommand řetězce SQL a všech parametrů, které jsou v kolekci InsertParameters .

public:
 int Insert();
public int Insert ();
member this.Insert : unit -> int
Public Function Insert () As Integer

Návraty

Hodnota, která představuje počet řádků vložených do podkladové databáze.

Výjimky

Nemůže SqlDataSource navázat připojení k podkladovému zdroji dat.

Příklady

Následující příklad kódu ukazuje, jak vložit data do databáze pomocí SqlDataSource ovládacího prvku a jednoduché Web Forms stránky. Aktuální data v tabulce Data se zobrazí v ovládacím DropDownList prvku. Nové záznamy můžete přidat zadáním hodnot do TextBox ovládacích prvků a následným kliknutím na tlačítko Vložit . Po kliknutí na tlačítko Vložit se zadané hodnoty vloží do databáze a pak DropDownList se aktualizuje.

Důležité

Tento příklad zahrnuje textové pole, které přijímá vstup uživatele, což je potenciální bezpečnostní hrozba a hodnoty se vloží do parametrů bez ověření, což je také potenciální bezpečnostní hrozba. Událost použijte Inserting k ověření hodnot parametrů před spuštěním dotazu. Další informace najdete v tématu Přehled zneužití skriptů.

Poznámka

Tento příklad ukazuje, jak používat deklarativní syntaxi pro přístup k datům. Informace o tom, jak získat přístup k datům pomocí kódu místo značek, najdete v tématu Přístup k datům v sadě 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>

Poznámky

Před provedením OnInserting operace vložení je volána metoda pro vyvolání Inserting události. Můžete zpracovat tuto událost, abyste prozkoumali hodnoty parametrů a provedli jakékoli předběžné zpracování před Insert operací. Pokud chcete provést operaci vložení, SqlDataSourceView objekt vytvoří DbCommand objekt pomocí InsertCommand textu a všech přidružených InsertParametersDbCommand vlastností a pak spustí objekt proti podkladové databázi.

Po dokončení OnInserted operace je volána metoda pro vyvolání Inserted události. Tuto událost můžete zpracovat, abyste prozkoumali všechny návratové hodnoty a kódy chyb a provedli jakékoli následné zpracování.

Metoda Insert je k dispozici pro programový přístup k Insert metodě. SqlDataSource Pokud je ovládací prvek přidružen k ovládacímu prvku vázanému na data, ovládací prvek vázaný na data automaticky volá metoduInsert.

Metoda Insert deleguje na metodu Insert objektu SqlDataSourceView , který je přidružen k ovládacímu SqlDataSource prvku.

Důležité

Hodnoty se do parametrů vkládají bez ověření, což představuje potenciální bezpečnostní hrozbu. Událost použijte Filtering k ověření hodnot parametrů před spuštěním dotazu. Další informace najdete v tématu Přehled zneužití skriptů.

Platí pro

Viz také