SqlDataSource.Insert メソッド

定義

InsertCommand SQL 文字列と 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

戻り値

Int32

基になるデータベースに挿入された行数を表す値。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 コントロールと単純な Web フォームページを使用してデータベースにデータを挿入する方法を示します。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.

適用対象

こちらもご覧ください