You are on page 1of 134

10100001111010101101101110111101010000011 01010100101011011101010100001010101010111 00101011011101010100001010101010111001010 11011101010100001010101010111001010110111 ASP.

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.

Nelere htiya Duyarz?


ASP.Net Web Uygulamalar gelitirmek iin bilgisayarmzda temel birka programn kurulu olmas gerekmektedir. Microsoft tarafndan uygulama gelitirme platformu olarak retilen .Net Framework Masast ve Web Uygulamalar gibi birok uygulamay gelitirmek iin retilen bir platformdur. uan son srm .Net Framework 4.0 kt. Bu son srm sayesinde de birbirinden gzel birok kontrol Visual Studio 2010 Toolboxda grebilirsiniz. .Net Framework Microsoftun sitesinden indirerek kurabileceiniz gibi, Microsoftun yazlmclar iin gelitirmi olduu .Net Platformu, Microsoft Visual Studioyu indirerek kurabilirsiniz.

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

ASP.Net ile lk Web Uygulamamz.


ASP.Net ile bir web uygulamas oluturmak iin File/New/Web Site admlarn izleyelim. Karmza New Web Site adnda bir pencere alacak. Pencere zerindeki seenekleri inceleyelim; Installed Templates: ASP.Net ile bir web uygulamas oluturabilmek iin bir dil kullanmak zorundayz. Visual Studio 2010 temel olarak iki dili ngrmektedir. Bu diller; C#: ASP.Net uygulamalar gelitirmek iin Microsoft tarafndan retilen olduka gl nesne tabanl bir dildir. C# ile Web Uygulamalar gelitirebileceimiz gibi Masast ve Console uygulamalar da gelitirebiliriz. C# olduka geni bir yapya sahip olduu iin birka satrla anlatlacak bir dil deil. Bu nedenle yzeysel geiyorum. VB: Visual Basicde C# gibi Microsoft tarafndan retilen bir dildir.Fakat C# kadar gl bir yapya sahip deil. Genellikle Masast Uygulamalar Gelitirmek iin kullanlr. Visual Basic ile Web Uygulamalar gelitirebileceimiz gibi Masast ve Console uygulamalar da gelitirebiliriz Web Location: Gelitirmek istediiniz web uygulama dosyalarn nerede barndracanz belirler.Local(Yerel Bilgisayar)de altrabileceiniz gibi, Dosyalarnz direk olarak FTP(File Transfer Protocol)ye de atabilirsiniz.Burada belirteceiniz seenek ile ilerleyen admlarda seenee gre deiecektir.

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.

Buttonumuza ift tklayalm ve button1_click ierisine kodlarmz aadaki gibi yazalm.

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

DropDownListe manel olarak veri girii yapalm.

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

DropDownList kontrolmze manel olarak bir katane veri girelim.

DropDownList ierisinden seilen verinin Value deerine gre Checkboxlar checkleyelim.

23 | S a y f a

ASP.Nete Giri DropDownList kontrolmze ift tklayalm ve aadaki kodlar yazalm.

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.

RadioButtonList ierisine manuel olara birka veri girii yapalm.

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.

Buttona ift tklayalm ve kodlarmz yazmaya balayalm;

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?

Setiimiz dosya Klasrmze eklenmi.

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.

Aadaki ekilde Multiview ve View hiyerarisi yer almaktadr.

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.

Validation Kontrollerimizi aklayacak olursak;

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

Navigation Kontrolleri SiteMapPath


Web tabanl uygulamalarnzda birok web formu(sayfa) olabilir ve bu web formlarnz hiyerarik dzende gstermek isteyebilirsiniz. Bu kontrol sizin isteinizi fazlasyla karlayacaktr.

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.

Edit Menu Items seeneine tklayalm ve verilerimizi manl olarak ekleyelim.

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

Uygulamamza eklediimiz Web.sitemap dosyamz aalm ve ierisindeki detaylar inceleyelim.

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

Uygulamamz build edip altralm.

Menu kontrolmze Site Map dosyasndan veri bu ekilde ekiliyor.

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

Bu ksmda bizden istedii; veritabanna nasl balanmak istiyorsunuz? 74 | S a y f a

Ferhat BUYUKKALKAN Numaralandrmalara gre srasyla inceleyelim

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.

Edit Templates ierisine bir adet DetailsView eklememiz gerekmektedir.

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.

Build ettik ve bir hata kmad. altralm uygulamamz.

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

erkanguzelkucuk.xml sayfamz seelim ve OK buttonuna basalm.

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

Uygulamamz altrdmzda Show Lines sayesinde hatlarn belirginlii ortaya km oldu.

Hata Yakalama Try, Catch, Finally


Bir uygulama, balang ve biti arasnda yazlan kodlardan ibarettir. Peki, bu balang ve biti arasnda neler oluyor? Bir uygulamay hi test etmeden bitirdiniz mi? hayr seslerini duyar gibiyim Bloklarn kullanrz. Basit bir rnekle aklamak gerekirse; bir projeye baladnz veya basit bir form oluturdunuz, bu formdan bilgileri almak istiyorsunuz, a deikenine atadnz bir textbox ve b deikenine atadnz textbox var diyelim ve bu textboxlardan verileri alp toplamak istiyorsunuz. Peki, kullanc eer Integer tipinde bir deer deil de String tipinde(a, b, c) bir deer girerse ne olacak? Bu tip sorunlar Validation Kontrolleri ile veya Client-Side Coding(Sunucu Tarafl Kodlama) ile FormatException, OverFlowException hatalar ile karlaanlarmz az deil hatta karlamamak mmkn deil denecek kadar azdr(Dalgnlnza gelebilir) Bu hatalar yakalamak iin en ok kullanlan yntem olan Exception Snfndan tretilen Try Catch Finally

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 )

Button1_Click ierisine gelerek kodlarmz yazmaya balayalm;

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.

Master Page Nedir? Nasl Kullanlr?


ASP uygulamalarnda Include ettiimiz sayfalar altrmadan dzenleyemiyorduk. Fakat Master Page ile artk bu sorun ortadan kalkt ve bu zellik olduka kullanl bir ara oldu. Bir web uygulamas oluturalm ve detayl olarak inceleyelim;

96 | S a y f a

Ferhat BUYUKKALKAN

ASP.Nete Giri

Uygulamamza bir adet Master Page ekliyoruz.

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

Web User Control Nedir? Nasl Kullanlr?


Master Page kmadan nce kullanlan Web User Control Master Pageden farkl alrlar.Tasarm zamannda ierii grnmez buda Master Page ile arasndaki en nemli farkllktr.Sayfa uzants .ascxtir ASP ile kullandmz Includeye benzer bir bakma. Hazrlam olduumuz Web User Control ieriini her sayfaya teker teker tamamz gerekmektedir. Basit bir uygulama ile inceleyelim; Web uygulamas oluturalm ve Add New Item blmnden bir adet Web User Control oluturalm.

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

Sayfamz Build edelim ve altralm.

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

Web Config ile Veritabanna Balanma


Bir proje iin kollarnz svadnzda ilk aklnza gelen ey veritabandr. Verileri hangi veritabannda, hangi yntemle saklayacam ve nasl balanacam? Bugn nasl balanacam sorusuna biraz deinelim. Veritabanna balanmann birok yolu vardr. Bunlardan birisi de Web. config ile balanma. Gelimi bir proje zerinde altnzda veritaban yolunun deime ihtimalini gz nnde bulundurursak ve projenizde 20 den ok sayfa olduunu dnrsek her sayfada teker teker bu yolu dzenlemeniz gerekecek. Buna zm olarak Web. Config ile balant en mantkl yol olarak grnyor. Bir rnekle bunu nasl yapacamz grelim. Projemizde yer alan Web. Config dosyasn aalm, ardndan kodlarmz yazmaya balayalm. Kodlarmz aadaki taglar arasna yazyoruz.

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.

Projemizi Build edelim ve bir hata yoksa altralm.

109 | S a y f a

ASP.Nete Giri

Bir hata yok projemizi altrabiliriz.

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

Default.aspx.cs dosyamzn ierisine girerek kodlarmz yazmaya balayalm.

Sistem ktphanemizi eklemeyi unutmayalm!

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.

Tablomuzun ismini vererek de balanabiliriz. Web uygulamamz Build edip altralm.

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

Veritabanna Erimek ve Kullanmak


Her yazlmc bir web projesine balamadan nce hangi veritabann hangi yollar ile kullanacan belirler ve o yol zerinden web uygulamalarn gelitirir. rnek verecek olursak eer; Bir alveri maazasnn Online sat web uygulamasn siz gelitiriyorsunuz diyelim, Burada web uygulamasna balamadan nce hangi veritabann ve o veritabanna hangi yollar ile balanmalym? Sorusuna yant bulmanz gerekmektedir. Online Alveri Maazas web uygulamasna balarken aklnza gelecek ilk konu u olmaldr. Online Sat yapacak olan Alveri Maazasnn web uygulamas devaml veri ak ierisinde olaca iin salam yaps olan bir veritaban seilmelidir. Salam veritabanndan kastm udur ki; Microsoft Access veritaban olarak kullanlrken on bin veya daha ok veri girildiinde veri ak yavalyor ve bu yavalamada web uygulamanzn performansn olduka drecektir. Bu tr web uygulamalarnda genellikle SQL Server veritaban kullanlmaktadr. Basit bir web uygulamas oluturalm ve veritabanmz nasl kullanabiliriz inceleyelim. Bir web uygulamas oluturduktan sonra, uygulamamza bir adet SQL Server veritaban ekleyelim. Website/AddNewItem yolunu izleyerek veritabanmz ekleyelim.

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

Tablomuzun Fieldlarn aadaki gibi oluturalm.

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

Geldik can alc noktalardan birisine 125 | S a y f a

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.

Edit Templates ierisine bir adet DetailsView eklememiz gerekmektedir.

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

Web uygulamamz Build edelim ve hata yoksa altrp test edelim.

Build ettik ve bir hata kmad. altralm uygulamamz.

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.

Blogsa'y nternet Sitenize Kurmak stiyorsanz


Kurulum iin Dosyalar sunucunuza gndermeniz yeterlidir. lk defa siteyi kurduunuz iin otomatik olarak Kurulum Sayfasna ynlenecektir. Eer otomatik bir ynlenme ilemi salanmad ise site adresinizin sonuna "/Setup/" yazarak kurulum ilemini balatabilirsiniz. Bir hata olmas durumunda sistem sizi bilgilendirecektir. Ynergeleri izleyip baarl bir ekilde kurulumu tamamlayn. Kurulumdan nce yapmanz gereken aklamalar kurulum esnasnda belirtilmitir.

136 | S a y f a

Ferhat BUYUKKALKAN

ASP.Nete Giri

Blogsa'y Bilgisayarnza Kurmak stiyorsanz


Eer Localhost'a kurulum yapmak istiyorsanz Bilgisayarnzn Microsoft.Net Framework 2.0 ve Microsoft Sql Server 2005 Express Edition srmne ihtiyac vardr. Bunlar bilgisayarnza indirip kurmanz yeterlidir. Microsoft.Net Framework 2.0 iin : http://www.microsoft.com/downloads/details.aspx?familyid=0856EACB-4362-4B0D-8EDDAAB15C5E04F5&displaylang=tr

Mssql 2005 Express srm iin : http://www.microsoft.com/downloads/details.aspx?familyid=220549b5-0b07-4448-8848dcc397514b41&displaylang=en

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

Blogsay http://blog.blogsa.net/ adresinden takip edebilirsiniz.

138 | S a y f a

You might also like