Bagikan melalui


SqlDataSource.Insert Metode

Definisi

Melakukan operasi penyisipan menggunakan InsertCommand string SQL dan parameter apa pun yang ada dalam InsertParameters koleksi.

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

Mengembalikan

Nilai yang menunjukkan jumlah baris yang disisipkan ke dalam database yang mendasar.

Pengecualian

SqlDataSource tidak dapat membuat koneksi dengan sumber data yang mendasar.

Contoh

Contoh kode berikut menunjukkan cara menyisipkan data ke dalam database menggunakan SqlDataSource kontrol dan halaman Formulir Web sederhana. Data saat ini dalam tabel Data ditampilkan dalam DropDownList kontrol. Anda bisa menambahkan rekaman baru dengan memasukkan nilai dalam TextBox kontrol, lalu mengklik tombol Sisipkan . Saat tombol Sisipkan diklik, nilai yang ditentukan disisipkan ke dalam database, lalu disegarkan DropDownList .

Penting

Contoh ini mencakup kotak teks yang menerima input pengguna, yang merupakan potensi ancaman keamanan dan nilai dimasukkan ke dalam parameter tanpa validasi, yang juga merupakan potensi ancaman keamanan. Inserting Gunakan peristiwa untuk memvalidasi nilai parameter sebelum menjalankan kueri. Untuk informasi selengkapnya, lihat Gambaran Umum Eksploitasi Skrip.

Catatan

Contoh ini menunjukkan cara menggunakan sintaks deklaratif untuk akses data. Untuk informasi tentang cara mengakses data dengan menggunakan kode alih-alih markup, lihat Mengakses data di 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>

Keterangan

Sebelum operasi penyisipan dilakukan, OnInserting metode dipanggil untuk menaikkan Inserting peristiwa. Anda dapat menangani peristiwa ini untuk memeriksa nilai parameter dan melakukan praproscessing sebelum Insert operasi. Untuk melakukan operasi penyisipan, SqlDataSourceView objek membangun DbCommand objek menggunakan InsertCommand teks dan properti terkait InsertParameters apa pun, lalu menjalankan objek terhadap database yang mendasar DbCommand .

Setelah operasi selesai, metode dipanggil OnInserted untuk menaikkan Inserted peristiwa. Anda dapat menangani peristiwa ini untuk memeriksa nilai pengembalian dan kode kesalahan dan untuk melakukan pasca-pemrosesan.

Metode Insert ini disediakan untuk akses terprogram ke Insert metode . Jika kontrol dikaitkan SqlDataSource dengan kontrol terikat data, kontrol terikat data secara otomatis memanggil Insert metode .

Metode ini Insert mendelegasikan ke Insert metode SqlDataSourceView objek yang terkait dengan SqlDataSource kontrol.

Penting

Nilai dimasukkan ke dalam parameter tanpa validasi, yang merupakan potensi ancaman keamanan. Filtering Gunakan peristiwa untuk memvalidasi nilai parameter sebelum menjalankan kueri. Untuk informasi selengkapnya, lihat Gambaran Umum Eksploitasi Skrip.

Berlaku untuk

Lihat juga