Поделиться через


SqlDataSource.Insert Метод

Определение

Выполняет операцию вставки, используя SQL-строку InsertCommand и параметры из коллекции InsertParameters.

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

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

Значение, представляющее число строк, вставленных в основную базу данных.

Исключения

Объекту SqlDataSource не удается установить подключение к базовому источнику данных.

Примеры

В следующем примере кода показано, как вставлять данные в базу данных с помощью SqlDataSource элемента управления и простой страницы веб-форм. Текущие данные в таблице Данные отображаются в элементе DropDownList управления . Вы можете добавить новые записи, введя значения в TextBox элементы управления, а затем нажав кнопку Вставить . При нажатии кнопки Вставка указанные значения вставляются в базу данных, а затем DropDownList обновляется .

Важно!

Этот пример включает текстовое поле, которое принимает введенные пользователем данные, что является потенциальной угрозой безопасности, а значения вставляются в параметры без проверки, что также является потенциальной угрозой безопасности. Используйте событие для Inserting проверки значений параметров перед выполнением запроса. Дополнительные сведения см. в разделе Общие сведения об использовании сценариев.

Примечание

В этом примере показано, как использовать декларативный синтаксис для доступа к данным. Сведения о том, как получить доступ к данным с помощью кода, а не разметки, см. в разделе Доступ к данным в 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 события . Это событие можно обработать для проверки значений параметров и выполнения любой предварительной обработки перед операцией Insert . Чтобы выполнить операцию вставки, SqlDataSourceView объект создает DbCommand объект с использованием InsertCommand текста и всех связанных InsertParameters свойств, а затем выполняет DbCommand объект для базовой базы данных.

После завершения операции вызывается метод для OnInserted вызова Inserted события . Это событие можно обработать для проверки возвращаемых значений и кодов ошибок, а также для выполнения постобработки.

Метод Insert предоставляется для программного доступа к методу Insert . SqlDataSource Если элемент управления связан с элементом управления с привязкой к данным, элемент управления с привязкой к данным автоматически вызывает Insert метод .

Метод Insert делегирует Insert метод объекта , связанного SqlDataSourceView с элементом SqlDataSource управления .

Важно!

Значения вставляются в параметры без проверки, что является потенциальной угрозой безопасности. Используйте событие для Filtering проверки значений параметров перед выполнением запроса. Дополнительные сведения см. в разделе Общие сведения об использовании сценариев.

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

См. также раздел