Kontrol sumber data berinteraksi dengan kontrol terikat data dan menyembunyikan proses pengikatan data yang kompleks. Ini adalah alat yang menyediakan data ke kontrol terikat data dan mendukung pelaksanaan operasi seperti menyisipkan, menghapus, dan memperbarui.
Setiap kontrol sumber data menggabungkan penyedia data khusus yang terkait dengan database, file XML, atau kelas khusus, dan membantu:
Kelola koneksi
Pilih data
Kelola aspek presentasi seperti paging, caching, dll.
Memanipulasi data
Ada banyak kontrol sumber data yang tersedia di ASP.NET untuk memperoleh data dari server SQL, server ODBC atau OLE DB, dari file XML, dan dari objek bisnis.
Berdasarkan tipe datanya, kontrol ini dapat dibagi menjadi dua kategori:
Kontrol sumber data berlapis
Kontrol sumber data berbasis tabel
Kontrol sumber data untuk data hierarki adalah:
XMLDataSource - Memungkinkan pengikatan file dan string XML dengan atau tanpa informasi skema.
SiteMapDataSource - Memungkinkan pengikatan penyedia yang menyediakan informasi peta situs.
Kontrol sumber data yang digunakan untuk data tabel adalah:
Kontrol sumber data | menggambarkan |
---|---|
SqlDataSource | Ini mewakili koneksi ke penyedia data ADO.NET yang mengembalikan data SQL, termasuk sumber data yang tersedia melalui OLEDB dan QDBC. |
Sumber Data Objek | Ini memungkinkan pengikatan objek bisnis .Net khusus yang mengembalikan data |
Sumber Linqdata | Ini memungkinkan pengikatan hasil kueri Linq-t0-SQL. (Hanya didukung oleh ASP.NET 3.5) |
AksesDataSource | Ini mewakili koneksi ke database Microsoft Access. |
Tampilan sumber data adalah objek kelas DataSourceView, yang mewakili tampilan data khusus yang dirancang untuk berbagai operasi data seperti pengurutan, pemfilteran, dll.
Kelas DataSourceView digunakan sebagai kelas dasar untuk semua kelas tampilan sumber data dan menentukan performa kontrol sumber data.
Tabel berikut menyediakan properti kelas DataSourceView:
milik | menggambarkan |
---|---|
Dapat Menghapus | Menunjukkan apakah penghapusan sumber data potensial diperbolehkan. |
Bisa Memasukkan | Menunjukkan apakah akan mengizinkan penyisipan sumber data potensial. |
Halaman Bisa | Menunjukkan apakah paging sumber data potensial diperbolehkan. |
DapatMengambilTotalRowCount | Menunjukkan apakah informasi baris total dapat diperoleh. |
Bisa Sortir | Menunjukkan apakah data dapat diurutkan. |
Dapat Memperbarui | Menunjukkan apakah pembaruan diperbolehkan pada sumber data potensial. |
Acara | Mendapatkan daftar pengendali kejadian yang diwakili oleh tampilan sumber data. |
Nama | Nama tampilan. |
Tabel berikut menyediakan metode kelas DataSourceView:
metode | menggambarkan |
---|---|
Bisa Eksekusi | Tentukan apakah perintah yang ditentukan dapat dijalankan. |
Jalankan Perintah | Jalankan perintah yang ditentukan. |
JalankanHapus | Melakukan operasi penghapusan pada daftar data yang diwakili oleh objek DataSourceView. |
Jalankan Sisipkan | Melakukan operasi penyisipan pada daftar data yang diwakili oleh objek DataSourceView. |
JalankanPilih | Dapatkan daftar data dari penyimpanan data pokok. |
Jalankan Pembaruan | Melakukan operasi pembaruan pada daftar data yang diwakili oleh objek DataSourceView. |
Menghapus | Melakukan operasi penghapusan pada data yang terkait dengan tampilan. |
Menyisipkan | Melakukan operasi penyisipan pada data yang terkait dengan tampilan. |
Memilih | Mengembalikan data yang ditanyakan. |
Memperbarui | Melakukan operasi pembaruan pada data yang terkait dengan tampilan. |
OnDataSourceViewBerubah | Naikkan acara DataSourceViewChanged. |
NaikkanKesalahan Kemampuan Tidak Didukung | Dipanggil dengan metode RaiseUnsupportedCapabilitiesError untuk membandingkan kemampuan yang diperlukan oleh operasi ExecuteSelect dengan kemampuan yang didukung oleh tampilan. |
Kontrol SqlDataSource mewakili koneksi ke database terkait seperti database SQL Server atau Oracle, atau ke data yang dapat diakses melalui OLEDB atau Open Database Connectivity (ODBC). Koneksi data diselesaikan melalui dua properti penting: ConnectionString dan ProviderName.
Cuplikan kode berikut menyediakan sintaks dasar kontrol:
<asp:SqlDataSource runat="server" ID="MySqlSource" ProviderName='<%$ ConnectionStrings:LocalNWind.ProviderName %>' ConnectionString='<%$ ConnectionStrings:LocalNWind %>' SelectionCommand= "SELECT * FROM EMPLOYEES" /><asp:GridView ID="GridView1" runat="server" DataSourceID="MySqlSource" />
Mengonfigurasi operasi data yang berbeda pada data pokok bergantung pada properti (kumpulan properti) yang berbeda dari kontrol sumber data.
Tabel berikut menyediakan kumpulan properti terkait dari kontrol SqlDataSource, yang menyediakan antarmuka pemrograman kontrol:
kelompok atribut | menggambarkan |
---|---|
DeleteCommand,DeleteParameters,DeleteCommandType | Mendapatkan atau menyetel pernyataan SQL, parameter, dan tipe baris yang akan dihapus dalam data pokok. |
FilterEkspresi,FilterParameter | Mendapatkan dan menyetel string dan parameter pemfilteran data. |
SisipkanPerintah,SisipkanParameter,SisipkanTipePerintah | Mendapatkan atau menyetel pernyataan SQL, parameter, dan tipe baris yang dimasukkan ke dalam data pokok. |
PilihPerintah,PilihParameter,PilihJenisPerintah | Mendapatkan atau menyetel pernyataan SQL, parameter, dan tipe baris yang diambil dari data pokok. |
NamaParameter Sortir | Mendapatkan atau menetapkan nama parameter input yang akan digunakan oleh perintah prosedur tersimpan untuk mengurutkan data. |
UpdateCommand,UpdateParameters,UpdateCommandType | Mendapatkan atau menyetel pernyataan SQL, parameter, dan tipe baris yang diperbarui dalam data pokok. |
Cuplikan kode berikut memperlihatkan kontrol sumber data yang dapat digunakan untuk melakukan operasi data:
<asp:SqlDataSource runat="server" ID= "MySqlSource" ProviderName='<%$ ConnectionStrings:LocalNWind.ProviderName %>' ConnectionString=' <%$ ConnectionStrings:LocalNWind %>' SelectCommand= "SELECT * FROM EMPLOYEES" UpdateCommand= "UPDATE EMPLOYEES SET LASTNAME=@lame" DeleteCommand= "DELETE FROM EMPLOYEES WHERE EMPLOYEEID=@eid" FilterExpression= "EMPLOYEEID > 10"> ..... .....</asp:SqlDataSource>
Kontrol ObjectDataSource memungkinkan kelas yang ditentukan pengguna untuk menghubungkan output metode mereka ke kontrol terikat data. Antarmuka pemrograman kelas ini hampir sama dengan kontrol SqlDataSource.
Berikut ini adalah dua aspek penting dalam mengikat objek pelanggan:
Kelas yang dapat diikat harus memiliki konstruktor default, tidak memiliki kewarganegaraan, dan memiliki metode yang memetakan untuk memilih, memperbarui, menyisipkan, dan menghapus semantik.
Objek harus diperbarui satu per satu, operasi batch tidak didukung.
Mari langsung ke contoh penggunaan kontrol ini. Kelas siswa adalah kelas yang digunakan dengan objek sumber data. Kelas ini memiliki tiga atribut: id siswa, nama, dan kota. Ia memiliki konstruktor default dan metode GetStudents yang mengambil data.
kelas siswa:
public class Student{ public int StudentID { get; set; } public string Name { get; set; } public string City { get; set; } public Student() { } public DataSet GetStudents() { DataSet ds = new DataSet(); DataTable dt = new DataTable("Students"); dt.Columns.Add("StudentID", typeof(System.Int32)); dt.Columns.Add("StudentName", typeof(System.String)); dt.Columns.Add("StudentCity", typeof(System.String)); dt.Rows.Add(new object[] { 1, "MH Kabir", "Calcutta" }); dt.Rows.Add(new object[] { 2, "Ayan J. Sarkar", "Calcutta" }); ds.Tables.Add(dt); return ds; }}
Lakukan langkah-langkah berikut untuk mengikat kabel ke objek sumber data dan mengambil data:
Buat halaman web baru.
Tambahkan kelas (Student.cs) ke proyek Solution Explorer dengan mengklik kanan kelas tersebut, menambahkan templat kelas, dan menempatkan kode di atas di dalamnya.
Tetapkan metode sehingga aplikasi dapat menggunakan referensi ke kelas.
Tempatkan objek kontrol sumber data di formulir web.
Konfigurasikan sumber data dengan memilih objek.
Pilih metode data untuk operasi data yang berbeda. Dalam contoh ini, hanya ada satu metode.
Tempatkan kontrol terikat data seperti tampilan kisi pada halaman dan pilih objek sumber data sebagai sumber data potensial.
Pada tahap ini, tampilan desain akan terlihat seperti ini:
Menjalankan proyek, ia mengambil leluhur yang di-hardcode di kelas siswa.
Kontrol AccessDataSource mewakili koneksi ke database Access. Ini didasarkan pada kontrol SqlDataSource dan menyediakan antarmuka pemrograman yang lebih sederhana. Cuplikan kode berikut menyediakan sintaks dasar sumber data:
<asp:AccessDataSource ID="AccessDataSource1 runat="server" DataFile="~/App_Data/ASPDotNetStepByStep.mdb" SelectCommand="SELECT * FROM [DotNetReferences]"></asp:AccessDataSource>
Kontrol AccessDataSource membuka database dalam mode baca-saja. Namun, ini juga dapat digunakan untuk melakukan operasi penyisipan, pembaruan, atau penghapusan. Hal ini dicapai dengan menggunakan perintah ADO.NET dan set parameter.
Pembaruan bermasalah untuk database Access dalam aplikasi ASP.NET karena database Access adalah teks biasa dan akun aplikasi ASP.NET default mungkin memiliki izin menulis ke file database.