Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
oleh Scott Mitchell
Dalam tutorial ini kita akan melihat menambahkan metode ke DAL dan BLL kita yang menerima parameter input tunggal dan mengembalikan data. Contohnya akan mengatur parameter ini secara terprogram.
Pendahuluan
Seperti yang kita lihat di tutorial sebelumnya, sejumlah opsi tersedia untuk meneruskan nilai parameter secara deklaratif ke metode ObjectDataSource. Jika nilai parameter dikodekan secara permanen, berasal dari kontrol Web di halaman, atau berada di sumber lain yang dapat dibaca oleh objek sumber Parameter
data, misalnya, nilai tersebut dapat terikat ke parameter input tanpa menulis baris kode.
Namun, mungkin ada kalanya nilai parameter berasal dari beberapa sumber yang belum diperhitungkan oleh salah satu objek sumber Parameter
data bawaan. Jika situs kami mendukung akun pengguna, kami mungkin ingin mengatur parameter berdasarkan ID Pengguna dari pengunjung yang saat ini masuk. Atau kita mungkin perlu menyesuaikan nilai parameter sebelum mengirimkannya ke metode objek dasar ObjectDataSource.
Setiap kali metode ObjectDataSource Select
dipanggil, ObjectDataSource pertama kali memunculkan peristiwa Pemilihan. Metode objek dasar ObjectDataSource kemudian dipanggil. Setelah proses itu selesai, peristiwa Selected dari ObjectDataSource akan diaktifkan (Gambar 1 mengilustrasikan urutan peristiwa ini). Nilai parameter yang diteruskan ke metode objek dasar ObjectDataSource dapat diatur atau dikustomisasi dalam penanganan aktivitas untuk peristiwa tersebut Selecting
.
Gambar 1: Acara dalam ObjectDataSource Selected
dan Selecting
Terpicu Sebelum dan Sesudah Metode dari Objek Dasar Dipanggil (Klik untuk melihat gambar ukuran penuh)
Dalam tutorial ini kita akan melihat cara menambahkan metode ke DAL dan BLL kita yang menerima parameter Month
input tunggal, dari jenis Integer
dan menghasilkan objek EmployeesDataTable
yang diisi dengan karyawan yang memiliki ulang tahun perekrutan mereka dalam Month
yang ditentukan. Contoh kami akan mengatur parameter ini secara terprogram berdasarkan bulan ini, memperlihatkan daftar "Employee Anniversaries This Month."
Mari kita mulai!
Langkah 1: Menambahkan Metode keEmployeesTableAdapter
Untuk contoh pertama kami, kami perlu menambahkan cara untuk memperoleh karyawan yang HireDate
terjadi dalam bulan tertentu. Untuk menyediakan fungsionalitas ini sesuai dengan arsitektur kami, kita perlu terlebih dahulu membuat metode dalam EmployeesTableAdapter
yang memetakan ke pernyataan SQL yang tepat. Untuk mencapai hal ini, mulailah dengan membuka Himpunan Data Jenis Northwind. Klik kanan pada EmployeesTableAdapter
label dan pilih Tambahkan Kueri.
Gambar 2: Tambahkan Kueri Baru ke EmployeesTableAdapter
(Klik untuk menampilkan gambar ukuran penuh)
Pilih untuk menambahkan pernyataan SQL yang mengembalikan baris. Saat Anda mencapai layar Tentukan Pernyataan SELECT
, pernyataan default SELECT
untuk EmployeesTableAdapter
sudah akan dimuat. Cukup tambahkan klausa WHERE
: WHERE DATEPART(m, HireDate) = @Month
.
DATEPART adalah fungsi T-SQL yang mengembalikan bagian tanggal tertentu dari datetime
jenis; dalam hal ini kita menggunakan DATEPART
untuk mengembalikan bulan HireDate
kolom.
Gambar 3: Kembalikan hanya baris di mana kolom HireDate
kurang dari atau sama dengan parameter @HiredBeforeDate
(Klik untuk melihat gambar ukuran penuh)
Terakhir, ubah FillBy
nama metode dan GetDataBy
menjadi FillByHiredDateMonth
dan GetEmployeesByHiredDateMonth
, masing-masing.
Gambar 4: Pilih Nama Metode yang Lebih Sesuai Daripada FillBy
dan GetDataBy
(Klik untuk melihat gambar ukuran penuh)
Klik Selesai untuk menyelesaikan wizard dan kembali ke permukaan desain DataSet.
EmployeesTableAdapter
sekarang harus menyertakan serangkaian metode baru untuk mengakses karyawan yang dipekerjakan dalam bulan tertentu.
Gambar 5: Metode Baru Muncul di Permukaan Desain Himpunan Data (Klik untuk melihat gambar ukuran penuh)
Langkah 2: MenambahkanGetEmployeesByHiredDateMonth(month)
Metode ke Lapisan Logika Bisnis
Karena arsitektur aplikasi kami menggunakan lapisan terpisah untuk logika bisnis dan logika akses data, kita perlu menambahkan metode ke BLL kita yang memanggil ke DAL untuk mengambil karyawan yang dipekerjakan sebelum tanggal yang ditentukan.
EmployeesBLL.vb
Buka file dan tambahkan metode berikut:
<System.ComponentModel.DataObjectMethodAttribute _
(System.ComponentModel.DataObjectMethodType.Select, False)> _
Public Function GetEmployeesByHiredDateMonth(ByVal month As Integer) _
As Northwind.EmployeesDataTable
Return Adapter.GetEmployeesByHiredDateMonth(month)
End Function
Seperti metode kami yang lain di kelas ini, GetEmployeesByHiredDateMonth(month)
cukup memanggil DAL dan mengembalikan hasilnya.
Langkah 3: Menampilkan Karyawan yang Hari Jadi Perekrutannya Adalah Bulan Ini
Langkah terakhir kami untuk contoh ini adalah menampilkan karyawan yang hari jadi perekrutannya bulan ini. Mulailah dengan menambahkan GridView ke ProgrammaticParams.aspx
halaman di BasicReporting
folder dan tambahkan ObjectDataSource baru sebagai sumber datanya. Konfigurasikan ObjectDataSource untuk menggunakan kelas EmployeesBLL
dengan pengaturan SelectMethod
ke GetEmployeesByHiredDateMonth(month)
.
Gambar 6: Gunakan EmployeesBLL
Kelas (Klik untuk melihat gambar ukuran penuh)
Gambar 7: Pilih Dari GetEmployeesByHiredDateMonth(month)
metode (Klik untuk melihat gambar ukuran penuh)
Layar akhir meminta kami untuk memberikan month
sumber nilai parameter. Karena kita akan mengatur nilai ini secara terprogram, biarkan Sumber parameter diatur ke opsi Tidak Ada default dan klik Selesai.
Gambar 8: Biarkan Sumber Parameter Diatur ke Tidak Ada (Klik untuk melihat gambar ukuran penuh)
Ini akan membuat Parameter
objek dalam koleksi ObjectDataSource SelectParameters
yang tidak memiliki nilai yang ditentukan.
<asp:ObjectDataSource ID="ObjectDataSource1" runat="server"
OldValuesParameterFormatString="original_{0}"
SelectMethod="GetEmployeesByHiredDateMonth" TypeName="EmployeesBLL">
<SelectParameters>
<asp:Parameter Name="month" Type="Int32" />
</SelectParameters>
</asp:ObjectDataSource>
Untuk mengatur nilai ini secara terprogram, kita perlu membuat penanganan aktivitas untuk peristiwa ObjectDataSource Selecting
. Untuk mencapai hal ini, buka tampilan Desain dan klik dua kali ObjectDataSource. Atau, pilih ObjectDataSource, buka jendela Properti, dan klik ikon petir. Selanjutnya, klik dua kali di kotak teks di samping Selecting
peristiwa atau ketik nama penanganan aktivitas yang ingin Anda gunakan. Sebagai opsi ketiga, Anda dapat membuat penanganan aktivitas dengan memilih ObjectDataSource dan peristiwanya Selecting
dari dua daftar drop-down di bagian atas kelas code-behind halaman.
Gambar 9: Klik Ikon Lightning Bolt di Jendela Properti untuk Mencantumkan Peristiwa Kontrol Web
Ketiga pendekatan menambahkan penanganan aktivitas baru untuk peristiwa ObjectDataSource Selecting
ke kelas kode di belakang halaman. Dalam penanganan aktivitas ini kita dapat membaca dan menulis ke nilai parameter menggunakan e.InputParameters(parameterName)
, di mana parameterName
adalah nilai Name
atribut dalam <asp:Parameter>
tag ( InputParameters
koleksi juga dapat diindeks secara biasa, seperti dalam e.InputParameters(index)
). Untuk mengatur month
parameter ke bulan saat ini, tambahkan yang berikut ini ke penanganan Selecting
kejadian:
Protected Sub ObjectDataSource1_Selecting _
(sender As Object, e As ObjectDataSourceSelectingEventArgs) _
Handles ObjectDataSource1.Selecting
e.InputParameters("month") = DateTime.Now.Month
End Sub
Ketika mengunjungi halaman ini melalui browser kita dapat melihat bahwa hanya satu karyawan yang dipekerjakan bulan ini (Maret) Laura Callahan, yang telah bersama perusahaan sejak 1994.
Gambar 10: Karyawan yang Hari Jadinya Bulan Ini Ditampilkan (Klik untuk melihat gambar ukuran penuh)
Ringkasan
Meskipun nilai parameter ObjectDataSource biasanya dapat diatur secara deklaratif, tanpa memerlukan baris kode, mudah untuk mengatur nilai parameter secara terprogram. Yang perlu kita lakukan adalah membuat penanganan aktivitas untuk peristiwa ObjectDataSource Selecting
, yang diaktifkan sebelum metode objek yang mendasar dipanggil, dan secara manual mengatur nilai untuk satu atau beberapa parameter melalui InputParameters
koleksi.
Tutorial ini menyimpulkan bagian Pelaporan Dasar. Tutorial berikutnya memulai bagian Pemfilteran dan skenario Master-Details, di mana kita akan melihat teknik untuk memungkinkan pengunjung memfilter data dan menelusuri paling detail dari laporan master ke dalam laporan detail.
Selamat Pemrograman!
Tentang Penulis
Scott Mitchell, penulis tujuh buku ASP/ASP.NET dan pendiri 4GuysFromRolla.com, telah bekerja sama dengan teknologi Microsoft Web sejak 1998. Scott bekerja sebagai konsultan, pelatih, dan penulis independen. Buku terbarunya adalah Sams Teach Yourself ASP.NET 2.0 dalam 24 Jam. Dia dapat dijangkau di mitchell@4GuysFromRolla.com.
Ucapan terima kasih khusus kepada
Seri tutorial ini ditinjau oleh banyak peninjau yang bermanfaat. Peninjau prospek untuk tutorial ini adalah Hilton Giesenow. Tertarik untuk meninjau artikel MSDN saya yang akan datang? Jika demikian, hubungi saya di mitchell@4GuysFromRolla.com.