Professional Documents
Culture Documents
Nete Giri 01010100001010101010111001010110111010101 00001010101010111FFF 10101010111001010110111010101000010101010 10111001010110111010101000010101010101110 01010110111010101000010101010101110010101 10111010101000010101010101110010101101110 10101000010101010101110010101101110101010 00010101010101110010101101110101010000101
r.Gr.Ferhat BUYUKKALKAN
INETA MEA / DeveloperMania.Net Teknik Lider & Editr Nisan 2011
Ferhat BUYUKKALKAN
ASP.Nete Giri
ASP.Nete Giri
ASP.Nete Giri ve Temel Konular Standart Kontroller ve Kullanmlar Validation Kontrolleri Navigation Kontrolleri Hata Yakalama Master Page Web User Control Web.Config Verileri Ynetmek
1|Sayfa
ASP.Nete Giri
Ferhat BUYUKKALKAN
indekiler
NSZ ............................................................................................................................................................................................................................................... 3 Yazar Hakknda ................................................................................................................................................................................................................................. 9 Balan Aamasndaki Kitaplarm .............................................................................................................................................................................................. 9 ASP.Net Nedir?................................................................................................................................................................................................................................ 10 Nelere htiya Duyarz?................................................................................................................................................................................................................ 10 ASP.Net ile lk Web Uygulamamz. .............................................................................................................................................................................................. 11 Standart Kontroller ......................................................................................................................................................................................................................... 14 Button .......................................................................................................................................................................................................................................... 14 Label ............................................................................................................................................................................................................................................ 15 Literal ........................................................................................................................................................................................................................................... 15 Textbox ........................................................................................................................................................................................................................................ 15 Link Button .................................................................................................................................................................................................................................. 17 Image Button ............................................................................................................................................................................................................................... 17 DropDownList .............................................................................................................................................................................................................................. 17 Listbox.......................................................................................................................................................................................................................................... 20 Checkbox ..................................................................................................................................................................................................................................... 22 CheckBoxList ................................................................................................................................................................................................................................ 25 Radiobutton ................................................................................................................................................................................................................................. 27 RadiobuttonList ........................................................................................................................................................................................................................... 29 FileUpload.................................................................................................................................................................................................................................... 32 4|Sayfa
Ferhat BUYUKKALKAN
ASP.Nete Giri
Calendar ...................................................................................................................................................................................................................................... 34 Multiview ve View ....................................................................................................................................................................................................................... 35 Wizard ......................................................................................................................................................................................................................................... 38 Validation Kontrolleri ..................................................................................................................................................................................................................... 39 RequiredFieldValidator ................................................................................................................................................................................................................ 40 RangeValidator............................................................................................................................................................................................................................ 41 RegularExpressionValidator ........................................................................................................................................................................................................ 41 CompareValidator ....................................................................................................................................................................................................................... 42 ValidationSummary ..................................................................................................................................................................................................................... 43 CustomValidator.......................................................................................................................................................................................................................... 43 DynamicValidator ........................................................................................................................................................................................................................ 43 Navigation Kontrolleri .................................................................................................................................................................................................................... 44 SiteMapPath ................................................................................................................................................................................................................................ 44 Treeview ...................................................................................................................................................................................................................................... 47 Menu ........................................................................................................................................................................................................................................... 51 Data Kontrolleri .............................................................................................................................................................................................................................. 59 AccessDataSource ....................................................................................................................................................................................................................... 59 SqlDataSource ............................................................................................................................................................................................................................. 71 XmlDataSource ............................................................................................................................................................................................................................ 85 Hata Yakalama ............................................................................................................................................................................................................................... 93 Try, Catch, Finally ........................................................................................................................................................................................................................ 93 Master Page .................................................................................................................................................................................................................................... 96 5|Sayfa
ASP.Nete Giri
Ferhat BUYUKKALKAN
Master Page Nedir? Nasl Kullanlr? ........................................................................................................................................................................................... 96 Web User Control Nedir? Nasl Kullanlr? ................................................................................................................................................................................. 105 Web. Config................................................................................................................................................................................................................................... 107 Web Config ile Veritabanna Balanma .................................................................................................................................................................................... 108 Verileri Ynetmek ......................................................................................................................................................................................................................... 111 ADO.Net Nedir? ......................................................................................................................................................................................................................... 111 ADO.Neti Kullanmak ................................................................................................................................................................................................................. 112 Connection Object(Balant Nesnesi) .................................................................................................................................................................................... 112 Command Object(Komut Nesnesi) ........................................................................................................................................................................................ 113 DataReader Object(DataReader Nesnesi) ............................................................................................................................................................................. 113 DataAdapter Object(DataAdapter Nesnesi) .......................................................................................................................................................................... 113 Veritabanna Erimek ve Kullanmak .......................................................................................................................................................................................... 117 Blogsa Nedir? ................................................................................................................................................................................................................................ 136 Blogsa'y nternet Sitenize Kurmak stiyorsanz ......................................................................................................................................................................... 136 Blogsa'y Bilgisayarnza Kurmak stiyorsanz ............................................................................................................................................................................ 137 DeveloperMania.Net .................................................................................................................................................................................................................... 139 DeveloperMania.Net ne anlatyor ? ......................................................................................................................................................................................... 139 Kaynaklar ...................................................................................................................................................................................................................................... 143
6|Sayfa
ASP.Nete Giri
ASP.Net Nedir?
ASP.Net Server-Side(Sunucu tarafl) web uygulamalar gelitirebileceimiz. Netin salad zelliklerin ouna eriebilen bir platformdur. Ne kadar adn ASPden alm olsa da tamamen sfrdan retilmitir.
10 | S a y f a
Ferhat BUYUKKALKAN stteki resim Microsoftun gelitirmi olduu .Net Platformunun son srm Microsoft Visual Studio 2010un Balang Sayfas.
ASP.Nete Giri
11 | S a y f a
ASP.Nete Giri
Orta ksmdan ASP.Net Web Site seili duruma getirerek OK tuuyla ASP.Net Web Uygulamamz oluturalm. Projemiz oluturulduunda sol tarafta Toolbox, Sa tarafta Solution Explorer ve Properties sekmesi yer almaktadr. Orta ksmda ise gelitirmekte olduumuz Web Uygulama dosyamzn Design ksm yer almaktadr.
12 | S a y f a
Ferhat BUYUKKALKAN
ASP.Nete Giri
stersek Dosyamz sadece kod, sadece tasarm ve hem kod hem tasarm ksmn ayn anda grebiliriz. Bunun iin Sayfamzn alt ksmnda yer alan konum sekmesini kullanabiliriz.
Split seenei Visual Studio 2005 ve nceki srmlerde bulunmamaktadr. lk olarak Visual Studio 2008de kullanlmaya baland. Visual studio 2010 RCde de grebilirsiniz bu seenei.
13 | S a y f a
ASP.Nete Giri
Standart Kontroller
Bu blmde Web Uygulamalarmzda kullanacamz Standart Kontrolleri inceleyeceiz. NOT: Kontrolleri kullanabilmeniz iin web uygulamanzn ierisindeki sayfanza srkleyerek brakmanz gerekmektedir.(rn: Aadaki grafikteki gibi)
Button
Button Kontrol, Tetikleme zelliine sahiptir. Bir form ierisindeki kontrollerin tetiklenerek bir baka sayfaya gnderilmesini salayan ok kullanl bir kontroldr. zellikleri ise aadaki gibidir; Text: Buttonun zerindeki yazy kontrol etmektedir. Verilen deer Button zerinde gzkecektir. Enable: Buttonun kilitlenmesini salayan zelliktir. Deeri False olduunda Button pasif hale gelir ve tetikleme gereklemez. Textbox kontrolmzdeki uygulamada Button kontrolnn ilevini daha iyi kavrayacaksnz.
14 | S a y f a
Ferhat BUYUKKALKAN
ASP.Nete Giri
Label
Kullanclara mesaj iletmek iin kullanlan olduka kullanl bir kontroldr.
zellikleri ise; Font: Kontrolmzn Font ayarlarn dzenlememizi salamaktadr. ForeColor: Kontrolmzn Yaz rengini ayarlamamz salar. Visible: Kontrolmzn Gizlenmesini salar. Gizli olabilmesi iin False deerini almas gerekir. BackColor: Kontrolmzn Arka plan rengini belirler. Hexedecimal Renk kodlarnn dnda rengin ngilizce karl da yazlabilir (rn: Red) CssClass: Oluturmu olduumuz stil sayfalarmzdaki Classlar kontrolmz ile ilikilendirebiliriz. Text: Kontrolmze varsaylan bir deer atamak iin kullanlr. Kullancya yansyan yaz burada belirlenir.
Literal
Labelden tek fark, daha uzun veriler gsterebilir ve performans Labele gre daha yksektir.
Kullanm Label ile ayndr, Properties ierisinde pek fazla zellii bulunmamaktadr. zellikleri aadaki gibidir; Visible: Kontrolmzn Gizlenmesini salar. Gizli olabilmesi iin False deerini almas gerekir. Text: Kontrolmze varsaylan bir deer atamak iin kullanlr. Kullancya yansyan yaz burada belirlenir.
Textbox
Genellikle kullancdan bilgi almak iin kullanlr. nternet sitelerinde ye girii iin kullanlan ey yaygn kontroldr.
Her kontrolde olduu gibi Textbox kontrolnde de zellikler vardr. Bunlar aadaki gibidir; Text: Kontrolmzn ierisine varsaylan bir deer atamak iin kullanlr. 15 | S a y f a
ASP.Nete Giri TextMode: Bu zellik ise Kontrolmzn hangi tipte olaca belirtmektedir. Bu zelliimiz adet tipi ngrmektedir (SingleLine, MultiLine ve Password). Bu tiplere ileriki konularmzda deineceiz. MaxLength: Kontrolmze maksimum girilecek karakter saysn belirlemektedir. Enable: Kontrolmzn kilitlenmesini salayan zelliktir. Deeri False olduunda Bilgi girii yaplamaz. Basit bir uygulama yapalm; Bir web uygulamas oluturalm ve sayfamzn ierisine bir adet Textbox bir adet Literal ve bir adet de Button ekleyelim.Buttona tkladmzda Literal kontrolmze Textboxn text zelliini aktaralm.
stteki grafikte grm olduunuz gibi Literal kontrolmze Textboxmzn textini aktaryoruz.Uygulamamz Build edip altralm.
16 | S a y f a
Ferhat BUYUKKALKAN
ASP.Nete Giri
Link Button
Adndan anlalaca gibi Link Button, Neredeyse Button ile ayndr. Tek fark zerinde link verilebilmesidir. Click zelliine kodumuza yazarak ynlendirme yapabiliriz.
Image Button
Link Button ile arasnda tek fark, Image Buttonda Link yerine Resim olmasdr. Olduka kullanl bir kontroldr. Resim seebilmek iin Properties penceresinden ImageURL zelliini kullanmanz gerekiyor.
DropDownList
Bu kontrolmz gelimi web sitelerinin ounda kullanlmaktadr. Genellikle ehir, ya aral, cinsiyet, kategori ve eitli listelemeler yapmak iin kullanlr.
Veritabanndan verilerin ekilip listelenebilecei gibi, manel olarak da veriler girilip listene bilir.
17 | S a y f a
ASP.Nete Giri
Yukardaki resimde grnd gibi, Edit Items ile verilerimizi manel olarak ekleyebiliriz. Enable AutoPostBack: Bu seenek DropDownList ierisinden veri seildiinde otomatik olarak sayfa tetiklenecektir. Choose Data Source: Bu seenekte, DropDownList ierisine bir veritabanna balanp veri ekmek iin kullanlr. Edit Items: Manel olarak veri giriini salar. Bir web uygulamas oluturalm ve sayfamza bir adet DropDownList ve bir adet de Literal kontrol ekleyelim.
18 | S a y f a
Ferhat BUYUKKALKAN
ASP.Nete Giri
19 | S a y f a
ASP.Nete Giri Enable AutoPostBack zelliini check ediyoruz. Nedeni ise DropDownListten semi olduumuz veriyi Literal kontrolmzde gsterecegiz. imdi DropDownList kontrolmze ift tklayalm ve DropDownList1_SelectedIndexChanged ierisine aadaki gibi kodlarmz yazalm.
Literal kontrolmzn Text zelliine DropDownList de seilen veriyi aktardk. Uygulamamz Build edip altralm.
Listbox
DropDownList ile arasndaki tek fark, Listboxun ak halde gzkmesidir. DropDownListteki ou zellik Listboxta da ayndr.
Basit bir uygulama yapalm; Bir web uygulamas oluturalm ve sayfamzn ierisine bir adet Listbox, bir adet de Literal kontrol ekleyelim.
20 | S a y f a
Ferhat BUYUKKALKAN
ASP.Nete Giri
Verilerimizi Edit Item ksmndan manel olarak girelim ve Enable AutoPostBack seeneini check edelim. Listboxmzdan seilen verinin valuesini Literal kontrolmzn Text zelliine aktaralm. imdi Listbox kontrolmze ift tklayalm ve ListBox1_SelectedIndexChanged ierisine aadaki gibi kodlarmz yazalm.
Ksaca zetlemek gerekirse Listboxdan semi olduumuz verinin valuesini Integer veri tipine dntryoruz ve string.Format ile formata uygun ayralayarak dndryoruz.Uygulamamz build edip altralm.
21 | S a y f a
ASP.Nete Giri
Checkbox
Checkbox, kullancdan bilgi almak iin kullanlan bir kontroldr. Formlarda genellikle birden fazla seim yapmak iin kullanlr. rnein: Kullancnn hangi elektronik eyalara sahip olduunu renmek istediimizde Checkbox ile bunu zebiliriz.
zellikleri ise aadaki gibidir; Checked: Kontrolmzn altrldnda iaretli veya bo olmasn belirleyen seenektir. aretli olmas iin deeri True olmas gerekmektedir. Text: Kontrolmze varsaylan bir deer atamak iin kullanlr. Kullancya yansyan yaz burada belirlenir. Enabled: Kontrolmzn aktif veya pasif olmasn belirler. Deer False olduunda kontrol pasifleir. Basit bir uygulama yapalm; Bir web uygulamas oluturalm ve sayfamzn ierisine iki adet Checkbox, bir adet de DropDownList kontrol ekleyelim.
22 | S a y f a
Ferhat BUYUKKALKAN
ASP.Nete Giri
23 | S a y f a
DropDownListte seilen verinin Value deerini Interger veri tipine eviriyoruz ve kontrol yaps (if..else) ile ilemimizi gerekletiriyoruz. Uygulamamz build edip altralm.
24 | S a y f a
Ferhat BUYUKKALKAN
ASP.Nete Giri
CheckBoxList
Checkboxtan tek fark, manel olarak birden fazla giri yaplabilir ve giri yaplan verileri liste halinde gsterir. Manel olarak giri yaplabildii gibi veritabanndan da kaytlar ekilerek listelenebilir.
Enable AutoPostBack: Bu seenek CheckBoxList ierisinden veri seildiinde otomatik olarak sayfa tetiklenecektir. Choose Data Source: Bu seenekte, CheckBoxList ierisine bir veritabanna balanp veri ekmek iin kullanlr. Edit Items: Manel olarak veri giriini salar.
Basit bir uygulama yapalm; Bir web uygulamas oluturalm ve sayfamzn ierisine bir adet Checkboxlist, bir adet Literal kontrol ekleyelim.
CheckBoxList kontrolmzde sadece isimleri ekledik. Nedeni, seilen ismin soyismini Literal kontrolmzn Text zelliine atayacaz. Enable AutoPostBack zelliini check edelim. CheckBoxList kontrolmze ift tklayalm ve ierisine aadaki kodlarmz yazalm.
25 | S a y f a
ASP.Nete Giri
Ksaca zetlemek gerekirse, CheckBoxListde seilen verinin Value deerini Integer veri tipine eviriyoruz ve kontrol yaps (if..else) ile ilemimizi gerekletiriyoruz. CheckBoxList ierisindeki herhangi bir veri seildiinde direk olarak tm checkler kalkyor ve Literal kontrolmze verilerimizi atyoruz. Uygulamamz Build edip altralm.
26 | S a y f a
Ferhat BUYUKKALKAN
ASP.Nete Giri
Radiobutton
Checkboxtan tek fark, birden fazla seilememesidir. Genellikle kullancdan cinsiyet, medeni durum vb. bilgileri almak iin kullanlr. zellikleri Checkbox ile ayndr.
Basit bir uygulama yapalm; Bir web uygulamas oluturalm ve sayfamzn ierisine iki adet Radiobutton, bir adet Literal ve birde Button kontrol ekleyelim.
Kullancnn cinsiyetini sorgulamak iin basit bir form oluturabilirsiniz. Buttona ift tklayarak ierisine aadaki kodlar yazalm.
27 | S a y f a
ASP.Nete Giri
Ksaca zetlemek gerekirse, RadioButtonlarmzn hangisinin seili olduunu belirliyoruz ilk nce daha sonra ise Literal kontrolmze cinsiyeti atyoruz. Ardndan RadioButtonlardaki Checkleri kaldryoruz. Uygulamamz Build edip altralm.
28 | S a y f a
Ferhat BUYUKKALKAN
ASP.Nete Giri
RadiobuttonList
CheckBoxListden tek fark birden fazla seilememesidir. Radiobuttondan fark ise manel olarak birden fazla giri yaplabilir ve giri yaplan verileri liste halinde gsterilir olmasdr. Manel olarak giri yaplabildii gibi veritabanndan da kaytlar ekilerek listelenebilir.
zellikleri CheckBoxList ile ayndr. Basit bir uygulama yapalm; Bir web uygulamas oluturalm ve sayfamzn ierisine bir adet RadioButtonList, bir adet Literal kontrol ekleyelim.
29 | S a y f a
ASP.Nete Giri
imdi ise RadioButtonList kontrolmze ift tklayalm ve ierisine aadaki kodlarmz yazalm.
30 | S a y f a
Ferhat BUYUKKALKAN
ASP.Nete Giri
Ksaca zetlemek gerekirse, RadioButtonList ierisinden seilen veriyi tespit ediyoruz ve Literal kontrolmze aktarma yapyoruz. Uygulamamz Build edelim ve altralm.
31 | S a y f a
ASP.Nete Giri
FileUpload
FileUpload kontrol adndan da anlalaca gibi servera dosya yollamaya yaramaktadr. Olduka kullanl olan bu kontrolmz basit bir uygulama ile inceleyelim;
Bir Web Uygulamas oluturarak sayfamza bir adet FileUpload kontrol ve bir adet Button ekleyelim.
32 | S a y f a
Ferhat BUYUKKALKAN
ASP.Nete Giri
FileUpload.Hasfile: Dosyann seilip seilmediini kontrol ediyoruz. F..Else ile dosyamz seilmi mi seilmemi mi kontrol ediyoruz.Eer dosya seildiyse dosyamz uygulamamzn bulunduu klasre kayt ediyoruz ve sayfaya Yklendi yazdryoruz, durum tam tersi ise yani dosya seilmemise ekrana Yklenemedi yazdryoruz.Sayfamz altralm.
33 | S a y f a
ASP.Nete Giri
Dosyamz setik ve ykle Buttonuna bastk, Yklendi uyarmz aldk bakalm dosyamz klasrmze yklenmi mi?
Calendar
Calendar Kontrol, adndan da anlalaca gibi bir takvim kontroldr, web uygulamamza takvim ekleyebilmemizi salar. Olduka kullanl bir kontroldr.
Temel birka zelliinden bahsedecek olursak; DayNameFormat: Takvimdeki gnlerin nasl yazlacan belirler (rn: Oca, ub, Mar) ShowDayHeader: Takvimdeki gnlerin gizlenmesini salar, deer False olursa gnler gizlenir. SelectedDate: Sayfa altrldnda, SelectedDate ierisindeki tarih seili durumda olacaktr. Bo ise varsaylan tarih O gn olur. 34 | S a y f a
Ferhat BUYUKKALKAN Auto Format: Takvim Kontrolnn stilini, Auto Format ile deitirebilirsiniz.
ASP.Nete Giri
Multiview ve View
Multiview ve View Kontrolleri ASP.Net 2.0 ile gelen olduka kullanl kontrollerdir. Multiview ve View iki ayr kontrol gibi gzkse de bir btn gibidirler. View ierisinde kontrolleri barndran bir Container grevini stlenmektedir. Sayfada var olan fakat gsterilmesini istemediimiz durumlarda kullanlabilir. Multiview ve View kontrolleri sunucu tarafl kontroller olduu iin Visibility durumunu ynetirler. HTML olarak <ASP: Multiview> ve <ASP: View> olarak grnrler. Viewler hibir zaman yalnz bana kullanlamazlar.
35 | S a y f a
ASP.Nete Giri
36 | S a y f a
Ferhat BUYUKKALKAN
ASP.Nete Giri
Bir Multiview Kontrol bir defada sadece bir View grntleyebilmektedir. Viewlerin aktif olabilmesi iin ActiveViewIndex durumunun aktif hale gelmesi gerekmektedir. Basit bir rnekle inceleyelim;
Yukardaki resimde grm olduunuz gibi Viewler Multiviewin ierisine eklenmektedir ve Viewleri tetikleyici butonlar yer almaktadr. Viewler tetiklenmedii srece hibir zaman almayacaklardr. Buttonlarmza ift tklayarak kodlarmz yazalm.
37 | S a y f a
ASP.Nete Giri ActiveViewIndex ile Multiview ierisindeki hangi Viewimizin aktif hale gelmesini istiyorsak o Viewin id numaralarn veriyoruz.
Wizard
Gelimi web sitelerine baktnzda, kullancdan bilgi alnrken adm adm ilerleyerek bilgiler alnyor. Peki, bu nasl yaplyor? Bu sorunun cevab Wizardda gizli ASP.Net 2.0 ile gelen olduka kullanl bir kontrol olan Wizard hemen hemen her ASP.Net web projesinde kullanlyor.Kontrolmz basit bir rnekle inceleyelim. Bir Wizard Kontrol ekleyelim sayfamza ve ierisine form nesneleri ekleyerek kullancdan bilgi alalm ardndan bunlar ekrana yazdralm.
Finish butonuna ift tklayarak sayfa post edildiinde yaplacak ilemler iin kodlarmz yazmaya balayalm. lk olarak form nesnelerimizden gelen verileri alarak Literal kontrolmz kullanp ekrana yazdralm.
Uygulamamz altralm. Bilgilerimizi girip Son butonuna tkladmzda, Literal Kontrollerimize veriler atanacak.
38 | S a y f a
Ferhat BUYUKKALKAN
ASP.Nete Giri
Wizard Kontrolmzn zelliklerine bakacak olursak; FinishCompleteButtonText: Kontrolmzn son admnda yer alan ve sayfann tetiklenmesini salayan Buttonun zerinde yazacak yazy belirler. FinishCompleteButtonType: FinishCompleteButtonumuzun hangi tipte gzkeceini belirler.(Button, Image, Link) ActiveStepIndex: Sayfamz altrldnda. Kontroln ilk hangi admdan balayacan belirler. Deer saysal olarak verilir, Varsaylan deer ise sfrdr.(lk adm deeri sfrdr.) Styles: Bu bir stil sekmesidir. erisinde yer alan zellikleri kullanarak Wizard Kontrolmzn stilini kiiselletirebiliriz. Height: Kontrolmzn yksekliini belirler, deerler px veya em olarak verilir. Width: Kontrolmzn geniliini belirler, deerler px veya em olarak verilir. Auto Format: Wizard Kontrolnn stilini, Auto Format ile deitirebilirsiniz. Step: Bu seenek ise DropDownList ierisinde gsterilmektedir. Semi olduunuz adm n plana getirecektir. Bunu direk olarak adm ismine tklayarak da gerekletirebilirsiniz.
Validation Kontrolleri
Bir projenizde veya basit bir iletiim formu hazrladnzda en ok karlaacanz sorunlarn banda, formata uygun verilerin girilmemesi ve bo brakmalar. Bu tr sorunlarn nne geebilmek iin satrlarca kod yazarsnz. ASP uygulamalar yapanlar bilirler, bir Textbox etkileim sayfasna bo geliyor ise o kullancy geri ayn sayfaya ynlendiririz veya bir uyar yazs gsteririz. Fakat bunun bir yolu daha var.
39 | S a y f a
ASP.Nete Giri
Validation Kontrolleri, Form nesneleri zerinde ilemi tamamladmzda kendini aktifletiren bir yapya sahiptir. rnek olarak bir Textbox ierisindeki verinin istenilen aralkta m? , Metinsel mi? Saysal m? Bo mu geildi? Ve daha birok ilemi yaptrabilmekteyiz. Basit bir uygulama ile Validation Kontrolmz inceleyelim. Ben daha nce bir form hazrladm. Bu formu Validation Kontrollerini kullanarak denetleyeceiz.
RequiredFieldValidator
Bu kontrol Form nesnelerimizin bo geilip geilmediini denetlemek iin kullanlr. Her Form nesnesi iin ayr ayr RequiredFieldValidator eklemek gerekmektedir.
40 | S a y f a
Ferhat BUYUKKALKAN
zelliklerine bakacak olursak;
ASP.Nete Giri
Dislayp: seenek iermektedir: Static, Dinamic, None Bu seenekleri kullanarak kontroln hata mesajn gsterip veya saklayabilirsiniz. ErrorMessage: sminden de anlald gibi hata mesaj, Kontrol aktif hale geldiinde ekrana kacak hata mesaj. ControlToValidate: Bu seenek ise hangi form nesnesi zerinde denetleme yapacan belirtmektedir.
RangeValidator
Bu Kontrol bir Form nesnesinin belirlenen aralk ierisinde olup olmadn denetlemek iin kullanlr. Propertiesden MaximumValue ve MinumumValue olarak deerler verilir. Bu deerler Double, String, nteger, Date, Currency tipinde olabilir.
zelliklerine bakacak olursak; Dislayp, ErrorMessage, ControlToValidate zellikleri yukardaki gibi. MaximumValue: Form Nesnesine verilebilecek maksimum deeri gstermektedir. Bu deerden yksek bir say girildiinde RangeValidator kontrol aktif hale gelir. MinumumValue: Bu seenek ise Form nesnesine verilebilecek minimum deeri gstermektedir. Bu deerden dk bir say girildiinde RangeValidator kontrol aktif hale gelir. Type: Bu seenek ise Form nesnesi ierisindeki verinin hangi tipte alglanacan belirtmektedir. Farkl bir tipte veri girildiinde RangeValidator kontrol aktif hale gelir.
RegularExpressionValidator
Bu kontrol Form nesnelerinden girilen bilginin bizim ayarlarmza uygun olup olmadn denetlemek iin kullanlr. Genellikle bu kontrol E-mail adreslerinin doru giriip girilmediini denetlemek iin kullanrlar. Tabi ki sadece bunla snrl deil birok denetleme zellii var. RegularExpressionValidator kontroln bir form nesnesi ile etkileim haline getirebilmek iin Properties panelini kullanalm.
41 | S a y f a
ASP.Nete Giri
zelliklerine bakacak olursak; Dislayp, ErrorMessage, ControlToValidate zellikleri yukardaki gibi ValidationExpression: Bu zellik bizim vereceimiz ayarlar gstermektedir. Bu ayarlar dnda bir veri girildiinde RegularExpressionValidator aktif hale gelir. erisinde nternet E-Mail Address, nternet URL v.b birok ayar yer almaktadr. Var olan Standart Expressionslar dnda bizde kendi Expressionumuzu yazabiliriz. Bunun iin Standart Expression Listbox mensnden Customu semeliyiz ve Validation Expression kutucuunu kullanmalyz. (nternet E-Mail Address : \w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)* ) bu ekildedir.
CompareValidator
Bu Kontrol iki form nesnesinin birbiri ile uyuup uyumadn denetlemektedir.
zelliklerine bakacak olursak; Dislayp, ErrorMessage zellikleri yukardaki gibi ControlToCompare: Bu seenek iki form nesnesinin ilk nesnesini belirtmektedir. kinci nesne bu nesne baz alnarak denetlenir. ControlToValidate: Bu seenek ise ikinci form nesnesini belirtir. ControlToComparedeki veri ile eletirme yaplr. Eer eitlik salanmaz ise CompareValidator kontrol aktif hale gelir. Type: Bu seenek ise Form nesnesi ierisindeki verinin hangi tipte alglanacan belirtmektedir. Farkl bir tipte veri girildiinde RangeValidator kontrol aktif hale gelir.
42 | S a y f a
Ferhat BUYUKKALKAN
ASP.Nete Giri
ValidationSummary
Bu Kontrol Form nesnelerini denetleyen Validation Kontrollerinin tamamn gstertmek iin kullanlr. Yukarda belirtmi olduumuz 4 adet Validation Kontrolnde Dislayp seenei bulunmaktadr. Bu seenek ierisinde yer alan None kk. Kontrollerin kendi ierisinde gzkmemesini ve ierisindeki ErrorMessageyi ValidationSummarye gndermesini salayacaktr. Bu kontrolde olduka kullanl bir kontroldr. Eklendikten sonra hibir Properties ayar yaplmaz ValidationSummaryde. Otomatik olarak Dislayp=None olan Kontrolleri ekecektir.
CustomValidator
Bu Kontrol Validation iin kendi kodumuzu yazmamza olanak tanr.
DynamicValidator
Bu Kontrol Dinamik olarak Validation retmemizi salar.
Hazrlam olduumuz rnek uygulamay altralm ve ekran ktsn hep beraber inceleyelim.
43 | S a y f a
ASP.Nete Giri
Ekran ktsnda da grdnz gibi uyumayan form nesneleri iin hata mesajlar kt ekrana. Fark ettiyseniz sayfa post edilmiyor. Validation Kontrollerinin en nemli zellii de bu olsa gerek
44 | S a y f a
Ferhat BUYUKKALKAN
ASP.Nete Giri
SiteMapPath, ASP.Net 2.0 ile gelen olduka Kullanl bir kontroldr.Basit bir rnekle kontrolmz inceleyelim; Bir ASP.Net Web Projesi oluturarak, projemizin ierisine aadaki grafikte olduu gibi sayfalar oluturalm.
Sayfalarmz stteki grafikte olduu gibi grnmektedir. Add New Item seeneine tklayarak karmza gelen pencereden Web.Sitemap oluturalm.
45 | S a y f a
ASP.Nete Giri Web.Sitemap dosyamz XML tabanl esnek bir yapya sahiptir. zelliklerini inceleyelim; SiteMap: SiteMapPath Kontrolne gnderilecek olan verilerin saklanaca etikettir. erisinde SiteMapNode etiketi alarak var olan sayfalar belirtilir. SiteMapNode: stteki zellikte de belirttiimiz gibi sayfalarmz belirtmek iin kullandmz etikettir. Alt kategori grubu ekleyebilmek iin SiteMapNode etiketini kapatmadan nce ierisinde tekrar bir Site MapNode etiketi alr. Url: Bu zellik sayfamzn tklandnda nereye ynleneceini belirtir.(rn: anasayfa.aspx) Title: Adndan da anlalaca gibi balk grevi grmektedir. Ekranda grnecek balk burada belirlenir. Description: Bu zelliimiz ise aklama satrdr. Sayfa ile ilgili bilgiyi buraya ksaca buraya girebilirsiniz.Bu bilgi yaynlanacak olan linkin Alt zelliinde gzkecektir. Bilgilerimizi uygulamamzdaki sayfalara gre dolduralm.
Web.Sitemap sayfamzdaki verilerimizi sayfamza nasl ekeriz ? SiteMapPath kontrolmz burada bu ilemi gerekletirebilmek iin kullanacaz ve zelliklerine deineceiz. Sayfamza SiteMapPath Kontrol ekleyelim.
46 | S a y f a
Ferhat BUYUKKALKAN
ASP.Nete Giri
stteki grafikte grdnz gibi, SiteMapPath Kontroln eklediimizde Web.sitemap dosyasndaki veriler otomatik olarak ekiliyor ve Kontrol ekilleniyor.Sayfamz altralm.
Taraycmzda grnen SiteMapPath kontrol bu ekildedir. Kontrolmzn temel birka zelliini inceleyelim; PathSeparator: Sayfalarmz hiyerarik bir dzende gsterirken, Sayfalar arasnda kullandmz karakter tipidir. Biz uygulamamzda / (Slash) karakterini kullandk. Sizler uygulamalarnzda istediiniz karakteri kullanabilirsiniz. PathDirection: Sayfalarmz sadan sola veya soldan saa olarak yaynlayabilmemizi salar. ki seenek ierir CurrentToRoot(alt dizinden ana dizine)ve RootToCurrent (ana dizinden alt dizine) CurrentToRoot: Bu seenek Soldan saa yaynlamaktadr. RootToCurrent: Bu seenek ise Sadan Sola yaynlamaktadr ve varsaylan seenek budur.
Treeview
Treeview, ASP.Net 2.0 ile gelen ve gayet kullanl olan bu kontrol, XML tabanl veri kaynaklarna ait bilgilerin hiyerarik bir yapda gstermemizi salayacaktr. Treeview, Web.SiteMap dosyasn bir veri kaynana balanmadan gremez. SiteMapPath ise tam tersine sayfaya eklendiinde otomatik olarak alglar. Basit bir uygulama ile kontrolmz inceleyelim; Uygulamamz oluturalm ve sayfalarmz hazrlayalm.
47 | S a y f a
ASP.Nete Giri
Bir Ana Sayfa(Default.aspx), Fiyatlar(fiyatlar.aspx),Listeler(listeler.aspx),rnler(urunler.aspx) ve bir de Web.SiteMap dosyamz var. Web.SiteMap dosyamz uygulamamzdaki sayfalara gre dizayn edelim;
48 | S a y f a
Ferhat BUYUKKALKAN stteki grafikte yer alan etiketlerin aklamalar SiteMapPath kontrolnde yer almaktadr. imdi sayfamza Treeview kontrolmz ekleyelim.
ASP.Nete Giri
Sayfamza Treeview kontroln ekledik, isterseniz Auto Format kullanarak tasarm grafikteki gibi deitirebilirsiniz. Treeview kontrol Web.SiteMap dosyasn otomatik olarak alglayamad iin SiteMapDataSource yardm ile Web.SiteMapi Treeviewe balayacaz.
SiteMapDataSourceyi sayfamza eklediimizde otomatik olarak Web.SiteMap dosyamz alglar. imdi SiteMapDataSourcemizi Treeviewe tantalm.
49 | S a y f a
ASP.Nete Giri
Choose Data Source ile SiteMapDataSourceyi tanmlyoruz. Ardndan Treeview kontrolmze baktmzda Web.SiteMap dosyamzn ierisindeki verilerin ekilmi olduunu greceksiniz. Treeview Tasks ierisinde yer alan Show Lines seenei ne ie yarar o konuya deinelim biraz; Show Lines: Bu seenek seili olduunda Treeview kontrol sayfalar aras hatlar gsteriyor.aadaki grafie baktnzda daha iyi anlayacaksnz.
50 | S a y f a
Ferhat BUYUKKALKAN
ASP.Nete Giri
Show Lines seenei seili durumda olduunda Hatlarn belirginleiyor. Treeview kontrolmzn baz zelliklerini inceleyerek konumuzu sonlandralm; ShowCheckBoxes: Bu zelliimiz Treeview kontrolnn Nodelarnda checkbox kullanabilmemizi salamaktadr.Be seenekten birini semek zorundasnz None: Bu zellii kullanmayacaksanz bu kk kullanmalsnz. Root: Bu ise ana dizini belirtir yani bizim uygulamamzda Ana Sayfann ba ksmna ekleyecektir. Parent: Burada ise bir alt kategoride ilem yaplmaktadr bizim uygulamamzda Listelerin ba ksmna ekleyecektir. Leaf: Burada ise en alt kategoride ilem yaplmaktadr. Bizim uygulamamzda rnler ve Fiyatlarn ba ksmna ekleyecektir. All: Adndan da anlalaca gibi hepsinde kullanlr.
Menu
Menu Kontrol, ASP.Net 2.0 ile gelen olduka kullanl bir kontroldr.Web uygulamalarnda ska kullanlan bu kontrol Web.Sitemap ve XML dosyasndan veri ekebildii gibi manel olarak da veri eklenebilmektedir. Basit bir uygulama ile kontrolmz inceleyelim; 51 | S a y f a
ASP.Nete Giri Bir Web Uygulamas oluturalm ve sayfamza bir adet Menu kontrol ekleyelim.
Menu kontrolmzn sa st tarafnda bulunan oka tkladmzda karmza ayarlamalarn yapld ufak bir panel alyor.Srasyla zellikleri inceleyelim; Auto Format: Kontrolmzn taraycmzda hangi stilde grneceini ayarladmz ksm. Choose Data Source: Kontrolmze bir veritabanndan veri ekmek iin kullanlan ksmdr. Edit Menu Items: Bu ksmda kontrolmze manel olarak veri girii yapabiliriz. Views: Bu ksmda ise kontrolmzn Dinamik stilde mi? Yoksa Statik stilde mi? Gzkmesini ayarlarz.
52 | S a y f a
Ferhat BUYUKKALKAN
ASP.Nete Giri
stteki grafikte grm olduunuz gibi verilerimizi kontrolmze ekledik. 1. Add a Root Item olarak bilinen bu ksm kontrolmze st dizin eklememizi salyor. stteki grafikte bulunan Ana Sayfa, rnler, Hakkmzda, letiim birer st dizindir. 2. Add a Child Item olarak bilinen bu ksm kontrolmze alt dizin eklememizi salyor. stteki grafikte olduu gibi Elektronik rnler ve Ev Eyalar birer alt dizindir. 3. NavigateUrl, verimize tkladmzda gideceimiz yolu belirlemektedir. 53 | S a y f a
ASP.Nete Giri 4. Text, Ekrande grnecek yazdr. Ayarlarmz tamamladktan sonra, Uygulamamz build edip altralm.
Uygulamamz browserda grdnz gibi hatasz alt. Manel olarak veri eklemeyi grdk, imdi ise bir Site Map dosyasndan veri ekerek kontrolmze eklemeyi grelim; Uygulamamza bir adet Site Map dosyas ekleyelim.
54 | S a y f a
Ferhat BUYUKKALKAN
ASP.Nete Giri
55 | S a y f a
ASP.Nete Giri
Web.Sitemap dosyamz XML tabanl esnek bir yapya sahiptir. zelliklerini inceleyelim; SiteMap: SiteMapPath Kontrolne gnderilecek olan verilerin saklanaca etikettir. erisinde SiteMapNode etiketi alarak var olan sayfalar belirtilir. SiteMapNode: stteki zellikte de belirttiimiz gibi sayfalarmz belirtmek iin kullandmz etikettir. Alt kategori grubu ekleyebilmek iin SiteMapNode etiketini kapatmadan nce ierisinde tekrar bir Site MapNode etiketi alr. Url: Bu zellik sayfamzn tklandnda nereye ynleneceini belirtir.(rn: anasayfa.aspx) Title: Adndan da anlalaca gibi balk grevi grmektedir. Ekranda grnecek balk burada belirlenir. Description: Bu zelliimiz ise aklama satrdr. Sayfa ile ilgili bilgiyi buraya ksaca buraya girebilirsiniz. Bu bilgi yaynlanacak olan linkin Alt zelliinde gzkecektir. Bilgilerimizi uygulamamzdaki sayfalara gre dolduralm. rnek olarak Ana Sayfa, rnler, Kadromuz sayfalarmz olsun ve rnlerimiz altnda Elektronik rnler ve Dekorasyon rnleri sayfalarmz olsun. Bilgilerimizi aadaki gibi dolduralm.
56 | S a y f a
Ferhat BUYUKKALKAN
ASP.Nete Giri
Menu kontrolmze Site Map dosyasndan verileri ekerken Choose Data Source ksmn kullanyoruz.
57 | S a y f a
ASP.Nete Giri
stteki grafikte grdnz gibi iki seenek var. Bu iki seenekten birisini seebilir ve verilerinizi oradan aktarabilirsiniz. Specify an ID for the data source, Data sourcemizin IDsini gstermektedir. Otomatik olarak bir ID atanacaktr, seeneklerden birisini setiinizde, kendinize zel ID yazabilirsiniz bu ksma. Site Map seeneini seip OK tuuna bastmzda Kontrolmz otomatik olarak Site Map dosyasn alglyor ve verileri ekerek ekilleniyor. 58 | S a y f a
Ferhat BUYUKKALKAN
ASP.Nete Giri
Data Kontrolleri
Data kontrolleri veritabanna balanmak iin kullanm olduumuz kontrollerdir. Bu kontroller sayesinde bir satr bile kod yazmadan veritaban ile balant oluturabilir, verilerimizi ekebilir ve verileri istenilen kontrole aktarabiliriz.Aktarabileceimiz kontrollerin banda Gridview, Listview, Datalist v.b. gelir. Bu ksmda AccessDataSource, SqlDataSource ve XmlDataSource kontrollerine deineceim.Srasyla bu kontrollerimizi inceleyelim.
AccessDataSource
Microsoft Access veritabanna nesnel yol ile balanabilmemizi salayan kontroldr. Bir web uygulamasnda birden ok AccessDataSource kontrol kullanlabilir.
59 | S a y f a
ASP.Nete Giri Veritabann belirterek Provideri kendi oluturmaktadr. Kontroller ile bir satr kod yazmadan bile web uygulamanz tamamlayabilirsiniz. Dataset ve DataReader veri kayna modunu destekleyen AccessDataSource kontrol, Dataset ile verileri hafzasnda barndrr ve filtreleme ilemleri yaplabilir. Delete,Insert,Update gibi komutlar veri kayna zerinden gerekletirebilir. Basit bir uygulama ile Kontrolmz inceleyelim; Bir web uygulamas oluturalm ve MS Access veritabanmzn ierisine bir tablo oluturup App_data klasrmzn ierisine kayt edelim.
id Otomatik Say adi Metin yas say Olarak fieldlarmz ayarlayalm ve bir ka tane rasgele veri girii yapalm. Web uygulamamza bir adet AccessDataSource ekleyelim.
60 | S a y f a
Ferhat BUYUKKALKAN
ASP.Nete Giri
AccessDataSource kontrolmz Configure edebilmemiz iin ilk nce kontrolmzn sa st tarafnda bulunan OKa tklayarak ayar panelinin almasn salamalyz.
alan ksmdan Configure Data Source linkine tklayalm. Karmza gelen pencereden veritabanmza balant salayacak ayarlamalar yapacaz.
61 | S a y f a
ASP.Nete Giri
Configure Data Source penceresindeki Browse buttonuna bastmzda bizden bir veritaban sememizi istiyor. App_data ierisindeki developermania.mdb dosyamz seiyoruz ve ilerliyoruz.
62 | S a y f a
Ferhat BUYUKKALKAN
ASP.Nete Giri
Veritabanmzn yolu Microsoft Access data file ksmnda belirdi.Next buttonuna tklayarak ilerleyelim.
63 | S a y f a
ASP.Nete Giri Bu ksmda bizden istedii; veritabanna nasl balanmak istiyorsunuz? Numaralandrmalara gre srasyla inceleyelim
1) Specify a custom SQL Statement or Stored Procedure Bu ksm tablomuza zel olarak ayrntl bir ekilde balant kurmamz salar bu ksm seili olursa eer SQL cmleciklerimizi kendimiz yazmamz gerekecek. 2) Specify Columns From a Table or View Bu ksmda ise 1. Ksmdakilerin tam tersi SQL cmleciini bizim vermi olduumuz talimatlara gre kendi retmektedir. Bu retmi olduu cmlecii 6. Ksmda gstermektedir. 3) Name Bu ksmda Veritabanmzn ierisindeki hangi tablo ile ilem yapacamz belirtmemizi salar. Tablomuzu setiimizde otomatik olarak aadaki Columns ksmndaki fieldlarmz grnmektedir. 4) Columns Bu ksm tablomuzdaki fieldlarmz gstermektedir ve hangi field ierisindeki verileri ekmek istediimizi burada belirleriz. Bizim drt adet fieldmz vard fakat burada be adet var bunun nedeni yldz(*) seeneidir. Bu yldz seenei tablomuzdaki btn fieldlar sememizi salar. 5) Where, Order by, Advanced Bu blmdeki butonlarn ayr ayr grevleri bulunmaktadr. Where: Tablomuzda bir karlatrma yapmak istediimizde kullanrz genellikle. Bu ksm veritabanna direk olarak balant yaptmz srada pek kullanlmaz, Kullanm alanlar genelde Kategorileme, ye girii gibi uygulamalarda kullanlr.
64 | S a y f a
Ferhat BUYUKKALKAN
ASP.Nete Giri
Order by: Tablomuzdan verileri nasl bir sralama ile ekeceimizi bu ksmda belirlemekteyiz. ki seenek vardr bu ksmda fielde gre ASC(ASCENDNG) veya DESC(DESCENDNG) olmaldr. rnein: Adi fieldnda ki verileri DESC olarak sralamak istersek veriler alfabeye gre tersten sralanr.
65 | S a y f a
ASP.Nete Giri
Advanced: Bu ksmda veritabanmza bir nevi veri giri izinlerini am oluyoruz. Update(Gncelleme), Insert(Yeni Kayt), Delete(Silmek) gibi izinleri buradan verebiliriz.
66 | S a y f a
Ferhat BUYUKKALKAN
ASP.Nete Giri
6) Buras da son olarak verdiimiz talimatlarn SQL cmleciine evrilmi ksmdr. Next diyerek ilerleyelim.
67 | S a y f a
ASP.Nete Giri
Test Query buttonuna basarak veritabanmzdaki sorgumuzu test edebiliriz veya direk Finishe tklayarak veritabanna balanma ilemimizi tamamlayabiliriz. Finishe tkladmzda AccessDataSource kontrolmz Configure edilmi oluyor. imdi ise bu Data kontrolmzn ierisindeki verileri bir baka kontrole atamay greceiz. Sayfamza bir adet Gridview ekleyelim.
68 | S a y f a
Ferhat BUYUKKALKAN
ASP.Nete Giri
Gridviewimizin Choose Data Source ksmnda bulunan drop mensnden Configure etmi olduumuz Data kontrolmz seelim.
AccessDataSource kontrolmz setiimizde Gridview kendisini veritabanmza gre ekillendiriyor. Data kontrolmz Configure ederken Advanced ksmndaki seenei check ettiimiz iin Enable Editing ve Enable Deleting seenekleri aktif hale geldi. 69 | S a y f a
ASP.Nete Giri
Bu seenek sayesinde Gridview zerinden veritabanmz basitce ynetebiliriz. Uygulamamz Build edip altralm.
70 | S a y f a
Ferhat BUYUKKALKAN
ASP.Nete Giri
SqlDataSource
Microsoft SQL Server veritabanna nesnel olarak balanabilmemizi salayan kontroldr. AccessDataSourcede olduu gibi, Bir web uygulamasnda birden ok SqlDataSource kontrol kullanlabilir. Veritabanmza balanmak iin bizde bu kontrol kullanacaz.
Sayfamza srkleyerek ekelim ve brakalm. Hemen sa ksmnda bir kutucuk alyor ve Configure Data Source linki kyor. O linke tklayalm ve veritabanna balanma ilemimizi tamamlayalm
71 | S a y f a
ASP.Nete Giri
Veritabanmz DropDownList ksmnda seiyoruz ve grdnz gibi Connection String ksmnda otomatik olarak SQL Providerimizi oluturdu kendisi. Next diyerek ilerleyelim.
72 | S a y f a
Ferhat BUYUKKALKAN
ASP.Nete Giri
Karmza byle bir uyar kt, Web uygulamanz iin bir ConnectionString oluturmak istiyor musunuz? Uyarsna Yes, Save This Connection As: kutucuunu iaretleyerek Nexte basp devam edelim.
73 | S a y f a
ASP.Nete Giri
ASP.Nete Giri
1) Specify a custom SQL Statement or Stored Procedure Bu ksm tablomuza zel olarak ayrntl bir ekilde balant kurmamz salar bu ksm seili olursa eer SQL cmleciklerimizi kendimiz yazmamz gerekecek. 2) Specify Columns From a Table or View Bu ksmda ise 1. Ksmdakilerin tam tersi SQL cmleciini bizim vermi olduumuz talimatlara gre kendi retmektedir. Bu retmi olduu cmlecii 6. Ksmda gstermektedir. 3) Name Bu ksmda Veritabanmzn ierisindeki hangi tablo ile ilem yapacamz belirtmemizi salar. Tablomuzu setiimizde otomatik olarak aadaki Columns ksmndaki fieldlarmz grnmektedir. 4) Columns Bu ksm tablomuzdaki fieldlarmz gstermektedir ve hangi field ierisindeki verileri ekmek istediimizi burada belirleriz. Bizim drt adet fieldmz vard fakat burada be adet var bunun nedeni yldz(*) seeneidir. Bu yldz seenei tablomuzdaki btn fieldlar sememizi salar. 5) Where, Order by, Advanced Bu blmdeki butonlarn ayr ayr grevleri bulunmaktadr. Where: Tablomuzda bir karlatrma yapmak istediimizde kullanrz genellikle. Bu ksm veritabanna direk olarak balant yaptmz srada pek kullanlmaz, Kullanm alanlar genelde Kategorileme, ye girii gibi uygulamalarda kullanlr.
75 | S a y f a
ASP.Nete Giri
Order by: Tablomuzdan verileri nasl bir sralama ile ekeceimizi bu ksmda belirlemekteyiz. ki seenek vardr bu ksmda fielde gre ASC(ASCENDNG) veya DESC(DESCENDNG) olmaldr. rnein: Adi fieldnda ki verileri DESC olarak sralamak istersek veriler alfabeye gre tersten sralanr.
76 | S a y f a
Ferhat BUYUKKALKAN
ASP.Nete Giri
Advanced: Bu ksmda veritabanmza bir nevi veri giri izinlerini am oluyoruz. Update(Gncelleme), Insert(Yeni Kayt), Delete(Silmek) gibi izinleri buradan verebiliriz.
77 | S a y f a
ASP.Nete Giri
6) Buras da son olarak verdiimiz talimatlarn SQL cmleciine evrilmi ksmdr. Next diyerek ilerleyelim.
78 | S a y f a
Ferhat BUYUKKALKAN
ASP.Nete Giri
Buras ayarlarmz yaptmz son admdr. imdi veritaban balantmz oluturduk ve test etmeye geldi sra Test Query butonuna basarak veritabanmza doru ulaabilmi miyiz kontrol edelim. Biz tablomuza hi veri eklemediimiz iin veri kmad ekrana ama field isimleri ksa yeter bizim iin Finish diyerek sonlandralm ayarmz. imdi bu nesnemizi kullanabilmek iin bir baka nesneye ihtiya duymaktayz bu nesneler neler olabilir; Datalist olabilir. Gridview olabilir. Biz Gridview kullanalm. Sayfamza bir adet Gridview ekelim ve aadaki grafikteki gibi ilerleyelim.
79 | S a y f a
ASP.Nete Giri
Choose Data Source ksmnda oluturmu olduumuz SqlDataSource belirdi. Seiyoruz ve veritabanmza balantmz kuruyoruz. Auto Format ile Gridviewin tasarmn deitirebiliriz.
80 | S a y f a
Ferhat BUYUKKALKAN
ASP.Nete Giri
SqlDataSource kontrolmz setiimizde Gridview hemen deiti ve veritabanmzn ierisindeki fieldlar tanyarak kendini ona gre ayarlad. SqlDataSource ksmnda ayar yaparken Advanced ayarlarnda veri izinleri vermitik bu sayede Enable Paging, Sorting, Deleting, Editing, Selection seenekleri aktif hale geldi. Bu ayarlar kullanaraktan veritabann ynetmi olacaz. Bu seenekleri check ettikten sonra Gridview daha gelimi bir hale gelecektir. Enable Paging: Verileri Sayfalamaya yarar. Enable Sorting: Field isimlerine link verir ve sralamay DESC veya ASC olarak deitirmenizi salar. 81 | S a y f a
ASP.Nete Giri Enable Deleting: Adndan da anlalaca gibi veriyi siler. Enable Editing: Veriyi dzenlemeye yarar. Tkladnzda veriler textbox ierisinde aktif olarak gncellemenizi salar. Enable Selection: Veriyi semeye yarar. Peki, Yeni bir kayt nasl eklerim? ok gzel bir soru hemen anlataym; Edit Templates seeneine tklayalm.
82 | S a y f a
Ferhat BUYUKKALKAN
ASP.Nete Giri
Auto Format ksmndan tasarmn kendinize gre ayarlayabilirsiniz. Choose Data Source ksmnda ise veritaban ayarlarmz yapm olduumuz SqlDataSource seelim. Ardndan sadece veri eklemek istediimiz iin Enable Inserting seeneini check ediyoruz. Properties ayarlar ise aadaki grafikteki gibidir.
83 | S a y f a
ASP.Nete Giri
DefaultMode seeneini Insert yapmazsak, veritabanndaki veriler kutucuklarmzda yer alacaktr.Web uygulamamz Build edelim ve hata yoksa altrp test edelim.
84 | S a y f a
Ferhat BUYUKKALKAN
ASP.Nete Giri
Web uygulamamz altrdk grdnz gibi hem yeni veri ekleyebilmekteyiz hem silip hem de gncelleyebilmekteyiz. Veritabanmz data kontolleri ile bu ekilde kullanmaktayz.
XmlDataSource
XmlDataSource, XML dosyalarmza erimek ve ierisindeki verileri listelemek iin kullanlan bir data kontroldr. XmlDataSource Treeview gibi hiyerarik yapya sahip kontroller iin kullanlabilir. Data kontrolmz basit bir uygulama ile inceleyelim; Bir web uygulamas oluturalm ve uygulamamzn ierisine Add New Item ksmndan bir adet XML sayfas oluturalm.
85 | S a y f a
ASP.Nete Giri
XML dosyamzn oluturduktan sonra karmza gelen erkanguzelkucuk.xml sayfasn aadaki gibi dzenleyelim. 86 | S a y f a
Ferhat BUYUKKALKAN
ASP.Nete Giri
stteki grafikteki liste ok basit bir liste oldu. Siz kendinize gre bu listeyi dzenleyebilirsiniz. imdi XML sayfasndan verilerimizi XMLDataSource kullanarak Treeview kontrolne nasl aktaracaz onu greceiz. Sayfamza bir adet XMLDataSource kontrol ekleyelim.
XMLDataSource kontrolmzn sa st ksmnda bulunan ok simgesine tklayalm ve ayar panelimizi aalm, stteki grafikteki gibi. XMLDataSource kontrolmz Canfigure etmek iin Configure Data Source linkine tklayalm. 87 | S a y f a
ASP.Nete Giri
Configure Data Source panelimiz stteki grafikteki gibi, Data file ksm bizim XML sayfamzn yolunu yazacamz alan. Browse Buttonuna tklayalm ve XML dosyamz seelim.
88 | S a y f a
Ferhat BUYUKKALKAN
ASP.Nete Giri
89 | S a y f a
ASP.Nete Giri
Data file ksmnda XML dosyamzn yolu belirdi OK buttonuna basarak Configure Data Source ilemimizi tamamlayalm. XMLDataSource kontrolmz Treeviewde gstereceiz bu nedenle Toolboxdan sayfamza bir adet Treeview ekleyelim.
90 | S a y f a
Ferhat BUYUKKALKAN
ASP.Nete Giri
Treeview kontrolmzn sa st ksmnda bulunan OK simgesine tklayalm ve ayarlama panelimizi aalm. Choose Data Source ksmndan XMLDataSource kontrolmz seelim.
91 | S a y f a
ASP.Nete Giri XMLDataSource kontrolmz setiimizde Treeview kontrolmz ekilleniyor. Auto Format ksmndan Treeview kontrolnnn tasarmn ayarlayabilirsiniz. Uygulamamz Build edip altralm.
Show Lines seenei ise Check durumda ise Treeview ierisindeki veriler arasndaki hatlar belirgin hale geliyor.
Show Lines seeneini Check edelim ve uygulamamz Build edip altralm tekrar. 92 | S a y f a
Ferhat BUYUKKALKAN
ASP.Nete Giri
93 | S a y f a
ASP.Nete Giri
nleyebilirsiniz. Bir dier yol ise Sunucuda oluabilecek bir hatay(Dosya yolunuzun, adnzn deimesi gibi) kullancya bildirip ne yapmas gerektiini iletebilirsiniz. Basit bir uygulama ile Try Catch Finally Bloklarmz inceleyelim; ki adet textbox, bir adet Buton ve bir adet Label oluturalm. Textboxtan gelen Integer verileri toplayp Labela yazdralm.(Yeni balayanlar iin gzel bir uygulama )
94 | S a y f a
Ferhat BUYUKKALKAN
ASP.Nete Giri
Try ierisinde kodlarmz altrlyor, eer bir hata ile karlalr ise alma durduruluyor ve Catch ksmna geiyor belirtilen bir Exception var ise hata mesaj otomatik olarak yazdrlabiliyor veya Exception belirtmeden manel olarak da hata mesaj yazlabilir. Finally ksm ise hata alsa da almasa da her iki durumda da alr. Biz burada Textboxlarn iini temizledik. Peki, Catch ile baka hangi Exceptionlar kullanabiliriz.
Exception: Varsaylan tiptir, genellikle tek bana kullanlr. Hata durumunda hatay belirtilen deikene aktarr. FormatException: Formata uygun verinin girilmedii zaman harekete geer. OverFlowException: Burada ise veri tama yapyorsa(belirlenen veri tipinin snrlar dnda ise) DivideByZeroException: Sfra blnme durumunda harekete gemektedir. Build edip hata yoksa altralm. Her iki durumda deneyelim(ilk olarak saysal deerler girelim, ikinci kez altrdmzda ise metinsel deerler girelim)
95 | S a y f a
ASP.Nete Giri
Master Page
ASP ile web uygulamas gelitirmiliiniz varsa eer Master Page i ok abuk kavrayacaksnz. Web sitelerinde genellikle st ksm(header),Alt ksm(Footer) ve belirli birka uygulama her sayfada ayr ayr eklenmez. Dnn 150 sayfal bir web uygulamanz var ve sayfada ufak bir deiiklik yapmak istediinizde tm sayfalarda yapmak zorunda kalrdnz. Bu ok zahmetli olurdu. ASP ile uygulama gelitirenler bu konuda deneyimli olduklar iin zorluk ekmeyeceklerdir. ASPde Include yntemi ile bir sayfa yapp o sayfay dier tm sayfalara gmerek bu zahmetten kurtulabiliyorduk. ASP.Net ise Master Page ile bizlere bu zellii daha gelimi olarak sunuyor.
96 | S a y f a
Ferhat BUYUKKALKAN
ASP.Nete Giri
Master Page sayfamzn Source blmne baktmzda <div> arasnda bir ContentPlaceHolder olduunu grmekteyiz. Bu ksm imdilik silelim daha sonra bu konuya deineceim. 97 | S a y f a
ASP.Nete Giri imdi Master Page sayfamz ierisinde tasarm yapmaya balayalm.
Master Page sayfamzn ierisine tablomuzu ekledik ve tasarmmz yaptk. Header, Footer, Sol men ksm birde her sayfada deiecek olan orta ksm(beyaz ksm). ContentPlaceHolder ne ie yaryor burada buna deineceiz. Master Pageyi uygulayacak olan sayfalarn rahat eriebilecei ve ierik oluturabilecei alandr. Sayfa ierisinde birden fazla ContentPlaceHolder kullanlabilir. Beyaz ksma Toolboxdan bir adet ContentPlaceHolder ekleyelim.
98 | S a y f a
Ferhat BUYUKKALKAN
ASP.Nete Giri
Master Page sayfamza eklediimiz ContentPlaceHolder her sayfann kendi ieriini oluturmasn salayacaktr. Peki, Master Page Web formlarnda nasl kullanlr. Uygulamamza Add New Item ksmn aarak Master Pageli bir web formu oluturacaz;
99 | S a y f a
ASP.Nete Giri
stteki grafikte grdnz gibi Web Formunu setiimizde Bize Master Page olacak m? Diye sormaktadr. Select Master Page seeneine check yapalm ve devam edelim.
100 | S a y f a
Ferhat BUYUKKALKAN
ASP.Nete Giri
Master Pageli Web formunu eklediimizde bizden bir Master Page sayfas belirtmemizi istiyor. Tasarmn yapm olduumuz erkan.master sayfasn seiyoruz ve devam ediyoruz.
101 | S a y f a
ASP.Nete Giri
Master Pageli bir sayfa oluturduumuzda grdnz gibi sadece ContentPlaceHolder ksmna dokunabilmekteyiz. Dier ksmlar Master Page tarafndan kilitlenmitir. imdi ContentPlaceHolder ksm nasl kullanlr ksmna gelecek olursak eer, ContentPlaceHolder ksmn bir aspx sayfas gibi kullanabiliriz. Bu alanda veritabanmzdan veri ekerek gsterelim hemen.
102 | S a y f a
Ferhat BUYUKKALKAN
ASP.Nete Giri
Veritabann Kullanma, ilerleyen konularda anlatld iin burada yzeysel olarak geiyorum. Daha nce hazrlam olduum bir veritabanm var ilemlerimizi onun zerinden gerekletireceim. Bu ekilde sayfamza bir Gridview ve bir SqlDataSource ekleyelim ve verilerimizi veritabanmzdan ekelim. Sayfamz Build edip altralm.
103 | S a y f a
ASP.Nete Giri
Grdnz gibi ContentPlaceHolder sayfamzn bir aspx sayfasndan pek fark yok. zerinde rahata alabiliriz. Birka soru ile konumuzu tamamlayalm; Diyelim ki, bir buton oluturduk ve bu butona tklandnda istediimiz ilemi yapmasn istiyoruz. Bunu aspx sayfalarnda aspx.cs sayfasnda yapyorduk. Fakat Master Pageli bir sayfada ilemlerimizi nereden gerekletireceiz. aspx sayfanzn source ksmnda <script></script> taglar arasnda gerekletiriyorduk. Ayn ekilde Master Pageli bir sayfa ierisinde de bu taglar arasnda ilemlerimizi gerekletirebiliriz. Aadaki grafikte olduu gibi
104 | S a y f a
Ferhat BUYUKKALKAN
ASP.Nete Giri
105 | S a y f a
ASP.Nete Giri Web User Control sayfalarnn aspx sayfalar ile arasnda pek fark yoktur. Tasarm ve kodlamalar aynen burada da yaplabilir.Arasndaki tek fark Web User Control sayfalar tek bana altrlamazlar.
stteki grafikte Web User Control sayfasnn Source ksmn grmektesiniz. Web User Control sayfamzn ieriini oluturalm.
Web User Control sayfamzn ierisine bir men oluturduk ve bu meny default.aspx sayfamzda gsterelim. Web User Control sayfamz aspx sayfalarnda srkleyip brakarak kullanmaktayz.
106 | S a y f a
Ferhat BUYUKKALKAN
ASP.Nete Giri
Default.aspx sayfamz altrdk ve Web User Control sayfamzn nasl altn grm olduk.
Web. Config
Yap olarak XML kullanlmaktadr. Web uygulamamzdaki ayarlamalarmz yapm olduumuz dosyadr.Daima web uygulamamzn alt dizininde bulunan Web.Config dosyas uygulamamzda yok ise Add New Item ksmndan ekleyebilirsiniz. Web.Config dosyas ile basit bir uygulama yapalm. Bu ekilde dosyamzn gerekliliini kavrayacanza inanyorum.
107 | S a y f a
ASP.Nete Giri
lk olarak bir connectionstring etiketi oluturuyoruz. Bu etiket ierisinde Provider ve Sistem Ktphanemizi belirteceiz. Kodumuz aadaki gibi;
Provider ierisinde baz deiiklikler var |DataDirectory|\sev.mdb veritabanmzn App_Data ierisinde yer aldn belirtmektedir. Balantmzn Web.Config ksmn hallettik. Sra geldi default.aspx.cs dosyamza
Ktphanemize, yukardaki snflar eklemeyi unutmaynz. Bir deiken oluturarak Web.config ierisindeki balantmz ona aktaralm.
108 | S a y f a
Ferhat BUYUKKALKAN
ASP.Nete Giri
Ado.Net 2.0 ile gelen Configuration Managementn iki ayr snf vardr. Bunlardan birisi ConfigurationManager dieri ise WebconfigurationManager. ConfigurationManager: Sadece Web deil dier Platformlar da gz nne alr. WebconfigurationManager: Sadece Web tabanl uygulamalar iin tasarlanm yeler ierir. Biz WebconfigurationManager snfn kullanarak Web. config ierisinden balantmz ekeceiz. Connectionstringimize Web.Config ierisinde vermi olduumuz namei kullanyoruz. Bu ekilde baglanti deikenimize Web.config dosyasndaki balantmz aktarm olduk. imdi bu deikenimiz ile istediimiz ilemi yapabiliriz. lk olarak veritabanndaki tablomuza balanabilmek iin bir OleDbDataAdapter nesnesi tanmlayalm ve Dataset kullanarak verilerimizi Gridviewe aktaralm.
109 | S a y f a
ASP.Nete Giri
110 | S a y f a
Ferhat BUYUKKALKAN
ASP.Nete Giri
Verileri Ynetmek
Microsoft, ActiveX Data Objectsi gelitirmeye balad ve ADO.Neti yaratt. Peki, ADO ile ADO.Net arasndaki farkllklar nelerdir. En nemli farkllklar unlardr; Recordset artk tarihe kart. ADO.Net artk daha geni leklenebilir snflar yaratt. Bunlar DataAdapter ve Dataset snflardr. Bir baka adan baktmzda ADO sadece OleDb Provider yapsn kullanyordu. ADO.Net ise OleDb Provider dnda SQL Provider yapsn da kullanmaktadr. Bilindii zere birok veritaban bulunmaktadr ve her veritaban Providerine .Net platformu yklendiinde sahip olamyoruz. Bunlardan en nemlisi Oracle, eer Oracle veritabannza erimek ve verilerinizi ynetmek istiyorsanz www.oracle.com adresinden OPD.Neti indirmeniz gerekmektedir.Bu ekilde Oracle Providerini kullanabilirsiniz.
ADO.Net Nedir?
ASP ile programlama yapanlar bilirler. Bir veritabanndan veri okumak iin veritaban ile devaml olarak balant ierisinde olmamz gerekmektedir. Ayn anda yz kiinin veritabanndan veri okuduunu dnrsek siteniz ok yavalayacak ve performans en aza inecektir. Bir baka ynden bakacak olursak eer, ADO ile her balant iin ayr bir Recordset oluturmamz gerekiyordu. ADO.Net bu performans kayplarna yer vermemek iin DataSet nesnesini retti ve veritaban ile ilem yapmak iin veritabanna devaml bal kalmay tamamen ortadan kaldrd. Bir kere DataSeti doldurmanz ile veritaban ile balant kesilse bile ilemlerinize sanki balant varm gibi devam etmenizi salayacaktr. Hatta verilerinizi ynetebilir ve istediiniz zaman kayt yapabilirsiniz buna DisConnected(Offline) denilmektedir. te ADO.Net bu ekilde performans ve hz sorununu ortadan kaldrm oluyor. Aadaki Grafikte ADO.Net Veri Mimarisini grebilirsiniz.
111 | S a y f a
ASP.Nete Giri
ADO.Neti Kullanmak
ADO ile veritabanna balanabilmek iin Connection ve Recordset kullanyorduk. Bir nceki konumuzda ADO ile performans ve hz kayb hakknda bilgi verdim. imdi ise ADO.Neti kullanarak veritabanna balanmay anlatacam. lk olarak nesnelerimizden balayacak olursak; Connection Object(Balant Nesnesi) Balant nesnesi adndan da anlalaca gibi veritabannz ile balant oluturmanz salar.Microsoft Visual Studio.Net balant snf iki trdedir SqlConnection Nesnesi: Bu nesne zellikle SQL Server 7.0 ile sonraki srmlere balant iin tasarlanmtr. OleDbConnection Nesnesi: Microsoft Access ve benzeri veritaban ile balant kurmak iin tasarlanmtr.
112 | S a y f a
Ferhat BUYUKKALKAN
ASP.Nete Giri
Command Object(Komut Nesnesi) Komut nesnesi iki ana snfa ayrlr bunlar; SqlCommand ve OleDbCommanddr. Komut nesneleri bir veritaban balants zerinden komutlar altrmak iin kullanlr. Command Nesneleri, veritabannda saklanan Prosedrleri altrmak iin kullanlabilir. Komut nesneleri veritaban zerinden komut yrtmek iin yntem kullanr; ExecuteNonQuery: Insert, Update ve Delete gibi geri dn olmayan Values komutlarn yrtr. ExecuteScalar: Tek bir deeri veritabanndan sorgular ve dndrr. ExecuteReader: DataReader Nesnesine sonu dndrr. DataReader Object(DataReader Nesnesi) DataReader nesnesi sadece veri okumay salar. DataReader komut nesnesinin ExecuteReader yntemi sonucu olarak dndrr. SqlCommand. ExecuteReader yntemi SqlDataReader Nesnesini dndrr. OleDbCommand. ExecuteReader yntemi ise OleDbDataReader Nesnesini dndrr. DataAdapter Object(DataAdapter Nesnesi) DataAdapterin asl grevi veritaban ve DataSet arasndaki iletiimi kolaylatrmaktr. DataAdapter veritabanna balanty aar, istenilen sorguyu sorar cevap alr ve bu cevab DataSete tar ardndan balanty kapatr. DataAdapter veritaban komutlarn temsil eden drt zellik vardr; InsertCommand: Yeni veri kayd girmek iin kullanlr. SelectCommand: Veritabanndan verileri semek iin kullanlr. DeleteCommand: Veritabanndan veri silmek iin kullanlr. UpdateCommand: Veritabanndaki veriyi gncellemek iin kullanlr.
Basit bir web uygulamas ile konularmz inceleyelim; Uygulamamza bir adet veritaban ekleyelim ve ierisine veri girii yapalm.
113 | S a y f a
ASP.Nete Giri
114 | S a y f a
Ferhat BUYUKKALKAN
ASP.Nete Giri
SqlConnection ile veritaban balantmz oluturduk, ConnectionString ile veritabanmzn Providerini ve veritabanmzn yolunu belirttik. Ardndan SqlDataAdapter ile veritabanndaki Developermania adndaki tabloyu alp DataSet ierisinde tablo1 adndaki tabloya tadk. Sayfama eklediim Gridviewde ise verilerimizi gsterdik. stteki grafikte DataSet ierisindeki tablomuzun index numarasn vererek ektik bir baka yolu da u ekildedir.
115 | S a y f a
ASP.Nete Giri
Grm olduunuz gibi verilerimiz Gridviewe aktarld. Uygulamamza gz atacak olursak eer nelere deindik; Connection Nesnesini Kullanmay. ConnectionString ve Provider Kullanmay. SqlDataAdapter Kullanmay. SqlDataAdapter ile Veritabanndaki verileri DataSete tamay. DataSet ierisinde bir tablo ismi belirtip SqlDataAdapterden aldmz verileri saklamay. DataSet ierisindeki tablomuzu nasl kullanabileceimizi.
Konumuzda ise; ADO.Net Nedir? ADO ve ADO.Net arasndaki farkllklar. ADO.Net Nasl Kullanlr? ADO.Netin Avantajlar
116 | S a y f a
Ferhat BUYUKKALKAN
ASP.Nete Giri
117 | S a y f a
ASP.Nete Giri
Add butonuna bastnzda karnza bir bilgi kutucuu alacak o bilgi kutusunda: Veritabannz App_Data klasr ierisinde barndralm m? Diye soruyor. Evet, butonuna basarak devam edelim. imdi gelelim tablomuzu oluturmaya. Aadaki grafikte olduu gibi Tables zerine gelerek sa tklayp Add New Table seeneini seiyoruz.
118 | S a y f a
Ferhat BUYUKKALKAN
ASP.Nete Giri
119 | S a y f a
ASP.Nete Giri
id: nteger veri tipi veriyoruz nedeni ise her veri eklendiinde veriye zel bir ID numaras atasn diye Allow Nulls bo geildi nedeni ise bo geilemez anlamndadr. idmiz kendi kendine her veri eklendiinde otomatik olarak bir artrp o alana yazmas ii stteki grafiin alt ksmndaki Column
120 | S a y f a
Ferhat BUYUKKALKAN
ASP.Nete Giri
Properties panelinden Identity Spefication altnda bulunan (Is Identity) seeneini Yes yapalm. Ardndan veritabanmzn id fieldna birincil anahtar(Primary Key) deer vermemiz gerekmektedir. Aadaki grafikte bunu nasl yapacanz hakknda bilgi vermektedir.
Veritaban Tablomuzu CTRL+S ksa yolunu kullanarak kayt edelim. smi Developermania olsun
Grdnz gibi Server Explorer ksmnda Tables Altnda veritabanmz ve fieldlar yer ald. imdi bu veritabanna balanabilmek iin iki temel yol bulunmaktadr. Kodlar ve Nesneler ile Kitabmzn konusu ASP.Nete giri olduu iin Kod ksmn yzeysel geeceim nedeni ise SQL Server veritabanna 121 | S a y f a
ASP.Nete Giri balanmak iin kullanacamz snflar ve balant Providerini detayl olarak bilmediinizden dolaydr. Kod ksmna eer girersek bir kitap daha yazmak gerekebilir Nesneler ile balanmak iin Toolbox ksmndaki Data ksmndaki nesneleri kullanmamz gerekmektedir. Temel olarak birka nesneden bahsedeceim ve bizim iimize yarayacak olan nesneyi detayl olarak anlatacam. AccessDataSource: Microsoft Access veritabanna nesnel yol ile balanabilmemizi salayan kontroldr. Bir web uygulamasnda birden ok AccessDataSource kontrol kullanlabilir.
Veritabann belirterek Provideri kendi oluturmaktadr. Kontroller ile bir satr kod yazmadan bile web uygulamanz tamamlayabilirsiniz. SqlDataSource: Microsoft SQL Server veritabanna nesnel olarak balanabilmemizi salayan kontroldr. AccessDataSourcede olduu gibi, Bir web uygulamasnda birden ok SqlDataSource kontrol kullanlabilir. Veritabanmza balanmak iin bizde bu kontrol kullanacaz.
Sayfamza srkleyerek ekelim ve brakalm. Hemen sa ksmnda bir kutucuk alyor ve Configure Data Source linki kyor. O linke tklayalm ve veritabanna balanma ilemimizi tamamlayalm
122 | S a y f a
Ferhat BUYUKKALKAN
ASP.Nete Giri
Veritabanmz DropDownList ksmnda seiyoruz ve grdnz gibi Connection String ksmnda otomatik olarak SQL Providerimizi oluturdu kendisi. Next diyerek ilerleyelim.
123 | S a y f a
ASP.Nete Giri
Karmza byle bir uyar kt, Web uygulamanz iin bir ConnectionString oluturmak istiyor musunuz? Uyarsna Yes, Save This Connection As: kutucuunu iaretleyerek Nexte basp devam edelim.
124 | S a y f a
Ferhat BUYUKKALKAN
ASP.Nete Giri
ASP.Nete Giri Bu ksmda bizden istedii; veritabanna nasl balanmak istiyorsunuz? Numaralandrmalara gre srasyla inceleyelim
7) Specify a custom SQL Statement or Stored Procedure Bu ksm tablomuza zel olarak ayrntl bir ekilde balant kurmamz salar bu ksm seili olursa eer SQL cmleciklerimizi kendimiz yazmamz gerekecek. 8) Specify Columns From a Table or View Bu ksmda ise 1. Ksmdakilerin tam tersi SQL cmleciini bizim vermi olduumuz talimatlara gre kendi retmektedir. Bu retmi olduu cmlecii 6. Ksmda gstermektedir. 9) Name Bu ksmda Veritabanmzn ierisindeki hangi tablo ile ilem yapacamz belirtmemizi salar. Tablomuzu setiimizde otomatik olarak aadaki Columns ksmndaki fieldlarmz grnmektedir. 10) Columns Bu ksm tablomuzdaki fieldlarmz gstermektedir ve hangi field ierisindeki verileri ekmek istediimizi burada belirleriz. Bizim drt adet fieldmz vard fakat burada be adet var bunun nedeni yldz(*) seeneidir. Bu yldz seenei tablomuzdaki btn fieldlar sememizi salar. 11) Where, Order by, Advanced Bu blmdeki butonlarn ayr ayr grevleri bulunmaktadr. Where: Tablomuzda bir karlatrma yapmak istediimizde kullanrz genellikle. Bu ksm veritabanna direk olarak balant yaptmz srada pek kullanlmaz, Kullanm alanlar genelde Kategorileme, ye girii gibi uygulamalarda kullanlr. Order by: Tablomuzdan verileri nasl bir sralama ile ekeceimizi bu ksmda belirlemekteyiz. ki seenek vardr bu ksmda fielde gre ASC(ASCENDNG) veya DESC(DESCENDNG) olmaldr. rnein: Adi fieldnda ki verileri DESC olarak sralamak istersek veriler alfabeye gre tersten sralanr. Advanced: Bu ksmda veritabanmza bir nevi veri giri izinlerini am oluyoruz. Update(Gncelleme), Insert(Yeni Kayt), Delete(Silmek) gibi izinleri buradan verebiliriz. 12) Buras da son olarak verdiimiz talimatlarn SQL cmleciine evrilmi ksmdr. Next diyerek ilerleyelim. 126 | S a y f a
Ferhat BUYUKKALKAN
ASP.Nete Giri
Buras ayarlarmz yaptmz son admdr. imdi veritaban balantmz oluturduk ve test etmeye geldi sra Test Query butonuna basarak veritabanmza doru ulaabilmi miyiz kontrol edelim. Biz tablomuza hi veri eklemediimiz iin veri kmad ekrana ama field isimleri ksa yeter bizim iin Finish diyerek sonlandralm ayarmz. imdi bu nesnemizi kullanabilmek iin bir baka nesneye ihtiya duymaktayz bu nesneler neler olabilir; Datalist olabilir. Gridview olabilir. Biz Gridview kullanalm. Sayfamza bir adet Gridview ekelim ve aadaki grafikteki gibi ilerleyelim.
127 | S a y f a
ASP.Nete Giri
Choose Data Source ksmnda oluturmu olduumuz SqlDataSource belirdi. Seiyoruz ve veritabanmza balantmz kuruyoruz. Auto Format ile Gridviewin tasarmn deitirebiliriz.
128 | S a y f a
Ferhat BUYUKKALKAN
ASP.Nete Giri
SqlDataSource nesnemizi setiimizde Gridview hemen deiti ve veritabanmzn ierisindeki fieldlar tanyarak kendini ona gre ayarlad. SqlDataSource ksmnda ayar yaparken Advanced ayarlarnda veri izinleri vermitik bu sayede Enable Paging, Sorting, Deleting, Editing, Selection seenekleri aktif hale geldi. Bu ayarlar kullanaraktan veritabann ynetmi olacaz. Bu seenekleri check ettikten sonra Gridview daha gelimi bir hale gelecektir. Enable Paging: Verileri Sayfalamaya yarar. Enable Sorting: Field isimlerine link verir ve sralamay DESC veya ASC olarak deitirmenizi salar. Enable Deleting: Adndan da anlalaca gibi veriyi siler. 129 | S a y f a
ASP.Nete Giri Enable Editing: Veriyi dzenlemeye yarar. Tkladnzda veriler textbox ierisinde aktif olarak gncellemenizi salar. Enable Selection: Veriyi semeye yarar. Peki, Yeni bir kayt nasl eklerim? ok gzel bir soru hemen anlataym; Edit Templates seeneine tklayalm.
130 | S a y f a
Ferhat BUYUKKALKAN
ASP.Nete Giri
Auto Format ksmndan tasarmn kendinize gre ayarlayabilirsiniz. Choose Data Source ksmnda ise veritaban ayarlarmz yapm olduumuz SqlDataSource seelim. Ardndan sadece veri eklemek istediimiz iin Enable Inserting seeneini check ediyoruz. Properties ayarlar ise aadaki grafikteki gibidir.
131 | S a y f a
ASP.Nete Giri
132 | S a y f a
Ferhat BUYUKKALKAN
ASP.Nete Giri
Web uygulamamz altrdk grdnz gibi hem yeni veri ekleyebilmekteyiz hem silip hem de gncelleyebilmekteyiz. Veritabanmz SqlDataSource kontrol ile bu ekilde kullanmaktayz.
Enable Editing seenei ise Enable Insertteki gibi ayn ilemler ile aktif hale getirilir. Gridview ierisindeki Gncelleme paneli haricinde bir alan oluturularak Gncelleme yapmak iin kullanlr. stteki grafikte oldugu gibi DefaultMode Insert haline getirilmelidir.Getirilmez ise veri gncellenemez.
133 | S a y f a
ASP.Nete Giri
Enable Paging ile verileri sayfalarz ve her verinin altta linki belirir. Sayfamz Build edip altralm.
134 | S a y f a
Ferhat BUYUKKALKAN
ASP.Nete Giri
Alt ksmmda yer alan saylar verilerimizin idlerini gstertmektedir. Tkladnzda gncelleme formuna verileri armaktadr.
135 | S a y f a
ASP.Nete Giri
Blogsa Nedir?
Blogsa cretsiz, ak kaynakl Tamamen Asp.NET ve C# kodlama dili ile yazlm bir Blog sistemidir. Ayn zamanda bir blog sistemi zerinde ierisinde birok eklentiyi barndran sayfann her alannda size dzenleme imkn sunan, zengin ve dzenlenebilir tema seenekleri ile sizlere geni bir site zellii salayabilen bir sistemdir. Ayrca Blogsa dier blog sistemlerine karn ok hzldr. Blogsa da ilem yapmak ok kolaydr. Kurulumu ok basittir. Gncel birok Veritabann destekler yapdadr. Gnden gne ise destekledii veritaban yaplarn artrmaktadr. Blogsa ayn zamanda dil seeneine sahip bir sistemdir. Kolay dzenlenebilir dil dosyalar sayesinde(XML) blog sisteminizi istediiniz dilde yaynlayabilirsiniz. Sayfalarn heryerinde tek tek oynama yapmanza gerek kalmaz. Sadece dil dosyasn deitirmeniz sayfanzn tamamen farkl bir dilde olmas iin yeterli. Sayfanzn dilediiniz yerinde dil deitirmek iin eklenti ekleyebilirsiniz. Blogsa'y kullanmak iin ge kalmayn. Sizde bir Blogsa sahibi olmak iin Nasl Yklerim? Sayfasn ziyaret edebilir, ya da zellikleri? Sayfasndan zellikleri hakknda daha detayl bilgiye sahip olabilirsiniz.
136 | S a y f a
Ferhat BUYUKKALKAN
ASP.Nete Giri
adreslerini kullanabilirsiniz. Bunlar kurduktan sonra dosyalarnz C:\inetpub/wwwroot/blogsa.net/ dizinine atp http://localhost/blogsa.net adresinden kurabilirsiniz.
137 | S a y f a
ASP.Nete Giri
Erkan GZELKK
138 | S a y f a