SqlDataSource.Insert Метод

Определение

Выполняет операцию вставки, используя SQL-строку InsertCommand и параметры из коллекции InsertParameters.Performs an insert operation using the InsertCommand SQL string and any parameters that are in the InsertParameters collection.

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

Возвращаемое значение

Значение, представляющее число строк, вставленных в основную базу данных.A value that represents the number of rows inserted into the underlying database.

Исключения

Объекту SqlDataSource не удается установить подключение к базовому источнику данных.The SqlDataSource cannot establish a connection with the underlying data source.

Примеры

В следующем примере кода показано, как вставлять данные в базу данных с помощью элемента управления SqlDataSource и простой страницы веб-форм.The following code example demonstrates how to insert data into a database using the SqlDataSource control and a simple Web Forms page. Текущие данные в таблице данных отображаются в элементе управления DropDownList.The current data in the Data table is displayed in the DropDownList control. Можно добавить новые записи, введя значения в элементах управления TextBox, а затем нажав кнопку Вставить .You can add new records by entering values in the TextBox controls, and then clicking the Insert button. При нажатии кнопки вставки указанные значения вставляются в базу данных, после чего DropDownList обновляется.When the Insert button is clicked, the specified values are inserted into the database, and then the DropDownList is refreshed.

Важно!

Этот пример включает текстовое поле, которое принимает вводимые пользователем данные, что является потенциальной угрозой безопасности, и значения вставляются в параметры без проверки, что также является потенциальной угрозой безопасности.This example includes a text box that accepts user input, which is a potential security threat and values are inserted into parameters without validation, which is also a potential security threat. Используйте событие Inserting для проверки значений параметров перед выполнением запроса.Use the Inserting event to validate parameter values before executing the query. Дополнительные сведения см. в разделе Общие сведения об использовании сценариев.For more information, see Script Exploits Overview.

Примечание

В этом примере показано, как использовать декларативный синтаксис для доступа к данным.This example shows how to use declarative syntax for data access. Дополнительные сведения о доступе к данным с помощью кода вместо разметки см. в разделе доступ к данным в Visual Studio.For information about how to access data by using code instead of markup, see 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>

Комментарии

Перед выполнением операции вставки вызывается метод OnInserting для вызова события Inserting.Before the insert operation is performed, the OnInserting method is called to raise the Inserting event. Это событие можно обработать для проверки значений параметров и выполнения предварительной обработки перед операцией Insert.You can handle this event to examine the values of the parameters and to perform any preprocessing before the Insert operation. Для выполнения операции вставки объект SqlDataSourceView создает объект DbCommand, используя InsertCommandный текст и все связанные InsertParameters свойства, а затем выполняет объект DbCommand для базовой базы данных.To perform an insert operation, the SqlDataSourceView object builds an DbCommand object using the InsertCommand text and any associated InsertParameters properties, and then executes the DbCommand object against the underlying database.

После завершения операции вызывается метод OnInserted для вызова события Inserted.After the operation completes, the OnInserted method is called to raise the Inserted event. Это событие можно обработать для проверки любых возвращаемых значений и кодов ошибок, а также для выполнения любой последующей обработки.You can handle this event to examine any return values and error codes and to perform any post-processing.

Метод Insert предоставляется для программного доступа к методу Insert.The Insert method is provided for programmatic access to the Insert method. Если элемент управления SqlDataSource связан с элементом управления с привязкой к данным, то элемент управления с привязкой к данным автоматически вызывает метод Insert.If the SqlDataSource control is associated with a data-bound control, the data-bound control automatically calls the Insert method.

Метод Insert делегирует методу Insert объекта SqlDataSourceView, связанного с элементом управления SqlDataSource.The Insert method delegates to the Insert method of the SqlDataSourceView object that is associated with the SqlDataSource control.

Важно!

Значения вставляются в параметры без проверки, что является потенциальной угрозой безопасности.Values are inserted into parameters without validation, which is a potential security threat. Используйте событие Filtering для проверки значений параметров перед выполнением запроса.Use the Filtering event to validate parameter values before executing the query. Дополнительные сведения см. в разделе Общие сведения об использовании сценариев.For more information, see Script Exploits Overview.

Применяется к

Дополнительно