8/6/2019 asp.net giri
1/134
10100001111010101101101110111101010000011
01010100101011011101010100001010101010111
00101011011101010100001010101010111001010
11011101010100001010101010111001010110111
01010100001010101010111001010110111010101
00001010101010111FFF
10101010111001010110111010101000010101010
10111001010110111010101000010101010101110
01010110111010101000010101010101110010101
10111010101000010101010101110010101101110
10101000010101010101110010101101110101010
00010101010101110010101101110101010000101
ASP.Nete Giri
INETA MEA / DeveloperMania.Net Teknik Lider & Editr
Nisan 2011
r.Gr.Ferhat BUYUKKALKAN
8/6/2019 asp.net giri
2/134
Ferhat BUYUKKALKAN ASP.Nete Giri
1 | S a y f a
ASP.Nete GiriASP.Nete Giri ve Temel Konular
Standart Kontroller ve Kullanmlar
Validation Kontrolleri
Navigation Kontrolleri
Hata Yakalama
Master Page
Web User Control
Web.Config
Verileri Ynetmek
8/6/2019 asp.net giri
3/134
ASP.Nete Giri Ferhat BUYUKKALKAN
4|S a y f a
indekilerNSZ............................................................................................................................................................................................................................................... 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
8/6/2019 asp.net giri
4/134
Ferhat BUYUKKALKAN ASP.Nete Giri
5 | S a y f a
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
8/6/2019 asp.net giri
5/134
ASP.Nete Giri Ferhat BUYUKKALKAN
6|S a y f a
Master Page Nedir? Nasl Kullanlr?........................................................................................................................................................................................... 96
Web User Control Nedir? Nasl Kullanlr?................................................................................................................................................................................. 105
Web. Config................................................................................................................................................................................................................................... 107
Web Config ile Veritabanna Balanma .................................................................................................................................................................................... 108Verileri 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
8/6/2019 asp.net giri
6/134
ASP.Nete Giri
10|S a y f a
ASP.Net Nedir?ASP.Net Server-Side(Sunucu tarafl) web uygulamalar gelitirebileceimiz. Netinsalad zelliklerin ouna eriebilen birplatformdur. 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 FrameworkMasast ve Web Uygulamalar gibi birok uygulamay gelitirmek iin retilen bir platformdur. uan son srm
.Net Framework 4.0kt. 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.
8/6/2019 asp.net giri
7/134
8/6/2019 asp.net giri
8/134
ASP.Nete Giri
12|S a y f a
Orta ksmdanASP.Net Web Siteseili duruma getirerekOKtuuyla ASP.Net Web Uygulamamz oluturalm. Projemiz oluturulduunda sol tarafta Toolbox,
Sa tarafta Solution Explorerve Propertiessekmesi yer almaktadr. Orta ksmda ise gelitirmekte olduumuz Web Uygulama dosyamzn Design ksm yer
almaktadr.
8/6/2019 asp.net giri
9/134
Ferhat BUYUKKALKAN ASP.Nete Giri
13 | S a y f a
stersek Dosyamz sadece kod, sadece tasarm ve hem kod hem tasarm ksmn ayn anda grebiliriz. Bunun iin Sayfamzn altksmnda yer alan konum
sekmesini kullanabiliriz.
SplitseeneiVisual Studio 2005ve nceki srmlerde bulunmamaktadr. lkolarakVisualStudio2008de kullanlmaya baland. Visual studio 2010RCde
de grebilirsiniz bu seenei.
8/6/2019 asp.net giri
10/134
ASP.Nete Giri
14|S a y f a
Standart KontrollerBu blmde Web Uygulamalarmzda kullanacamz Standart Kontrolleri inceleyeceiz.
NOT:Kontrolleri kullanabilmeniz iin web uygulamanzn ierisindeki sayfanza srkleyerek brakmanz gerekmektedir.(rn: Aadaki grafikteki gibi)
ButtonButtonKontrol, 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. DeeriFalseolduunda Button pasif hale gelir ve tetikleme gereklemez.
Textboxkontrolmzdeki uygulamada Buttonkontrolnn ilevini daha iyi kavrayacaksnz.
8/6/2019 asp.net giri
11/134
Ferhat BUYUKKALKAN ASP.Nete Giri
15 | S a y f a
LabelKullanclara 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 Falsedeerini 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.
LiteralLabelden 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 Falsedeerini 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. Bunlaraadaki gibidir;
Text:Kontrolmzn ierisine varsaylan bir deer atamak iin kullanlr.
8/6/2019 asp.net giri
12/134
ASP.Nete Giri
16|S a y f a
TextMode:Bu zellik ise Kontrolmzn hangi tipte olaca belirtmektedir. Bu zelliimiz adet tipi ngrmektedir (SingleLine, MultiLine vePassword). Bu tiplere ileriki konularmzdadeineceiz.
MaxLength:Kontrolmze maksimum girilecek karakter saysn belirlemektedir. Enable:Kontrolmzn kilitlenmesini salayan zelliktir. DeeriFalseolduunda Bilgi girii yaplamaz.
Basit bir uygulama yapalm; Bir web uygulamas oluturalm ve sayfamzn ierisine bir adet Textbox bir adetLiteral 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 gibiLiteralkontrolmze Textboxmzn textini aktaryoruz.Uygulamamz Buildedip altralm.
8/6/2019 asp.net giri
13/134
Ferhat BUYUKKALKAN ASP.Nete Giri
17 | S a y f a
Link ButtonAdndan anlalaca gibiLink Button, Neredeyse Button ile ayndr. Tekfark zerinde linkverilebilmesidir. Clickzelliine kodumuza yazarak ynlendirme
yapabiliriz.
Image ButtonLink Buttonile arasnda tek fark, Image Buttonda Link yerine Resim olmasdr. Olduka kullanl bir kontroldr. Resim seebilmek iin Properties
penceresinden ImageURLzelliini kullanmanz gerekiyor.
DropDownListBu kontrolmz gelimi web sitelerinin ounda kullanlmaktadr. Genellikleehir, yaaral, cinsiyet, kategorive eitli listelemeler yapmak iin kullanlr.
Veritabanndan verilerin ekilip listelenebilecei gibi, manel olarak da veriler girilip listene bilir.
8/6/2019 asp.net giri
14/134
ASP.Nete Giri
18|S a y f a
Yukardaki resimde grnd gibi, Edit Itemsile verilerimizi manel olarak ekleyebiliriz.
Enable AutoPostBack:Bu seenekDropDownListierisinden veri seildiinde otomatik olarak sayfa tetiklenecektir. Choose Data Source:Bu seenekte, DropDownListierisine bir veritabanna balanp veri ekmek iin kullanlr. Edit Items:Manel olarak veri giriini salar.
Bir web uygulamas oluturalm ve sayfamza bir adetDropDownListve bir adet de Literalkontrol ekleyelim.
8/6/2019 asp.net giri
15/134
Ferhat BUYUKKALKAN ASP.Nete Giri
19 | S a y f a
DropDownListe manel olarak veri girii yapalm.
8/6/2019 asp.net giri
16/134
ASP.Nete Giri
20|S a y f a
Enable AutoPostBackzelliinicheckediyoruz. Nedeni ise DropDownListten semi olduumuz veriyiLiteralkontrolmzde gsterecegiz. imdi
DropDownListkontrolmze ift tklayalm ve DropDownList1_SelectedIndexChangedierisine aadaki gibi kodlarmz yazalm.
Literalkontrolmzn Textzelliine DropDownListde seilen veriyi aktardk. Uygulamamz Buildedip altralm.
ListboxDropDownListile arasndaki tek fark, Listboxun ak halde gzkmesidir. DropDownListteki ou zellikListboxta da ayndr.
Basit bir uygulama yapalm; Bir web uygulamas oluturalm ve sayfamzn ierisine bir adetListbox, bir adet de Literalkontrol ekleyelim.
8/6/2019 asp.net giri
17/134
Ferhat BUYUKKALKAN ASP.Nete Giri
21 | S a y f a
VerilerimiziEdit Itemksmndan manel olarak girelim ve Enable AutoPostBackseeneinicheckedelim.Listboxmzdan seilen verinin valuesiniLiteral
kontrolmzn Textzelliine aktaralm. imdiListboxkontrolmze ift tklayalm ve ListBox1_SelectedIndexChangedierisine aadaki gibi kodlarmz
yazalm.
Ksaca zetlemek gerekirse Listboxdan semi olduumuz verinin valuesiniIntegerveri tipine dntryoruz ve string.Formatile formata uygun
ayralayarak dndryoruz.Uygulamamz buildedip altralm.
8/6/2019 asp.net giri
18/134
8/6/2019 asp.net giri
19/134
Ferhat BUYUKKALKAN ASP.Nete Giri
23 | S a y f a
DropDownListkontrolmze manel olarak bir katane veri girelim.
DropDownListierisinden seilen verinin Valuedeerine gre Checkboxlar checkleyelim.
8/6/2019 asp.net giri
20/134
ASP.Nete Giri
24|S a y f a
DropDownListkontrolmze ift tklayalm ve aadaki kodlar yazalm .
DropDownListte seilen verinin ValuedeeriniIntergerveri tipine eviriyoruz ve kontrol yaps (if..else)ile ilemimizi gerekletiriyoruz.
Uygulamamz buildedip altralm.
8/6/2019 asp.net giri
21/134
Ferhat BUYUKKALKAN ASP.Nete Giri
25 | S a y f a
CheckBoxListCheckboxtan tek fark, manel olarak birden fazla giri yaplabilir ve giri yaplan verileri liste halinde gsterir. Manel olarak giri yaplabildiigibi
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 adetCheckboxlist, bir adetLiteralkontrol ekleyelim.
CheckBoxListkontrolmzde sadece isimleri ekledik. Nedeni, seilen ismin soyisminiLiteralkontrolmzn Textzelliine atayacaz. Enable AutoPostBack
zelliinicheckedelim. CheckBoxListkontrolmze ift tklayalm ve ierisine aadaki kodlarmz yazalm.
8/6/2019 asp.net giri
22/134
ASP.Nete Giri
26|S a y f a
Ksaca zetlemek gerekirse, CheckBoxListde seilen verinin ValuedeeriniIntegerveri tipine eviriyoruz ve kontrol yaps (if..else)ile ilemimizi
gerekletiriyoruz.
CheckBoxListierisindeki herhangi bir veri seildiinde direk olarak tm checkler kalkyor ve Literalkontrolmze verilerimizi atyoruz.
Uygulamamz Buildedip altralm.
8/6/2019 asp.net giri
23/134
Ferhat BUYUKKALKAN ASP.Nete Giri
27 | S a y f a
RadiobuttonCheckboxtan tek fark, birden fazla seilememesidir. Genellikle kullancdan cinsiyet, medeni durum vb. bilgileri almak iin kullanlr. zellikleriCheckboxile
ayndr.
Basit bir uygulama yapalm; Bir web uygulamas oluturalm ve sayfamzn ierisine iki adetRadiobutton, bir adetLiteralve birde Buttonkontrol ekleyelim.
Kullancnn cinsiyetini sorgulamak iin basit bir form oluturabilirsiniz.Buttona ift tklayarak ierisine aadaki kodlar yazalm.
8/6/2019 asp.net giri
24/134
ASP.Nete Giri
28|S a y f a
Ksaca zetlemek gerekirse, RadioButtonlarmzn hangisinin seili olduunu belirliyoruz ilk nce daha sonra ise Literalkontrolmze cinsiyeti atyoruz.
Ardndan RadioButtonlardakiCheckleri kaldryoruz.
Uygulamamz Buildedip altralm.
8/6/2019 asp.net giri
25/134
Ferhat BUYUKKALKAN ASP.Nete Giri
29 | S a y f a
RadiobuttonListCheckBoxListden tek fark birden fazla seilememesidir. Radiobuttondan fark ise manel olarak birden fazla giri yaplabilir ve giri yaplan verileri liste
halinde gsterilir olmasdr. Manelolarak giri yaplabildii gibi veritabanndan da kaytlar ekilerek listelenebilir.
zellikleriCheckBoxListile ayndr.
Basit bir uygulama yapalm; Bir web uygulamas oluturalm ve sayfamzn ierisine bir adetRadioButtonList, bir adetLiteralkontrol ekleyelim.
RadioButtonListierisine manuel olara birka veri girii yapalm.
8/6/2019 asp.net giri
26/134
ASP.Nete Giri
30|S a y f a
imdi ise RadioButtonListkontrolmze ift tklayalm ve ierisine aadaki kodlarmz yazalm.
8/6/2019 asp.net giri
27/134
Ferhat BUYUKKALKAN ASP.Nete Giri
31 | S a y f a
Ksaca zetlemek gerekirse, RadioButtonListierisinden seilen veriyi tespit ediyoruz ve Literalkontrolmze aktarma yapyoruz.
Uygulamamz Build edelim ve altralm.
8/6/2019 asp.net giri
28/134
8/6/2019 asp.net giri
29/134
Ferhat BUYUKKALKAN ASP.Nete Giri
33 | S a y f a
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.
8/6/2019 asp.net giri
30/134
ASP.Nete Giri
34|S a y f a
Dosyamz setik ve ykle Buttonuna bastk, Yklendi uyarmz aldk bakalm dosyamz klasrmze yklenmi mi?
Setiimiz dosya Klasrmze eklenmi.
CalendarCalendar 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, deerFalseolursa gnler gizlenir. SelectedDate:Sayfa altrldnda, SelectedDateierisindeki tarih seili durumda olacaktr. Bo ise varsaylan tarih O gn olur.
8/6/2019 asp.net giri
31/134
Ferhat BUYUKKALKAN ASP.Nete Giri
35 | S a y f a
Auto Format: Takvim Kontrolnn stilini, Auto Format ile deitirebilirsiniz.Multiview ve ViewMultiview ve View Kontrolleri ASP.Net 2.0 ile gelen olduka kullanl kontrollerdir. Multiview ve View iki ayr kontrol gibigzkse 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 Visibilitydurumunu ynetirler. HTML olarak ve olarak
grnrler. Viewler hibir zaman yalnz bana kullanlamazlar.
Aadaki ekilde Multiview ve View hiyerarisi yer almaktadr.
8/6/2019 asp.net giri
32/134
ASP.Nete Giri
36|S a y f a
8/6/2019 asp.net giri
33/134
Ferhat BUYUKKALKAN ASP.Nete Giri
37 | S a y f a
Bir Multiview Kontrol bir defada sadece bir View grntleyebilmektedir. Viewlerin aktif olabilmesi iinActiveViewIndexdurumunun aktif hale gelmesi
gerekmektedir. Basit bir rnekle inceleyelim;
Yukardaki resimde grm olduunuz gibi ViewlerMultiviewin ierisine eklenmektedir ve Viewleri tetikleyici butonlar yer almaktadr. Viewler
tetiklenmedii srece hibir zaman almayacaklardr. Buttonlarmzaift tklayarak kodlarmz yazalm.
8/6/2019 asp.net giri
34/134
ASP.Nete Giri
38|S a y f a
ActiveViewIndexile Multiviewierisindeki hangiViewimizin aktif hale gelmesini istiyorsak o Viewinidnumaralarn veriyoruz.
WizardGelimi web sitelerine baktnzda, kullancdan bilgi alnrken adm adm ilerleyerek bilgiler alnyor. Peki, bu nasl yaplyor? Bu sorunun cevab Wizardda
gizliASP.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.
Finishbutonuna ift tklayaraksayfapost 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.
8/6/2019 asp.net giri
35/134
Ferhat BUYUKKALKAN ASP.Nete Giri
39 | S a y f a
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 DropDownListierisinde 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, birTextboxetkileim sayfasna bo geliyor ise o
kullancy geri ayn sayfaya ynlendiririz veya bir uyar yazs gsteririz. Fakat bunun bir yolu daha var.
8/6/2019 asp.net giri
36/134
ASP.Nete Giri
40|S a y f a
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;
RequiredFieldValidatorBu kontrol Form nesnelerimizin bo geilip geilmediini denetlemek iin kullanlr. Her Form nesnesi iin ayr ayr RequiredFieldValidatoreklemekgerekmektedir.
8/6/2019 asp.net giri
37/134
Ferhat BUYUKKALKAN ASP.Nete Giri
41 | S a y f a
zelliklerine bakacak olursak;
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 kacakhata 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 MaximumValueveMinumumValue
olarak deerler verilir. Bu deerler Double, String, nteger, Date, Currency tipinde olabilir.
zelliklerine bakacak olursak;
Dislayp, ErrorMessage, ControlToValidate zellikleri yukardaki gibi. MaximumValue:Form Nesnesineverilebilecek 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 girildiindeRangeValidator kontrol aktif hale gelir.
Type:Bu seenek ise Form nesnesi ierisindeki verinin hangi tipte alglanacan belirtmektedir. Farkl bir tipte veri girildiinde RangeValidatorkontrol 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.
8/6/2019 asp.net giri
38/134
ASP.Nete Giri
42|S a y f a
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 nesnesininilk 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
iseCompareValidatorkontrol aktif hale gelir.
Type:Bu seenek ise Form nesnesi ierisindeki verinin hangi tipte alglanacan belirtmektedir. Farkl bir tipte veri girildiinde RangeValidatorkontrol aktif hale gelir.
8/6/2019 asp.net giri
39/134
Ferhat BUYUKKALKAN ASP.Nete Giri
43 | S a y f a
ValidationSummary
Bu Kontrol Form nesnelerini denetleyen ValidationKontrollerinin 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
BuKontrol 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.
8/6/2019 asp.net giri
40/134
ASP.Nete Giri
44|S a y f a
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
SiteMapPathWeb tabanl uygulamalarnzda birok web formu(sayfa) olabilir ve bu web formlarnz hiyerarik dzende gstermek isteyebilirsiniz. Bu kontrol sizin
isteinizi fazlasyla karlayacaktr.
8/6/2019 asp.net giri
41/134
Ferhat BUYUKKALKAN ASP.Nete Giri
45 | S a y f a
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.
8/6/2019 asp.net giri
42/134
ASP.Nete Giri
46|S a y f a
Web.SitemapdosyamzXMLtabanl esnek bir yapya sahiptir. zelliklerini inceleyelim;
SiteMap: SiteMapPath Kontrolne gnderilecek olan verilerin saklanaca etikettir. erisindeSiteMapNode etiketi alarak var olan sayfalar belirtilir.
SiteMapNode: sttekizellikte 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 linkinAlt
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. SayfamzaSiteMapPath Kontrol ekleyelim.
8/6/2019 asp.net giri
43/134
Ferhat BUYUKKALKAN ASP.Nete Giri
47 | S a y f a
stteki grafikte grdnz gibi, SiteMapPathKontroln eklediimizde Web.sitemap dosyasndaki veriler otomatik olarak ekiliyor ve Kontrol
ekilleniyor.Sayfamz altralm.
Taraycmzda grnen SiteMapPathkontrol bu ekildedir.
Kontrolmzn temel birka zelliini inceleyelim;
PathSeparator: Sayfalarmz hiyerarik bir dzende gsterirken, Sayfalar arasnda kullandmz karakter tipidir. Biz uygulamamzda / (Slash)karakterinikullandk. Sizleruygulamalarnzda istediiniz karakteri kullanabilirsiniz.
PathDirection: Sayfalarmz sadan sola veya soldan saa olarak yaynlayabilmemizi salar.ki seenek ierir CurrentToRoot(alt dizinden anadizine)ve RootToCurrent (ana dizinden alt dizine) CurrentToRoot: Bu seenek Soldan saa yaynlamaktadr. RootToCurrent: Bu seenek ise Sadan Sola yaynlamaktadr ve varsaylan seenek budur.
TreeviewTreeview, 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
olarakalglar. Basitbir uygulama ile kontrolmz inceleyelim;
Uygulamamz oluturalm ve sayfalarmz hazrlayalm.
8/6/2019 asp.net giri
44/134
ASP.Nete Giri
48|S a y f a
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;
8/6/2019 asp.net giri
45/134
Ferhat BUYUKKALKAN ASP.Nete Giri
49 | S a y f a
stteki grafikte yer alan etiketlerin aklamalar SiteMapPath kontrolnde yer almaktadr.
imdi sayfamza Treeview kontrolmz ekleyelim.
Sayfamza Treeview kontroln ekledik, isterseniz Auto Format kullanarak tasarm grafikteki gibi deitirebilirsiniz. Treeview kontrol Web.SiteMap
dosyasn otomatik olarak alglayamad iin SiteMapDataSourceyardm ile Web.SiteMapi Treeviewe balayacaz.
SiteMapDataSourceyi sayfamza eklediimizde otomatik olarak Web.SiteMap dosyamz alglar. imdi SiteMapDataSourcemizi Treeviewe tantalm.
8/6/2019 asp.net giri
46/134
ASP.Nete Giri
50|S a y f a
Choose Data Source ile SiteMapDataSourceyi tanmlyoruz. Ardndan Treeview kontrolmze baktmzda Web.SiteMap dosyamzn ierisindeki verilerin
ekilmi olduunu greceksiniz.
Treeview Tasksierisinde 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.
8/6/2019 asp.net giri
47/134
Ferhat BUYUKKALKAN ASP.Nete Giri
51 | S a y f a
Show Linesseenei seili durumda olduunda Hatlarn belirginleiyor.
Treeview kontrolmzn bazzellikleriniinceleyerek konumuzu sonlandralm;
ShowCheckBoxes:Bu zelliimiz Treeview kontrolnn Nodelarnda checkbox kullanabilmemizi salamaktadr.Be seenekten birini semekzorundasnz
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.
MenuMenu Kontrol, ASP.Net 2.0 ile gelen olduka kullanl bir kontroldr.Web uygulamalarnda ska kullanlan bu kontrolWeb.Sitemap ve XML dosyasndan
veriekebildiigibi manel olarak da veri eklenebilmektedir. Basit bir uygulama ile kontrolmz inceleyelim;
8/6/2019 asp.net giri
48/134
ASP.Nete Giri
52|S a y f a
Bir Web Uygulamas oluturalm ve sayfamza bir adetMenukontrol ekleyelim.
Menu kontrolmzn sa st tarafnda bulunan oka tkladmzda karmza ayarlamalarn yapld ufak bir panel alyor.Srasyla zellikleri inceleyelim;
Auto Format: Kontrolmzntaraycmzda 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 Itemsseeneine tklayalm ve verilerimizi manl olarak ekleyelim.
8/6/2019 asp.net giri
49/134
Ferhat BUYUKKALKAN ASP.Nete Giri
53 | S a y f a
stteki grafikte grm olduunuz gibi verilerimizi kontrolmze ekledik.
1. Add a Root Itemolarak 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.
8/6/2019 asp.net giri
50/134
ASP.Nete Giri
54|S a y f a
4. Text, Ekrande grnecek yazdr.Ayarlarmz tamamladktan sonra, Uygulamamz buildedip altralm.
Uygulamamz browserda grdnz gibi hatasz alt. Manel olarak veri eklemeyi grdk, imdi ise birSite Mapdosyasndan veri ekerek kontrolmze
eklemeyi grelim; Uygulamamza bir adetSite Mapdosyas ekleyelim.
8/6/2019 asp.net giri
51/134
Ferhat BUYUKKALKAN ASP.Nete Giri
55 | S a y f a
Uygulamamza eklediimiz Web.sitemap dosyamz aalm ve ierisindeki detaylar inceleyelim.
8/6/2019 asp.net giri
52/134
ASP.Nete Giri
56|S a y f a
Web.SitemapdosyamzXMLtabanl 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 linkinAlt
zelliinde gzkecektir.
Bilgilerimizi uygulamamzdaki sayfalara gre dolduralm. rnekolarak Ana Sayfa, rnler, Kadromuzsayfalarmzolsun ve rnlerimiz altnda Elektronik
rnler ve Dekorasyon rnleri sayfalarmz olsun. Bilgilerimizi aadaki gibi dolduralm.
8/6/2019 asp.net giri
53/134
Ferhat BUYUKKALKAN ASP.Nete Giri
57 | S a y f a
Menukontrolmze Site Mapdosyasndan verileri ekerken Choose Data Source ksmn kullanyoruz.
8/6/2019 asp.net giri
54/134
ASP.Nete Giri
58|S a y f a
stteki grafikte grdnz gibi iki seenek var. Bu iki seenekten birisini seebilir ve verilerinizioradan 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.
8/6/2019 asp.net giri
55/134
Ferhat BUYUKKALKAN ASP.Nete Giri
59 | S a y f a
Uygulamamz build edip altralm.
Menu kontrolmze Site Mapdosyasndan veri bu ekilde ekiliyor.
Data KontrolleriData 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, Datalistv.b. gelir.
Bu ksmdaAccessDataSource, SqlDataSourceveXmlDataSourcekontrollerine deineceim.Srasyla bu kontrollerimizi inceleyelim.
AccessDataSource
Microsoft Access veritabanna nesnel yol ile balanabilmemizi salayan kontroldr. Bir web uygulamasnda birden okAccessDataSourcekontrolkullanlabilir.
8/6/2019 asp.net giri
56/134
ASP.Nete Giri
60|S a y f a
Veritabann belirterekProvideri kendi oluturmaktadr. Kontroller ile bir satr kod yazmadanbile web uygulamanz tamamlayabilirsiniz.
Dataset ve DataReader veri kayna modunu destekleyenAccessDataSource 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 Accessveritabanmzn ierisine birtablooluturupApp_dataklasrmzn ierisine kayt edelim.
idOtomatik Say
adiMetin
yas say
Olarakfieldlarmz ayarlayalm ve bir ka tane rasgele ver i girii yapalm.
Web uygulamamza bir adetAccessDataSourceekleyelim.
8/6/2019 asp.net giri
57/134
Ferhat BUYUKKALKAN ASP.Nete Giri
61 | S a y f a
AccessDataSourcekontrolmz Configureedebilmemiz iin ilk nce kontrolmzn sa st tarafnda bulunan OKa tklayarak ayar panelinin almasn
salamalyz.
alan ksmdan Configure Data Source linkine tklayalm. Karmzagelen pencereden veritabanmza balant salayacak ayarlamalar yapacaz.
8/6/2019 asp.net giri
58/134
ASP.Nete Giri
62|S a y f a
Configure Data Source penceresindekiBrowsebuttonuna bastmzda bizden bir veritaban sememizi istiyor.App_dataierisindekidevelopermania.mdb
dosyamz seiyoruz ve ilerliyoruz.
8/6/2019 asp.net giri
59/134
Ferhat BUYUKKALKAN ASP.Nete Giri
63 | S a y f a
Veritabanmzn yolu Microsoft Access data fileksmnda belirdi.Nextbuttonuna tklayarak ilerleyelim.
8/6/2019 asp.net giri
60/134
ASP.Nete Giri
64|S a y f a
Bu ksmda bizden istedii; veritabanna nasl balanmak istiyorsunuz?
Numaralandrmalara gre srasyla inceleyelim
1) Specify a custom SQL Statement or Stored ProcedureBu 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 ViewBu ksmda ise 1. Ksmdakilerin tam tersi SQL cmleciini bizim vermi olduumuz talimatlara gre kendi retmektedir. Bu retmi olduu cmlecii
6. Ksmda gstermektedir.
3) NameBu ksmda Veritabanmzn ierisindeki hangi tablo ile ilem yapacamz belirtmemizi salar. Tablomuzu setiimizde otomatik olarak aadaki
Columns ksmndaki fieldlarmz grnmektedir.
4) ColumnsBu 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, AdvancedBu blmdeki butonlarn ayr ayr grevleri bulunmaktadr.
Where: Tablomuzda bir karlatrma yapmak istediimizde kullanrz genellikle. Bu ksm veritabanna direk olarak balant yaptmz srada pekkullanlmaz, Kullanm alanlar genelde Kategorileme, ye girii gibi uygulamalarda kullanlr.
8/6/2019 asp.net giri
61/134
Ferhat BUYUKKALKAN ASP.Nete Giri
65 | S a y f a
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.
8/6/2019 asp.net giri
62/134
ASP.Nete Giri
66|S a y f a
Advanced: Bu ksmda veritabanmza bir nevi veri giri izinlerini am oluyoruz. Update(Gncelleme), Insert(Yeni Kayt), Delete(Silmek) gibi izinleri
buradan verebiliriz.
8/6/2019 asp.net giri
63/134
Ferhat BUYUKKALKAN ASP.Nete Giri
67 | S a y f a
6) Buras da son olarak verdiimiz talimatlarn SQL cmleciine evrilmi ksmdr.Next diyerek ilerleyelim.
8/6/2019 asp.net giri
64/134
ASP.Nete Giri
68|S a y f a
Test Query buttonuna basarak veritabanmzdaki sorgumuzu test edebiliriz veya direkFinishe 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 adetGridviewekleyelim.
8/6/2019 asp.net giri
65/134
Ferhat BUYUKKALKAN ASP.Nete Giri
69 | S a y f a
Gridviewimizin Choose Data Sourceksmnda bulunan dropmensnden Configure etmi olduumuz Data kontrolmz seelim.
AccessDataSourcekontrolmz setiimizde Gridviewkendisini veritabanmza gre ekillendiriyor. Datakontrolmz Configure ederkenAdvanced
ksmndaki seeneicheckettiimiz iin Enable Editing ve Enable Deletingseenekleri aktif hale geldi.
8/6/2019 asp.net giri
66/134
ASP.Nete Giri
70|S a y f a
Bu seenek sayesinde Gridviewzerinden veritabanmz basitce ynetebiliriz.
Uygulamamz Build edip altralm.
8/6/2019 asp.net giri
67/134
Ferhat BUYUKKALKAN ASP.Nete Giri
71 | S a y f a
SqlDataSource
Microsoft SQL Server veritabanna nesnel olarak balanabilmemizi salayan kontroldr.AccessDataSourcede olduu gibi, Bir web uygulamasnda birden ok
SqlDataSourcekontrol kullanlabilir. Veritabanmza balanmak iin bizde bu kontrol kullanacaz.
Sayfamza srkleyerek ekelim ve brakalm. Hemen sa ksmnda bir kutucuk alyor ve Configure Data Sourcelinki kyor. O linke tklayalm ve
veritabanna balanma ilemimizi tamamlayalm
8/6/2019 asp.net giri
68/134
ASP.Nete Giri
72|S a y f a
Veritabanmz DropDownListksmnda seiyoruz ve grdnz gibiConnection Stringksmnda otomatik olarakSQL Providerimizi oluturdu kendisi. Next
diyerek ilerleyelim.
8/6/2019 asp.net giri
69/134
Ferhat BUYUKKALKAN ASP.Nete Giri
73 | S a y f a
Karmza byle bir uyar kt, Web uygulamanz iin birConnectionStringoluturmak istiyor musunuz? Uyarsna Yes, Save This Connection As: kutucuunu
iaretleyerekNexte basp devam edelim.
8/6/2019 asp.net giri
70/134
ASP.Nete Giri
74|S a y f a
Bu ksmda bizden istedii; veritabanna nasl balanmak istiyorsunuz?
8/6/2019 asp.net giri
71/134
Ferhat BUYUKKALKAN ASP.Nete Giri
75 | S a y f a
Numaralandrmalara gre srasyla inceleyelim
1) Specify a custom SQL Statement or Stored ProcedureBu 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 ViewBu ksmda ise 1. Ksmdakilerin tam tersi SQL cmleciini bizim vermi olduumuz talimatlara gre kendi retmektedir. Bu retmi olduu cmlecii
6. Ksmda gstermektedir.
3) NameBu ksmda Veritabanmzn ierisindeki hangi tablo ile ilem yapacamz belirtmemizi salar. Tablomuzu setiimizde otomatik olarak aadaki
Columns ksmndaki fieldlarmz grnmektedir.
4) ColumnsBu 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 sememizisalar.
5) Where, Order by, AdvancedBu 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.
8/6/2019 asp.net giri
72/134
ASP.Nete Giri
76|S a y f a
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.
F h BUYUKKALKAN ASP N Gi i
8/6/2019 asp.net giri
73/134
Ferhat BUYUKKALKAN ASP.Nete Giri
77 | S a y f a
Advanced: Bu ksmda veritabanmza bir nevi veri giri izinlerini am oluyoruz. Update(Gncelleme), Insert(Yeni Kayt), Delete(Silmek) gibi izinleri
buradan verebiliriz.
ASP N t Gi i
8/6/2019 asp.net giri
74/134
ASP.Nete Giri
78|S a y f a
6)
Buras da son olarak verdiimiz talimatlarn SQL cmleciine evrilmi ksmdr.
Next diyerek ilerleyelim.
F h t BUYUKKALKAN ASP N t Gi i
8/6/2019 asp.net giri
75/134
Ferhat BUYUKKALKAN ASP.Nete Giri
79 | S a y f a
Buras ayarlarmz yaptmz son admdr. imdi veritaban balantmz oluturduk ve test etmeye geldi sra Test Querybutonuna basarak veritabanmza
doru ulaabilmi miyiz kontrol edelim.
Biz tablomuza hi veri eklemediimiz iin veri kmad ekrana ama field isimleri ksa yeter bizim iin Finishdiyerek sonlandralm ayarmz.
imdi bu nesnemizi kullanabilmek iin bir baka nesneye ihtiya duymaktayz bu nesneler neler olabilir; Datalistolabilir. Gridviewolabilir. Biz Gridview
kullanalm. Sayfamza bir adetGridviewekelim ve aadaki grafikteki gibi ilerleyelim.
ASP Nete Giri
8/6/2019 asp.net giri
76/134
ASP.Net e Giri
80|S a y f a
Choose Data Sourceksmnda oluturmu olduumuz SqlDataSource belirdi. Seiyoruz ve veritabanmza balantmz kuruyoruz.
Auto Formatile Gridviewin tasarmn deitirebiliriz.
Ferhat BUYUKKALKAN ASP Nete Giri
8/6/2019 asp.net giri
77/134
Ferhat BUYUKKALKAN ASP.Net e Giri
81 | S a y f a
SqlDataSourcekontrolmz setiimizde Gridviewhemen deiti ve veritabanmzn ierisindekifieldlar tanyarak kendini ona gre ayarlad.
SqlDataSourceksmnda ayar yaparkenAdvancedayarlarnda veri izinleri vermitik bu sayede Enable Paging, Sorting, Deleting, Editing, Selection
seenekleri aktif hale geldi. Bu ayarlar kullanaraktan veritabann ynetmi olacaz. Bu seeneklericheckettikten sonra Gridviewdaha gelimi bir hale
gelecektir.
Enable Paging: Verileri Sayfalamaya yarar. Enable Sorting: Field isimlerine link verir ve sralamay DESC veya ASC olarak deitirmenizi salar.
ASP Nete Giri
8/6/2019 asp.net giri
78/134
ASP.Net e Giri
82|S a y f a
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 Templatesseeneine tklayalm.
Edit Templatesierisine bir adetDetailsVieweklememiz gerekmektedir.
Ferhat BUYUKKALKAN ASP Nete Giri
8/6/2019 asp.net giri
79/134
Ferhat BUYUKKALKAN ASP.Net e Giri
83 | S a y f a
Auto Formatksmndan tasarmn kendinize gre ayarlayabilirsiniz. Choose Data Sourceksmnda ise veritaban ayarlarmz yapm olduumuz
SqlDataSource seelim. Ardndan sadece veri eklemek istediimiz iin Enable Insertingseeneinicheckediyoruz.
Properties ayarlar ise aadaki grafikteki gibidir.
ASP Nete Giri
8/6/2019 asp.net giri
80/134
ASP.Net e Giri
84|S a y f a
DefaultModeseeneiniInsertyapmazsak, veritabanndaki veriler kutucuklarmzda yer alacaktr.Web uygulamamz Buildedelim ve hata yoksa altrp
test edelim.
Buildettikve bir hata kmad. altralm uygulamamz.
Ferhat BUYUKKALKAN ASP.Nete Giri
8/6/2019 asp.net giri
81/134
Ferhat BUYUKKALKAN ASP.Net e Giri
85 | S a y f a
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 ierisineAdd New Itemksmndan bir adetXMLsayfas oluturalm.
8/6/2019 asp.net giri
82/134
8/6/2019 asp.net giri
83/134
ASP.Nete Giri
8/6/2019 asp.net giri
84/134
88|S a y f a
Configure Data Sourcepanelimiz stteki grafikteki gibi, Data file ksm bizimXMLsayfamzn yolunu yazacamz alan. BrowseButtonuna tklayalm veXML
dosyamz seelim.
Ferhat BUYUKKALKAN ASP.Nete Giri
8/6/2019 asp.net giri
85/134
89 | S a y f a
erkanguzelkucuk.xmlsayfamz seelim ve OKbuttonuna basalm.
ASP.Nete Giri
8/6/2019 asp.net giri
86/134
90|S a y f a
Data file ksmndaXMLdosyamzn yolu belirdiOKbuttonuna basarakConfigure Data Sourceilemimizi tamamlayalm.
XMLDataSourcekontrolmz Treeviewde gstereceiz bu nedenle Toolboxdan sayfamza bir adetTreeviewekleyelim.
Ferhat BUYUKKALKAN ASP.Nete Giri
8/6/2019 asp.net giri
87/134
91 | S a y f a
Treeviewkontrolmzn sa st ksmnda bulunan OKsimgesine tklayalm ve ayarlama panelimizi aalm. Choose Data SourceksmndanXMLDataSource
kontrolmz seelim.
ASP.Nete Giri
8/6/2019 asp.net giri
88/134
92|S a y f a
XMLDataSourcekontrolmz setiimizde Treeviewkontrolmz ekilleniyor.Auto Formatksmndan Treeviewkontrolnnn tasarmn
ayarlayabilirsiniz.
Uygulamamz Buildedip altralm.
Show Linesseenei ise Checkdurumda ise Treeviewierisindeki veriler arasndaki hatlar belirgin hale geliyor.
Show LinesseeneiniCheckedelim ve uygulamamz Buildedip altralm tekrar.
8/6/2019 asp.net giri
89/134
ASP.Nete Giri
8/6/2019 asp.net giri
90/134
94|S a y f a
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 CatchFinally 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;
Ferhat BUYUKKALKAN ASP.Nete Giri
8/6/2019 asp.net giri
91/134
95 | S a y f a
Try ierisinde kodlarmz altrlyor, eer bir hata ile karlalr ise alma durduruluyor ve Catch ksmna geiyor be lirtilen birException 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 deerlergirelim)
ASP.Nete Giri
8/6/2019 asp.net giri
92/134
96|S a y f a
Master Page
ASP ile web uygulamas gelitirmiliiniz varsa eer Master Page i ok abuk kavrayacaksnz. Web sitelerinde genellikle stksm(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 ortadankalkt ve bu zellik olduka
kullanl bir ara oldu.Bir web uygulamas oluturalm ve detayl olarak inceleyelim;
Ferhat BUYUKKALKAN ASP.Nete Giri
8/6/2019 asp.net giri
93/134
97 | S a y f a
Uygulamamza bir adet Master Page ekliyoruz.
Master Page sayfamzn Sourceblmne baktmzda arasnda birContentPlaceHolderolduunu grmekteyiz. Bu ksm imdilik silelim daha sonra
bu konuya deineceim.
ASP.Nete Giri
8/6/2019 asp.net giri
94/134
98|S a y f a
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).
ContentPlaceHolderne ie yaryor burada buna deineceiz. Master Pageyi uygulayacak olan sayfalarn rahat eriebilecei ve ierik oluturabilecei alandr.
Sayfa ierisinde birden fazla ContentPlaceHolderkullanlabilir. Beyaz ksma Toolboxdan bir adetContentPlaceHolderekleyelim.
Ferhat BUYUKKALKAN ASP.Nete Giri
8/6/2019 asp.net giri
95/134
99 | S a y f a
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;
ASP.Nete Giri
8/6/2019 asp.net giri
96/134
100|S a y f a
stteki grafikte grdnz gibi WebFormunu setiimizde Bize Master Page olacak m? Diye sormaktadr. Select Master Pageseeneine check yapalm ve
devam edelim.
Ferhat BUYUKKALKAN ASP.Nete Giri
8/6/2019 asp.net giri
97/134
101 | S a y f a
Master Pageli Web formunu eklediimizde bizden bir Master Page sayfas belirtmemizi istiyor. Tasarmnyapm olduumuz erkan.master sayfasn
seiyoruz ve devam ediyoruz.
ASP.Nete Giri
8/6/2019 asp.net giri
98/134
102|S a y f a
Master Pageli bir sayfa oluturduumuzda grdnz gibi sadece ContentPlaceHolderksmna dokunabilmekteyiz. Dier ksmlarMasterPagetarafndan
kilitlenmitir. imdiContentPlaceHolderksm nasl kullanlr ksmna gelecek olursak eer, ContentPlaceHolderksmn bir aspx sayfas gibi kullanabiliriz. Bu
alanda veritabanmzdan veri ekerek gsterelim hemen.
Ferhat BUYUKKALKAN ASP.Nete Giri
8/6/2019 asp.net giri
99/134
103 | S a y f a
Veritabann Kullanma, ilerleyen konularda anlatld iin burada yzeysel olarakgeiyorum. Dahance hazrlam olduum bir veritabanm var ilemlerimizi
onun zerinden gerekletireceim. Bu ekilde sayfamza bir Gridview ve bir SqlDataSource ekleyelim ve verilerimizi veritabanmzdan ekelim. Sayfamz
Buildedip altralm.
ASP.Nete Giri
8/6/2019 asp.net giri
100/134
104|S a y f a
Grdnz gibiContentPlaceHoldersayfamzn 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 taglar arasnda
gerekletiriyorduk. Aynekilde Master Pageli bir sayfa ierisinde de bu taglar arasnda ilemlerimizi gerekletirebiliriz. Aadakigrafikte olduu gibi
Ferhat BUYUKKALKAN ASP.Nete Giri
8/6/2019 asp.net giri
101/134
105 | S a y f a
Web User ControlNedir? Nasl Kullanlr?Master Page kmadan nce kullanlan Web User ControlMaster 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 Controlieriini
her sayfaya teker teker tamamz gerekmektedir. Basit bir uygulama ile inceleyelim;
Web uygulamas oluturalm ve Add New Item blmnden bir adetWeb User Controloluturalm.
ASP.Nete Giri
8/6/2019 asp.net giri
102/134
106|S a y f a
Web User Controlsayfalarnn aspx sayfalar ile arasnda pek fark yoktur. Tasarmve kodlamalar aynen burada da yaplabilir.Arasndaki tek farkWeb User
Controlsayfalar tek bana altrlamazlar.
stteki grafikte Web User Controlsayfasnn Source ksmn grmektesiniz.
Web User Controlsayfamzn ieriini oluturalm.
Web User Controlsayfamzn ierisine bir men oluturduk ve bu meny default.aspx sayfamzda gsterelim. Web User Controlsayfamz aspx sayfalarnda
srkleyip brakarak kullanmaktayz.
Ferhat BUYUKKALKAN ASP.Nete Giri
8/6/2019 asp.net giri
103/134
107 | S a y f a
Sayfamz Build edelim ve altralm.
Default.aspx sayfamz altrdk ve Web User Controlsayfamzn nasl altn grm olduk.
Web. ConfigYap olarak XML kullanlmaktadr. Webuygulamamzdakiayarlamalarmz yapm olduumuz dosyadr.Daima web uygulamamzn alt dizininde bulunan
Web.Config dosyas uygulamamzda yok iseAdd New Item ksmndan ekleyebilirsiniz. Web.Config dosyas ile basit bir uygulama yapalm. Bu ekilde
dosyamzn gerekliliini kavrayacanza inanyorum.
ASP.Nete Giri
8/6/2019 asp.net giri
104/134
108|S a y f a
Web Config ile Veritabanna BalanmaBir proje iin kollarnz svadnzda ilk aklnza gelen ey veritabandr. Verileri hangi veritabannda, hangi yntemle saklayacam ve naslbalanacam? Bugn nasl balanacam sorusuna biraz deinelim.Veritabanna balanmann birok yolu vardr. Bunlardan birisi de Web. config ile balanma.Gelimi bir proje zerinde altnzda veritabanyolunun 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. Configile balanten mantkl yol olarak grnyor. Bir rnekle bunu nasl yapacamzgrelim.
Projemizde yer alan Web. Config dosyasn aalm, ardndan kodlarmz yazmaya balayalm.
Kodlarmz aadakitaglar 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.
Ferhat BUYUKKALKAN ASP.Nete Giri
8/6/2019 asp.net giri
105/134
109 | S a y f a
Ado.Net 2.0 ile gelen ConfigurationManagementn iki ayr snf vardr. Bunlardan birisi ConfigurationManager dieri ise
WebconfigurationManager.
ConfigurationManager:SadeceWeb deil dier Platformlar da gz nne alr. WebconfigurationManager:SadeceWeb tabanl uygulamalar iin tasarlanm yeler ierir.
BizWebconfigurationManagersnfn kullanarakWeb. configierisinden balantmz ekeceiz.
Connectionstringimize Web.Config ierisinde vermi olduumuznamei kullanyoruz.
Bu ekilde baglanti deikenimize Web.config dosyasndaki balantmz aktarm olduk. imdi bu deikenimiz ile istediimiz ilemi yapabiliriz.
lk olarak veritabanndaki tablomuza balanabilmek iin birOleDbDataAdapternesnesi tanmlayalm veDatasetkullanarak
verilerimiziGridviewe aktaralm.
Projemizi Build edelim ve bir hata yoksa altralm.
ASP.Nete Giri
8/6/2019 asp.net giri
106/134
110|S a y f a
Bir hata yok projemizi altrabiliriz.
Ferhat BUYUKKALKAN ASP.Nete Giri
8/6/2019 asp.net giri
107/134
111 | S a y f a
Verileri YnetmekMicrosoft, ActiveX Data Objectsi gelitirmeye balad ve ADO.Neti yaratt. Peki,ADO ile ADO.Net arasndaki farkllklar nelerdir. En nemli farkllklar
unlardr; Recordsetartk tarihe kart.ADO.Net artk daha geni leklenebilir snflar yaratt. BunlarDataAdapterve Datasetsnflardr. Birbaka adan
baktmzda ADO sadece OleDbProvider 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 istiyorsanzwww.oracle.comadresinden 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 bakaynden bakacak olursak eer,
ADO ile her balant iin ayr birRecordsetoluturmamz gerekiyordu.
ADO.Net bu performans kayplarna yer vermemek iin DataSetnesnesiniretti 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.
ASP.Nete Giri
http://www.oracle.com/http://www.oracle.com/http://www.oracle.com/http://www.oracle.com/8/6/2019 asp.net giri
108/134
112|S a y f a
ADO.Neti KullanmakADO ile veritabanna balanabilmek iin Connection ve Recordsetkullanyorduk. 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
SqlConnectionNesnesi: Bu nesne zellikle SQL Server 7.0 ile sonraki srmlere balant iin tasarlanmtr. OleDbConnection Nesnesi: MicrosoftAccess ve benzeri veritaban ile balant kurmak iin tasarlanmtr.
Ferhat BUYUKKALKAN ASP.Nete Giri
C d Obj (K N i)
8/6/2019 asp.net giri
109/134
113 | S a y f a
Command Object(Komut Nesnesi)
Komut nesnesi iki ana snfa ayrlr bunlar; SqlCommandve OleDbCommanddr. Komutnesneleri bir veritaban balants zerinden komutlar altrmak iin
kullanlr. CommandNesneleri, veritabannda saklanan Prosedrlerialtrmak iin kullanlabilir.
Komut nesneleri veritaban zerinden komut yrtmek iin yntem kullanr;
ExecuteNonQuery: Insert, Update ve Deletegibi geri dn olmayan Values komutlarn yrtr. ExecuteScalar: Tekbir deeri veritabanndan sorgular ve dndrr. ExecuteReader: DataReaderNesnesine sonu dndrr.
DataReader Object(DataReader Nesnesi)
DataReader nesnesi sadece veri okumay salar. DataReader komut nesnesinin ExecuteReader yntemi sonucu olarakdndrr.
SqlCommand. ExecuteReaderyntemiSqlDataReaderNesnesini dndrr. OleDbCommand. ExecuteReaderyntemi ise OleDbDataReaderNesnesini
dndrr.
DataAdapter Object(DataAdapter Nesnesi)
DataAdapterin asl grevi veritaban ve DataSetarasndaki iletiimi kolaylatrmaktr. DataAdapterveritabanna balanty aar, istenilen sorguyu sorarcevap alr ve bu cevab DataSete tar ardndan balanty kapatr.DataAdapterveritaban komutlarn temsil eden drt zellik vardr;
InsertCommand: Yeniveri kayd girmek iin kullanlr. SelectCommand: Veritabanndan verileri semek iin kullanlr. DeleteCommand: Veritabanndanveri 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.
ASP.Nete Giri
8/6/2019 asp.net giri
110/134
114|S a y f a
Default.aspx.csdosyamzn ierisine girerek kodlarmz yazmaya balayalm.
Sistem ktphanemizi eklemeyi unutmayalm!
Ferhat BUYUKKALKAN ASP.Nete Giri
8/6/2019 asp.net giri
111/134
115 | S a y f a
SqlConnectionile veritaban balantmz oluturduk, ConnectionStringile veritabanmzn Providerini ve veritabanmzn yolunu belirttik. ArdndanSqlDataAdapterile veritabanndakiDevelopermaniaadndaki tabloyu alp DataSetierisinde tablo1adndaki tabloya tadk.
Sayfama eklediim Gridviewde ise verilerimizi gsterdik.
stteki grafikte DataSet ierisindeki tablomuzun indexnumarasn vererek ektik bir baka yolu da u ekildedir.
Tablomuzun isminivererek de balanabiliriz. Web uygulamamz Buildedip altralm.
ASP.Nete Giri
8/6/2019 asp.net giri
112/134
116|S a y f a
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
Ferhat BUYUKKALKAN ASP.Nete Giri
V it b E i k K ll k
8/6/2019 asp.net giri
113/134
117 | S a y f a
Veritabanna Erimek ve KullanmakHer yazlmc bir web projesine balamadan nce hangi veritabann hangi yollar ile kullanacan belirler ve o yol zerinden web uygulamalarn gelitirir.
rnekverecek 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. OnlineAlveri Maazas web
uygulamasna balarken aklnza gelecek ilk konu u olmaldr. Online Sat yapacak olan Alveri Maazasnn web uygulamasdevaml veri ak ierisinde
olaca iin salam yaps olan bir veritaban seilmelidir. Salam veritabanndan kastm udur ki; Microsoft Access veritaban olarak kullanlrken on bin veyadaha ok veri girildiinde veri ak yavalyor ve bu yavalamada web uygulamanzn performansn olduka d recektir. Bu tr web uygulamalarnda
genellikle SQL Server veritaban kullanlmaktadr. Basitbir web uygulamas oluturalm ve veritabanmz nasl kullanabiliriz inceleyelim.
Bir web uygulamas oluturduktan sonra, uygulamamza bir adet SQL Server veritaban ekleyelim.
Website/AddNewItemyolunu izleyerek veritabanmz ekleyelim.
ASP.Nete Giri
8/6/2019 asp.net giri
114/134
118|S a y f a
Add butonuna bastnzda karnza bir bilgi kutucuu alacak o bilgi kutusunda: Veritabannz App_Data klasr ierisindebarndralm m? Diye soruyor.
Evet, butonuna basarak devam edelim.
imdi gelelim tablomuzu oluturmaya. Aadakigrafikte olduu gibi Tables zerine gelerek sa tklaypAdd New Table seeneini seiyoruz.
Ferhat BUYUKKALKAN ASP.Nete Giri
8/6/2019 asp.net giri
115/134
119 | S a y f a
Tablomuzun Fieldlarn aadaki gibi oluturalm.
8/6/2019 asp.net giri
116/134
Ferhat BUYUKKALKAN ASP.Nete Giri
Properties panelinden IdentitySpefication altnda bulunan (Is Identity) seeneini Yes yapalm. Ardndan veritabanmzn id fieldna birincil
8/6/2019 asp.net giri
117/134
121 | S a y f a
Properties panelinden Identity Speficationaltnda bulunan (Is Identity) seeneiniYesyapalm. Ardndan veritabanmzn id field na birincil
anahtar(Primary Key) deer vermemiz gerekmektedir. Aadakigrafikte bunu nasl yapacanz hakknda bilgi vermektedir.
Veritaban Tablomuzu CTRL+S ksa yolunu kullanarak kayt edelim. smiDevelopermania olsun
Grdnz gibi Server Explorer ksmnda Tables Altnda veritabanmz ve fieldlar yer ald. imdibu 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
ASP.Nete Giri
balanmak iin kullanacamz snflar ve balant Providerini detayl olarak bilmediinizden dolaydr. Kod ksmna eer girersek bir kitap daha yazmak
8/6/2019 asp.net giri
118/134
122|S a y f a
balanmak iin kullanacamz snflar ve balant Provider ini 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 okAccessDataSourcekontrol kullanlabilir.
Veritabann belirterekProvideri kendi oluturmaktadr. Kontroller ile bir satr kod yazmadan bile web uygulamanz tamamlayabilirsiniz.
SqlDataSource: Microsoft SQL Serververitabanna nesnel olarak balanabilmemizi salayan kontroldr.AccessDataSourcede olduu gibi, Bir web
uygulamasnda birden okSqlDataSourcekontrol kullanlabilir. Veritabanmza balanmak iin bizde bu kontrol kullanacaz.
Sayfamza srkleyerek ekelim ve brakalm. Hemen sa ksmnda bir kutucuk alyor ve Configure Data Sourcelinki kyor. O linke tklayalm ve
veritabanna balanma ilemimizi tamamlayalm
Ferhat BUYUKKALKAN ASP.Nete Giri
8/6/2019 asp.net giri
119/134
123 | S a y f a
Veritabanmz DropDownListksmnda seiyoruz ve grdnz gibiConnection Stringksmnda otomatik olarakSQL Providerimizi oluturdu kendisi. Next
diyerek ilerleyelim.
ASP.Nete Giri
8/6/2019 asp.net giri
120/134
124|S a y f a
Karmza byle bir uyar kt, Web uygulamanz iin birConnectionStringoluturmak istiyor musunuz? Uyarsna Yes, Save This Connection As: kutucuunu
iaretleyerekNexte basp devam edelim.
Ferhat BUYUKKALKAN ASP.Nete Giri
8/6/2019 asp.net giri
121/134
125 | S a y f a
Geldik can alc noktalardan birisine
ASP.Nete Giri
Bu ksmda bizden istedii; veritabanna nasl balanmak istiyorsunuz?
8/6/2019 asp.net giri
122/134
126|S a y f a
Numaralandrmalara gre srasyla inceleyelim
7) Specify a custom SQL Statement or Stored ProcedureBu ksm tablomuzazel olarakayrntl bir ekilde balant kurmamz salar bu ksm seili olursa eer SQL cmleciklerimizi kendimiz yazmamz
gerekecek.
8) Specify Columns From a Table or ViewBu ksmda ise 1. Ksmdakilerin tam tersi SQL cmleciini bizim vermi olduumuz talimatlara gre kendi retmektedir. Bu retmi olduu cmlecii
6. Ksmda gstermektedir.
9) NameBu ksmda Veritabanmzn ierisindeki hangi tablo ile ilem yapacamz belirtmemizi salar. Tablomuzusetiimizde otomatik olarak aadaki
Columns ksmndaki fieldlarmz grnmektedir.
10)ColumnsBu ksm tablomuzdaki fieldlarmz gstermektedir ve hangi field ierisindeki verileri ekmek istediimizi burada belirleriz. Bizim drt adet fieldmzvard fakat burada be adet var bunun nedeni yldz(*) seeneidir. Bu yldz seenei tablomuzdaki btn fieldlar sememizisalar.
11)Where, Order by, AdvancedBu 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 ksmdafielde 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.
Ferhat BUYUKKALKAN ASP.Nete Giri
8/6/2019 asp.net giri
123/134
127 | S a y f a
Buras ayarlarmz yaptmz son admdr. imdi veritaban balantmz oluturduk ve test etmeye geldi sra Test Querybutonuna 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; Datalistolabilir. Gridviewolabilir. Biz Gridview
kullanalm. Sayfamza bir adetGridviewekelim ve aadaki grafikteki gibi ilerleyelim.
ASP.Nete Giri
8/6/2019 asp.net giri
124/134
128|S a y f a
Choose Data Sourceksmnda oluturmu olduumuz SqlDataSource belirdi. Seiyoruz ve veritabanmza balantmz kuruyoruz.
Auto Formatile Gridviewin tasarmn deitirebiliriz.
Ferhat BUYUKKALKAN ASP.Nete Giri
8/6/2019 asp.net giri
125/134
129 | S a y f a
SqlDataSource nesnemizi setiimizde Gridview hemen deiti ve veritabanmzn ierisindeki fieldlar tanyarak kendini ona gre ayarlad. SqlDataSource
ksmnda ayar yaparkenAdvancedayarlarnda veri izinleri vermitik bu sayede Enable Paging, Sorting, Deleting, Editing, Selectionseenekleri aktif hale
geldi. Bu ayarlar kullanaraktan veritabann ynetmi olacaz. Bu seeneklericheckettikten 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.
ASP.Nete Giri
Enable Editing: Veriyi dzenlemeye yarar. Tkladnzda veriler textbox ierisinde aktif olarak gncellemenizi salar.
8/6/2019 asp.net giri
126/134
130|S a y f a
Enable Selection: Veriyi semeye yarar.Peki, Yeni bir kayt nasleklerim?
ok gzel bir soru hemen anlataym; Edit Templatesseeneine tklayalm.
Edit Templatesierisine bir adetDetailsVieweklememiz gerekmektedir.
Ferhat BUYUKKALKAN ASP.Nete Giri
8/6/2019 asp.net giri
127/134
131 | S a y f a
Auto Formatksmndan tasarmn kendinize gre ayarlayabilirsiniz. Choose Data Sourceksmnda ise veritaban ayarlarmz yapm olduumuz
SqlDataSource seelim. Ardndansadece veri eklemek istediimiz iin Enable Insertingseeneinicheckediyoruz.
Properties ayarlar ise aadaki grafikteki gibidir.
ASP.Nete Giri
8/6/2019 asp.net giri
128/134
132|S a y f a
Web uygulamamz Buildedelim ve hata yoksa altrp test edelim.
Buildettik ve bir hata kmad. altralm uygulamamz.
Ferhat BUYUKKALKAN ASP.Nete Giri
8/6/2019 asp.net giri
129/134
133 | S a y f a
Web uygulamamz altrdk grdnz gibi hem yeni veri ekleyebilmekteyiz hem silip hem de gncelleyebilmekteyiz. Veritabanmz SqlDataSource
kontrol ile bu ekilde kullanmaktayz.
Enable Editingseenei ise Enable Insertteki gibi ayn ilemler ile aktif hale getirilir. GridviewierisindekiGncelleme paneli haricinde bir alan oluturularak
Gncellemeyapmak iin kullanlr.stteki grafikte oldugu gibiDefaultMode Inserthaline getirilmelidir.Getirilmez ise veri gncellenemez.
ASP.Nete Giri
8/6/2019 asp.net giri
130/134
134|S a y f a
Enable Pagingile verileri sayfalarz ve her verinin altta linki belirir.
Sayfamz Buildedip altralm.
Ferhat BUYUKKALKAN ASP.Nete Giri
8/6/2019 asp.net giri
131/134
135 | S a y f a
Alt ksmmda yer alan saylar verilerimizinidlerini gstertmektedir. Tkladnzda gncelleme formuna verileri armaktadr.
ASP.Nete Giri
Blogsa Nedir?
8/6/2019 asp.net giri
132/134
136|S a y f a
Blogsa cretsiz, ak kaynakl Tamamen Asp.NET ve C# kodlama dili ile yazlm bir Blog sistemidir.
Ayn zamanda bir blog sistemi zerinde ierisinde birokeklentiyi barndran sayfann her alannda size dzenleme imknsunan, 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 veritabanyaplarn 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 birdilde 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