Språk

SqlDataSource.Insert Metod

Definition

Utför en infogningsåtgärd med hjälp av SQL-strängen InsertCommand och alla parametrar som finns i InsertParameters samlingen.

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

Returer

Ett värde som representerar antalet rader som infogats i den underliggande databasen.

Undantag

Det SqlDataSource går inte att upprätta en anslutning till den underliggande datakällan.

Exempel

I följande kodexempel visas hur du infogar data i en databas med hjälp av SqlDataSource kontrollen och en enkel webbformulärsida. Aktuella data i datatabellen visas i DropDownList kontrollen. Du kan lägga till nya poster genom att ange värden i TextBox kontrollerna och sedan klicka på knappen Infoga . När knappen Infoga klickas infogas de angivna värdena i databasen och uppdateras sedan DropDownList .

Important

Det här exemplet innehåller en textruta som accepterar användarindata, vilket är ett potentiellt säkerhetshot och värden infogas i parametrar utan validering, vilket också är ett potentiellt säkerhetshot. Inserting Använd händelsen för att verifiera parametervärden innan du kör frågan. Mer information finns i Översikt över skriptexploateringar.

Note

Det här exemplet visar hur du använder deklarativ syntax för dataåtkomst. Information om hur du kommer åt data med hjälp av kod i stället för markering finns i Accessing data 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>

Kommentarer

Innan infogningsåtgärden OnInserting utförs anropas metoden för att skapa Inserting händelsen. Du kan hantera den här händelsen för att undersöka parametrarnas värden och utföra eventuell förbearbetning före åtgärden Insert . För att utföra en infogningsåtgärd SqlDataSourceView skapar objektet ett DbCommand objekt med hjälp av InsertCommand texten och eventuella associerade InsertParameters egenskaper och kör DbCommand sedan objektet mot den underliggande databasen.

När åtgärden har slutförts anropas OnInserted metoden för att skapa Inserted händelsen. Du kan hantera den här händelsen för att undersöka eventuella returvärden och felkoder och utföra eventuella efterbearbetningar.

Metoden Insert tillhandahålls för programmatisk åtkomst till Insert metoden. Om kontrollen SqlDataSource är associerad med en databunden kontroll anropar Insert den databundna kontrollen automatiskt metoden.

Metoden Insert delegerar till metoden för Insert objektet SqlDataSourceView som är associerat med SqlDataSource kontrollen.

Important

Värden infogas i parametrar utan validering, vilket är ett potentiellt säkerhetshot. Filtering Använd händelsen för att verifiera parametervärden innan du kör frågan. Mer information finns i Översikt över skriptexploateringar.

Gäller för

Se även