Bagikan melalui


SqlDataSource.Select(DataSourceSelectArguments) Metode

Definisi

Mengambil data dari database yang mendasar dengan menggunakan SelectCommand string SQL dan parameter apa pun yang ada dalam SelectParameters koleksi.

public:
 System::Collections::IEnumerable ^ Select(System::Web::UI::DataSourceSelectArguments ^ arguments);
public System.Collections.IEnumerable Select (System.Web.UI.DataSourceSelectArguments arguments);
member this.Select : System.Web.UI.DataSourceSelectArguments -> System.Collections.IEnumerable
Public Function Select (arguments As DataSourceSelectArguments) As IEnumerable

Parameter

arguments
DataSourceSelectArguments

Objek DataSourceSelectArguments yang digunakan untuk meminta operasi pada data di luar pengambilan data dasar.

Mengembalikan

Daftar IEnumerable baris data.

Pengecualian

Objek SqlDataSource tidak dapat membuat koneksi dengan sumber data yang mendasar.

Contoh

Contoh berikut menunjukkan cara memanggil Select metode secara terprogram dan mengatur nilai berdasarkan hasil kueri. Contoh berikut menunjukkan kode deklaratif untuk kontrol Web.

<asp:SqlDataSource 
    ID="SqlDataSource1" 
    runat="server" 
    ConnectionString="<%$ ConnectionStrings:ConnectionString %>" 
    SelectCommand="SELECT Count(*) FROM [Products] WHERE ([ReorderLevel] > 0)">
</asp:SqlDataSource>
<asp:Label 
    ID="Label1" 
    runat="server" 
    Text="">
</asp:Label>
<br />
<asp:Button 
    ID="Button1" 
    Text="Check Reorder Status" 
    runat="server" 
    onclick="Button1_Click" />
<asp:SqlDataSource 
    ID="SqlDataSource1" 
    runat="server" 
    ConnectionString="<%$ ConnectionStrings:ConnectionString %>" 
    SelectCommand="SELECT Count(*) FROM [Products] WHERE ([ReorderLevel] > 0)">
</asp:SqlDataSource>
<asp:Label 
    ID="Label1" 
    runat="server" 
    Text="">
</asp:Label>
<br />
<asp:Button 
   ID="Button1" 
   Text="Check Reorder Status" 
   runat="server" 
   onclick="Button1_Click" />

Contoh berikut menunjukkan cara memanggil Select metode secara terprogram. Kontrol SqlDataSource mengembalikan bilangan bulat. Nilai bilangan bulat digunakan untuk mengatur teks Label kontrol dan untuk menentukan apakah akan menampilkan HyperLink kontrol.

protected void CheckReorderStatus()
{
    DataView dv = (DataView)SqlDataSource1.Select(DataSourceSelectArguments.Empty);
    int reorderedProducts = (int)dv.Table.Rows[0][0];
    if (reorderedProducts > 0)
    {
        Label1.Text = "Number of products on reorder: " + reorderedProducts;
    }
    else
    {
        Label1.Text = "No products on reorder.";
    }
}

protected void Button1_Click(object sender, EventArgs e)
{
    CheckReorderStatus();
}
Protected Sub CheckReorderStatus()
    Dim dv As DataView
    Dim reorderedProducts As Integer

    dv = CType(SqlDataSource1.Select(DataSourceSelectArguments.Empty), DataView)
    reorderedProducts = CType(dv.Table.Rows(0)(0), Integer)
    If (reorderedProducts > 0) Then
        Label1.Text = "Number of products on reorder: " & reorderedProducts
    Else
        Label1.Text = "No products on reorder."
    End If
End Sub

Protected Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs)
    CheckReorderStatus()
End Sub

Keterangan

Metode Select ini secara otomatis dipanggil selama PreRender fase siklus hidup halaman. Ini dipanggil oleh kontrol terikat data yang telah dilampirkan ke SqlDataSource kontrol melalui properti mereka DataSourceID .

Metode Select mengembalikan DataView objek jika DataSourceMode properti diatur ke DataSet nilai . Metode Select mengembalikan IDataReader objek jika DataSourceMode properti diatur ke DataReader nilai . IDataReader Tutup objek setelah Anda selesai membaca data.

Select Sebelum operasi dilakukan, metode dipanggil OnSelecting untuk menaikkan Selecting peristiwa. Anda dapat menangani peristiwa ini untuk memeriksa nilai parameter dan melakukan pemrosesan apa pun sebelum Select operasi.

Select Setelah operasi selesai, OnSelected metode dipanggil untuk menaikkan Selected peristiwa. Anda dapat menangani peristiwa ini untuk memeriksa nilai pengembalian dan kode kesalahan apa pun dan untuk melakukan pasca-pemrosesan.

DataSourceMode Jika properti diatur ke SqlDataSourceMode.DataSet dan penembolokan diaktifkan, SqlDataSource objek mengambil data dari dan menyimpan data ke cache selama Select operasi. Cache dibuat, dibuang, atau disegarkan berdasarkan perilaku penembolokan yang ditentukan oleh kombinasi CacheDuration properti dan CacheExpirationPolicy .

Penting

Saat Anda menggunakan peniruan klien di bawah autentikasi Microsoft Windows, data di-cache saat pengguna pertama mengakses data. Jika pengguna lain meminta data yang sama, data diambil dari cache. Data tidak diambil dengan melakukan panggilan lain ke database untuk memverifikasi akses pengguna ke data. Jika Anda mengharapkan lebih dari satu pengguna mengakses data, dan Anda ingin setiap pengambilan data diverifikasi oleh konfigurasi keamanan untuk database, jangan gunakan penembolokan.

DataSourceMode Jika properti diatur ke SqlDataSourceMode.DataSet dan FilterExpression properti telah ditentukan, ekspresi filter dievaluasi dengan properti yang disediakan FilterParameters dan filter yang dihasilkan diterapkan ke daftar data selama Select operasi.

Metode Select ini mendelegasikan ke Select metode SqlDataSourceView objek yang terkait dengan SqlDataSource kontrol. Untuk melakukan operasi pengambilan data, SqlDataSourceView menyusun DbCommand objek dengan menggunakan SelectCommand teks dan nilai terkait SelectParameters , lalu menjalankan terhadap database yang mendasar DbCommand .

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