Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
tarafından Scott Mitchell
Bu eğitimde, DAL ve BLL'mize tek bir giriş parametresini kabul eden ve veri döndüren bir yöntem eklemeye bakacağız. Örnek, bu parametreyi programlı olarak ayarlayacaktır.
Giriş
Önceki öğreticide gördüğümüz gibi, parametre değerlerini ObjectDataSource'un yöntemlerine bildirimli olarak geçirmek için bir dizi seçenek mevcuttur. Örneğin, parametre değeri sabit kodlanmışsa, sayfadaki bir Web denetiminden geliyorsa veya bir veri kaynağı Parameter nesnesi tarafından okunabilen başka bir kaynakta bulunuyorsa, bu değer bir kod satırı yazmadan giriş parametresine bağlanabilir.
Bununla birlikte, parametre değerinin yerleşik veri kaynağı Parameter nesnelerinden biri tarafından henüz hesaba katılmamış bir kaynaktan geldiği zamanlar olabilir. Sitemiz kullanıcı hesaplarını destekliyorsa, parametreyi şu anda oturum açmış olan ziyaretçinin Kullanıcı Kimliğine göre ayarlamak isteyebiliriz. Ya da parametre değerini, ObjectDataSource'un temel alınan nesnesinin yöntemine göndermeden önce özelleştirmemiz gerekebilir.
ObjectDataSource'un Select yöntemi her çağrıldığında, ObjectDataSource önce Selecting olayını yükseltir. Daha sonra ObjectDataSource'un temel alınan nesnesinin yöntemi çağrılır. Bu işlem tamamlandıktan sonra ObjectDataSource'un Selected olayı tetiklenir (Şekil 1'de bu olay dizisi gösterilmektedir). ObjectDataSource'un temel alınan nesnesinin yöntemine geçirilen parametre değerleri, olay için bir olay işleyicisinde ayarlanabilir veya özelleştirilebilir Selecting .
Şekil 1: ObjectDataSource'un ve Selected OlaylarıSelecting, Temel Alınan Nesnenin Yöntemi Çağrılmadan Önce ve Sonra Tetiklenir (Tam boyutlu görüntüyü görüntülemek için tıklayın)
Bu eğitimde, DAL ve BLL'mize tek bir giriş parametresi Monthkabul eden ve belirtilen türde int işe alım yıldönümü EmployeesDataTableolan çalışanlarla doldurulmuş bir Month nesne döndüren bir yöntem eklemeye bakacağız. Örneğimiz, bu parametreyi geçerli aya göre programlı olarak ayarlayacak ve "Bu Ay Çalışan Yıldönümleri" listesini gösterecektir.
Haydi başlayalım!
Adım 1: Bir Yöntem EklemeEmployeesTableAdapter
İlk örneğimiz için, belirli bir ayda gerçekleşen çalışanları HireDate almak için bir araç eklememiz gerekiyor. Bu işlevselliği mimarimize uygun olarak sağlamak için öncelikle uygun SQL deyimiyle eşleşen bir yöntem EmployeesTableAdapter oluşturmamız gerekiyor. Bunu gerçekleştirmek için, Northwind Yazılan Veri Kümesi'ni açarak başlayın. Etikete sağ tıklayın ve Sorgu Ekle'yi EmployeesTableAdapter seçin.
Şekil 2: Yeni Bir Sorgu Ekle EmployeesTableAdapter (Tam boyutlu görüntüyü görüntülemek için tıklayın)
Satır döndüren bir SQL deyimi eklemeyi seçin. Specify a SELECT Statement (Bir Deyim Belirtin) ekranına ulaştığınızda, için SELECT varsayılan EmployeesTableAdapter deyim zaten yüklenmiş olacaktır. Basitçe şu WHERE maddeyi ekleyin: WHERE DATEPART(m, HireDate) = @Month.
DATEPART, bir datetime türün belirli bir tarih bölümünü döndüren bir T-SQL işlevidir; bu örnekte sütunun DATEPART ayını döndürmek için kullanıyoruzHireDate.
Şekil 3: Yalnızca Sütunun HireDate Parametreden @HiredBeforeDate Küçük veya Parametreye Eşit Olduğu Satırları Döndür (Tam boyutlu görüntüyü görüntülemek için tıklayın)
Son olarak, ve FillBy yöntem adlarını sırasıyla ve GetDataByolarak FillByHiredDateMonth değiştirinGetEmployeesByHiredDateMonth.
Şekil 4: ve FillBy Değerinden Daha Uygun Yöntem Adları Seçin GetDataBy (Tam boyutlu görüntüyü görüntülemek için tıklayın)
Sihirbazı tamamlamak ve Veri Kümesi'nin tasarım yüzeyine dönmek için Son'a tıklayın. Artık EmployeesTableAdapter belirli bir ayda işe alınan çalışanlara erişmek için yeni bir yöntem kümesi içermelidir.
Şekil 5: Yeni Yöntemler Veri Kümesinin Tasarım Yüzeyinde Görünüyor (Tam boyutlu görüntüyü görüntülemek için tıklayın)
Adım 2: Yöntemi İş Mantığı Katmanına EklemeGetEmployeesByHiredDateMonth(month)
Uygulama mimarimiz iş mantığı ve veri erişim mantığı için ayrı bir katman kullandığından, belirli bir tarihten önce işe alınan çalışanları almak için BLL'mize DAL'a çağrı yapan bir yöntem eklememiz gerekiyor.
EmployeesBLL.cs Dosyayı açın ve aşağıdaki yöntemi ekleyin:
[System.ComponentModel.DataObjectMethodAttribute
(System.ComponentModel.DataObjectMethodType.Select, false)]
public Northwind.EmployeesDataTable GetEmployeesByHiredDateMonth(int month)
{
return Adapter.GetEmployeesByHiredDateMonth(month);
}
Bu sınıftaki diğer yöntemlerimizde olduğu gibi, GetEmployeesByHiredDateMonth(month) basitçe DAL'ı çağırır ve sonuçları döndürür.
3. Adım: İşe Alım Yıldönümü Bu Ay Olan Çalışanları Görüntüleme
Bu örnek için son adımımız, işe alım yıldönümü bu ay olan çalışanları göstermektir. Klasördeki ProgrammaticParams.aspx sayfaya bir GridView BasicReporting ekleyerek başlayın ve veri kaynağı olarak yeni bir ObjectDataSource ekleyin. ObjectDataSource'u EmployeesBLL , olarak ayarlanmış sınıfı SelectMethod kullanacak şekilde GetEmployeesByHiredDateMonth(month)yapılandırın.
Şekil 6: Sınıfı Kullanma EmployeesBLL (Tam boyutlu görüntüyü görüntülemek için tıklayın)
Şekil 7: Yöntemden GetEmployeesByHiredDateMonth(month) Seç (Tam boyutlu görüntüyü görüntülemek için tıklayın)
Son ekran, parametre değerinin kaynağını sağlamamızı month ister. Bu değeri programlı olarak ayarlayacağımız için Parameter source'u varsayılan None seçeneğine ayarlı bırakın ve Finish'e tıklayın.
Şekil 8: Parametre Kaynağını Yok Olarak Bırakın (Tam boyutlu görüntüyü görüntülemek için tıklayın)
Bu, ObjectDataSource Parameter koleksiyonunda belirtilen bir değere sahip olmayan bir SelectParameters nesne oluşturur.
<asp:ObjectDataSource ID="ObjectDataSource1" runat="server"
OldValuesParameterFormatString="original_{0}"
SelectMethod="GetEmployeesByHiredDateMonth" TypeName="EmployeesBLL">
<SelectParameters>
<asp:Parameter Name="month" Type="Int32" />
</SelectParameters>
</asp:ObjectDataSource>
Bu değeri programlı olarak ayarlamak için, ObjectDataSource'un olayı için bir olay işleyicisi Selecting oluşturmamız gerekir. Bunu yapmak için Tasarım görünümüne gidin ve ObjectDataSource'a çift tıklayın. Alternatif olarak, ObjectDataSource'u seçin, Özellikler penceresine gidin ve şimşek simgesini tıklayın. Ardından, olayın yanındaki Selecting metin kutusuna çift tıklayın veya kullanmak istediğiniz olay işleyicisinin adını yazın.
Şekil 9: Bir web denetiminin olaylarını listelemek için Özellikler penceresindeki şimşek simgesine tıklayın
Her iki yaklaşım da ObjectDataSource'un Selecting olayı için sayfanın arka plan kod sınıfına yeni bir olay işleyicisi ekler. Bu olay işleyicisinde, etiketteki özniteliğin e.InputParameters[parameterName] değeri olan 'parameterNameyi kullanarak Nameparametre değerlerini okuyabilir ve yazabiliriz (<asp:Parameter>koleksiyon, 'deki InputParametersgibi sıralı olarak da dizine e.InputParameters[index] eklenebilir). Parametreyi month geçerli aya ayarlamak için, olay işleyicisine Selecting aşağıdakileri ekleyin:
protected void ObjectDataSource1_Selecting
(object sender, ObjectDataSourceSelectingEventArgs e)
{
e.InputParameters["month"] = DateTime.Now.Month;
}
Bu sayfayı bir tarayıcı aracılığıyla ziyaret ettiğimizde, bu ay (Mart) yalnızca bir çalışanın işe alındığını görebiliriz: 1994'ten beri şirkette olan Laura Callahan.
Şekil 10: Bu Ayın Yıldönümleri Gösterilen Çalışanlar (Tam boyutlu görüntüyü görüntülemek için tıklayın)
Özet
ObjectDataSource'un parametrelerinin değerleri genellikle bir kod satırı gerektirmeden bildirimli olarak ayarlanabilirken, parametre değerlerini programlı olarak ayarlamak kolaydır. Tek yapmamız gereken, temel alınan nesnenin yöntemi çağrılmadan önce tetiklenen ObjectDataSource Selecting olayı için bir olay işleyicisi oluşturmak ve koleksiyon aracılığıyla bir veya daha fazla parametrenin değerlerini el ile ayarlamaktır InputParameters .
Bu eğitim, Temel Raporlama bölümünü sonlandırır. Sonraki öğretici, ziyaretçinin verileri filtrelemesine ve bir ana rapordan ayrıntılar raporuna detaya gitmesine olanak tanıyan tekniklere bakacağımız Filtreleme ve Master-Details Senaryoları bölümünü başlatır.
Mutlu Programlama!
Yazar Hakkında
Yedi ASP/ASP.NET kitabının yazarı ve 4GuysFromRolla.com kurucusu Scott Mitchell, 1998'den beri Microsoft Web teknolojileriyle çalışmaktadır. Scott bağımsız bir danışman, eğitmen ve yazar olarak çalışır. Son kitabı Sams Teach Yourself ASP.NET 24 Hours 2.0'dır. Ona adresinden mitchell@4GuysFromRolla.comulaşabilirsiniz.
Özel Teşekkürler
Bu eğitim serisi, birçok yararlı kişi tarafından incelendi. Bu öğreticinin baş gözden geçireni Hilton Giesenow oldu. Yaklaşan MSDN makalelerimi gözden geçirmek istiyor musunuz? Öyleyse, mitchell@4GuysFromRolla.com'a bir mesaj bırakın.
Değerinden Küçük veya Ona Eşit Olduğu Satırları Döndür" no-loc" dir="ltr" lang="en-us" data-linktype="relative-path">