Compartir a través de


SqlDataSource.Insert Método

Definición

Realiza una operación de inserción mediante la cadena SQL InsertCommand SQL y cualquier parámetro que esté en la colección InsertParameters.

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

Devoluciones

Valor que representa el número de filas insertadas en la base de datos subyacente.

Excepciones

El control SqlDataSource no puede establecer una conexión con el origen de datos subyacente.

Ejemplos

En el ejemplo de código siguiente se muestra cómo insertar datos en una base de datos mediante el SqlDataSource control y una página simple de Formularios Web Forms. Los datos actuales de la tabla Datos se muestran en el DropDownList control . Puede agregar nuevos registros escribiendo valores en los TextBox controles y haciendo clic en el botón Insertar . Cuando se hace clic en el botón Insertar, los valores especificados se insertan en la base de datos y, a continuación, se actualiza .DropDownList

Importante

En este ejemplo se incluye un cuadro de texto que acepta la entrada del usuario, que es una amenaza de seguridad potencial y los valores se insertan en parámetros sin validación, lo que también es una amenaza de seguridad potencial. Use el Inserting evento para validar los valores de parámetro antes de ejecutar la consulta. Para más información, consulte Información general sobre los ataques mediante scripts.

Nota

En este ejemplo se muestra cómo usar la sintaxis declarativa para el acceso a datos. Para obtener información sobre cómo acceder a los datos mediante código en lugar de marcado, consulte Acceso a datos en 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>

Comentarios

Antes de realizar la operación de inserción, OnInserting se llama al método para generar el Inserting evento. Puede controlar este evento para examinar los valores de los parámetros y para realizar cualquier preprocesamiento antes de la Insert operación. Para realizar una operación de inserción, el SqlDataSourceView objeto crea un DbCommand objeto mediante el InsertCommand texto y las propiedades asociadas InsertParameters y, a continuación, ejecuta el DbCommand objeto en la base de datos subyacente.

Una vez completada la operación, OnInserted se llama al método para generar el Inserted evento. Puede controlar este evento para examinar los valores devueltos y los códigos de error y realizar cualquier procesamiento posterior.

El Insert método se proporciona para el acceso mediante programación al Insert método . Si el SqlDataSource control está asociado a un control enlazado a datos, el control enlazado a datos llama automáticamente al Insert método .

El Insert método delega al Insert método del SqlDataSourceView objeto asociado al SqlDataSource control .

Importante

Los valores se insertan en parámetros sin validación, lo que es una amenaza de seguridad potencial. Use el Filtering evento para validar los valores de parámetro antes de ejecutar la consulta. Para más información, consulte Información general sobre los ataques mediante scripts.

Se aplica a

Consulte también