SqlDataSource.Insert 메서드

정의

SQL 문자열 및 컬렉션에 InsertCommand 있는 InsertParameters 모든 매개 변수를 사용하여 삽입 작업을 수행합니다.

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

반품

기본 데이터베이스에 삽입된 행 수를 나타내는 값입니다.

예외

SqlDataSource 기본 데이터 원본과의 연결을 설정할 수 없습니다.

예제

다음 코드 예제에서는 컨트롤 및 간단한 Web Forms 페이지를 사용 하 여 데이터베이스에 SqlDataSource 데이터를 삽입 하는 방법을 보여 줍니다. 데이터 테이블의 현재 데이터가 컨트롤에 DropDownList 표시됩니다. 컨트롤에 TextBox 값을 입력한 다음 삽입 단추를 클릭하여 새 레코드를 추가할 수 있습니다. 삽입 단추를 클릭하면 지정된 값이 데이터베이스에 삽입된 다음 DropDownList 새로 고쳐집니다.

Important

이 예제에는 잠재적인 보안 위협인 사용자 입력을 허용하는 텍스트 상자가 포함되어 있으며, 값은 유효성 검사 없이 매개 변수에 삽입되며 이는 잠재적인 보안 위협이기도 합니다. 쿼리를 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 개체를 빌드 InsertCommandInsertParameters 다음 기본 데이터베이스에 대해 개체를 실행합니다DbCommand.

작업이 완료되면 OnInserted 이벤트를 발생하도록 메서드가 Inserted 호출됩니다. 이 이벤트를 처리하여 반환 값 및 오류 코드를 검사하고 사후 처리를 수행할 수 있습니다.

메서드에 Insert 프로그래밍 방식으로 액세스할 수 있도록 메서드가 Insert 제공됩니다. 컨트롤이 SqlDataSource 데이터 바인딩된 컨트롤과 연결된 경우 데이터 바인딩된 컨트롤은 자동으로 메서드를 호출합니다 Insert .

메서드는 Insert 컨트롤과 Insert 연결된 개체의 SqlDataSourceView 메서드에 대리합니다 SqlDataSource .

Important

값은 유효성 검사 없이 매개 변수에 삽입되며 이는 잠재적인 보안 위협입니다. 쿼리를 Filtering 실행하기 전에 이벤트를 사용하여 매개 변수 값의 유효성을 검사합니다. 자세한 내용은 스크립트 악용 개요를 참조하세요.

적용 대상

추가 정보