SqlDataSource.Insert Méthode

Définition

Exécute une opération d'insertion à l'aide de la chaîne SQL InsertCommand et de tous les paramètres de la collection InsertParameters.

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

Retours

Une valeur qui représente le nombre de lignes insérées dans la base de données sous-jacente.

Exceptions

SqlDataSource ne peut pas établir de connexion avec la source de données sous-jacente.

Exemples

L’exemple de code suivant montre comment insérer des données dans une base de données à l’aide du SqlDataSource contrôle et d’une page de Web Forms simple. Les données actuelles de la table Data s’affichent dans le DropDownList contrôle . Vous pouvez ajouter de nouveaux enregistrements en entrant des valeurs dans les TextBox contrôles, puis en cliquant sur le bouton Insérer . Lorsque vous cliquez sur le bouton Insérer , les valeurs spécifiées sont insérées dans la base de données, puis le DropDownList est actualisé.

Important

Cet exemple inclut une zone de texte qui accepte l’entrée utilisateur, qui est une menace de sécurité potentielle et les valeurs sont insérées dans les paramètres sans validation, ce qui est également une menace de sécurité potentielle. Utilisez l’événement Inserting pour valider les valeurs des paramètres avant d’exécuter la requête. Pour plus d’informations, consultez Vue d’ensemble des attaques de script.

Notes

Cet exemple montre comment utiliser la syntaxe déclarative pour l’accès aux données. Pour plus d’informations sur l’accès aux données à l’aide du code au lieu du balisage, consultez Accès aux données dans 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>

Remarques

Avant l’exécution de l’opération d’insertion, la OnInserting méthode est appelée pour déclencher l’événement Inserting . Vous pouvez gérer cet événement pour examiner les valeurs des paramètres et effectuer tout prétraitement avant l’opération Insert . Pour effectuer une opération d’insertion, l’objet SqlDataSourceView génère un DbCommand objet à l’aide du InsertCommand texte et des propriétés associées InsertParameters , puis exécute l’objet DbCommand sur la base de données sous-jacente.

Une fois l’opération terminée, la OnInserted méthode est appelée pour déclencher l’événement Inserted . Vous pouvez gérer cet événement pour examiner les valeurs de retour et les codes d’erreur et effectuer tout post-traitement.

La Insert méthode est fournie pour l’accès par programmation à la Insert méthode . Si le SqlDataSource contrôle est associé à un contrôle lié aux données, le contrôle lié aux données appelle automatiquement la Insert méthode .

La Insert méthode délègue à la Insert méthode de l’objet SqlDataSourceView associé au SqlDataSource contrôle .

Important

Les valeurs sont insérées dans les paramètres sans validation, ce qui constitue une menace de sécurité potentielle. Utilisez l’événement Filtering pour valider les valeurs des paramètres avant d’exécuter la requête. Pour plus d’informations, consultez Vue d’ensemble des attaques de script.

S’applique à

Voir aussi