{"id":395,"date":"2010-06-24T15:17:55","date_gmt":"2010-06-24T15:17:55","guid":{"rendered":"http:\/\/www.erbugkaya.com\/?p=395"},"modified":"2014-01-16T23:49:56","modified_gmt":"2014-01-16T23:49:56","slug":"dinamik-web-sitesi-bolum-02-database-ve-database-baglantisi","status":"publish","type":"post","link":"http:\/\/erbugkaya.com\/?p=395","title":{"rendered":"Dinamik Web Sitesi &#8211; B\u00f6l\u00fcm 02- Database ve Database ba\u011flant\u0131s\u0131"},"content":{"rendered":"<p><em>9\/5\/2007<\/em><br \/>\nMerhaba bu makalemde, ilk makalede tasar\u0131m\u0131n\u0131 oturttu\u011fumuz Frp Kitap Merkezi sitesini dinamik hale getirmek i\u00e7in ilk ad\u0131mlar\u0131m\u0131z\u0131 ataca\u011f\u0131z. Bu a\u015famada database olarak Microsoft SQL Server 2005 Express Edition&#8217;u kullanaca\u011f\u0131z. SQL Server ile ilgili yard\u0131mlar\u0131 i\u00e7in ekip arkada\u015f\u0131m Behl\u00fcl Behram&#8217;a \u00e7ok te\u015fekk\u00fcrler. E\u011fer y\u0131llard\u0131r yapt\u0131\u011f\u0131n\u0131z tasar\u0131mlar\u0131 statik olarak haz\u0131rlamaktan s\u0131k\u0131l\u0131p s\u0131k\u0131l\u0131p s\u00fcrekli bir o dile bir bu dile bula\u015f\u0131p, hi\u00e7 birinden istedi\u011finiz sonucu tam olarak alamad\u0131ysan\u0131z, bir t\u00fcrl\u00fc dinamik web sitesine nereden ba\u015flayaca\u011f\u0131n\u0131z\u0131 bilemediyseniz, internette buldu\u011funuz dok\u00fcmanlar tasar\u0131mc\u0131 olarak sizin bilginizin \u00fcst\u00fcnde idiyse; bu makale dinamik web sitesi yaratmaya ba\u015flamak i\u00e7in iyi bir nokta olacakt\u0131r. Bu makalede SQL Server Express Edition kurulumunu, SQL Express&#8217;de database olu\u015fturmay\u0131 ve SQL database&#8217;den veri \u00e7ekmeyi anlataca\u011f\u0131m.<\/p>\n<p><!--more--><br \/>\nBa\u015flayal\u0131m. \u0130lk \u00f6nce database i\u00e7in Microsoft SQL Server Express ve Microsoft SQL Server Management Studio Express&#8217;i indirece\u011fiz. Neden MS SQL Express diyecek olursan\u0131z. Her \u015feyden \u00f6nce bedava olduklar\u0131 i\u00e7in diyebilirim. Bunun d\u0131\u015f\u0131nda ASP.NET ile dinamik bir site olu\u015fturacaksak, yine Microsoft&#8217;un \u00fcr\u00fcnlerini kullanmak bizi bir s\u00fcr\u00fc dertten kurtaracakt\u0131r.<\/p>\n<p>Microsoft SQL Server Express&#8217;i indirmek i\u00e7in;<br \/>\n<a href=\"http:\/\/msdn.microsoft.com\/vstudio\/express\/sql\/download\/\"> http:\/\/msdn.microsoft.com\/vstudio\/express\/sql\/download\/<\/a><\/p>\n<p>Microsoft SQL Server Management Studio Express&#8217;i indirmek i\u00e7in;<br \/>\n<a href=\"http:\/\/www.microsoft.com\/downloads\/details.aspx?displaylang=en&amp;FamilyID=C243A5AE-4BD1-4E3D-94B8-5A0F62BF7796\"> http:\/\/www.microsoft.com\/downloads\/details.aspx?displaylang=en&amp;FamilyID=C243A5AE-4BD1-4E3D-94B8-5A0F62BF7796<\/a><\/p>\n<p>adreslerini kullanabilirsiniz.<\/p>\n<p>\u015eimdi kurulumlara ba\u015flayabiliriz. \u0130lk \u00f6nce SQL Server. SQLEXPR32.EXE&#8217;ye \u00e7ift t\u0131klay\u0131p, gelen lisans anla\u015fmas\u0131n\u0131 kabul edip Next&#8217;e bas\u0131yoruz. Gelen ekranda &#8220;Install&#8221;&#8216;a basarak devam ediyoruz. Bu kurulumu ba\u015far\u0131yla tamamlay\u0131nca Next ile devam ediyoruz.<\/p>\n<p><a href=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_01.jpg\"><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_01.jpg\" width=\"292\" height=\"270\" \/><\/a><\/p>\n<p>Tekrar Next.<\/p>\n<p><a href=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_02.jpg\"><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_02.jpg\" width=\"296\" height=\"269\" \/><\/a><\/p>\n<p>Sisteminiz kontrolden ba\u015far\u0131yla \u00e7\u0131karsa yine Next.<\/p>\n<p><a href=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_03.jpg\"><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_03.jpg\" width=\"296\" height=\"269\" \/><\/a><\/p>\n<p>Gelen ekranda isim ve \u015firket alanlar\u0131n\u0131 doldurup tekrar Next.<\/p>\n<p><a href=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_04.jpg\"><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_04.jpg\" width=\"292\" height=\"269\" \/><\/a><\/p>\n<p>Bir \u015fey de\u011fi\u015ftirmeden tekrar Next.<\/p>\n<p><a href=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_05.jpg\"><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_05.jpg\" width=\"292\" height=\"269\" \/><\/a><\/p>\n<p>SQL&#8217;e ba\u011flan\u0131rken nas\u0131l onaylanaca\u011f\u0131n\u0131z\u0131 soran ekranda ben &#8220;Windows Authentication Mode&#8221; ile devam ediyorum.<\/p>\n<p><a href=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_06.jpg\"><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_06.jpg\" width=\"292\" height=\"269\" \/><\/a><\/p>\n<p>Bilgisayar sadece bana ait bir g\u00fcvenil sorunum yok bu sebeple &#8220;Enable User Instance&#8221; ile devam ediyorum.<\/p>\n<p><a href=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_07.jpg\"><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_07.jpg\" width=\"292\" height=\"269\" \/><\/a><\/p>\n<p>Microsoft&#8217;un raporlamalar hakk\u0131nda bilgi istedi\u011fi ekranda karar sizin. Next ile devam.<\/p>\n<p><a href=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_09.jpg\"><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_09.jpg\" width=\"292\" height=\"269\" \/><\/a><\/p>\n<p>B\u00fct\u00fcn bunlar\u0131n sonucunda SQL y\u00fcklenmeye haz\u0131r. &#8220;Install&#8221;&#8216;a bas\u0131p devam ediyoruz.<\/p>\n<p><a href=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_10.jpg\"><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_10.jpg\" width=\"292\" height=\"269\" \/><\/a><\/p>\n<p>Bir s\u00fcre y\u00fckleme ekran\u0131n\u0131 bekledikten sonra her \u015fey yolundaysa Next ile devam ediyoruz.<\/p>\n<p><a href=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_11.jpg\"><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_11.jpg\" width=\"293\" height=\"272\" \/><\/a><\/p>\n<p>Finish ile bitiriyoruz.<\/p>\n<p><a href=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_12.jpg\"><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_12.jpg\" width=\"293\" height=\"272\" \/><\/a><\/p>\n<p>Bu i\u015flemler sonucunda bilgisayar\u0131m\u0131za SQL server&#8217;\u0131 kurmu\u015f olduk. Ama database olu\u015fturabilmemiz i\u00e7in Microsoft SQL Server Management Studio Express&#8217;ide kurmam\u0131z gerekiyor. Ba\u015fl\u0131yal\u0131m.<\/p>\n<p>SQLServer2005_SSMSEE.msi&#8217;a \u00e7ift t\u0131kl\u0131yoruz. \u0130lk gelen ekrandan Next ile devam ediyoruz. S\u00f6zle\u015fme ekran\u0131n\u0131 da kabul edip Next ile devam ediyoruz. Tekrar isim ve \u015firket soran ekran geliyor. Bunlar\u0131da doldurup Next. Nereye ne y\u00fckleyece\u011fini soran ekranda da bir de\u011fi\u015fiklik yapmadan Next.<\/p>\n<p><a href=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_13.jpg\"><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_13.jpg\" width=\"302\" height=\"232\" \/><\/a><\/p>\n<p>Gelen ekranda Install ile devam ediyoruz.<\/p>\n<p><a href=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_14.jpg\"><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_14.jpg\" width=\"302\" height=\"232\" \/><\/a><\/p>\n<p>Finish ile kurulumu tamaml\u0131yoruz. B\u00f6ylece SQL Express Edition kullan\u0131ma haz\u0131r. Alttaki gibi program\u0131 a\u00e7\u0131yoruz.<\/p>\n<p><a href=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_15.jpg\"><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_15.jpg\" width=\"432\" height=\"134\" \/><\/a><\/p>\n<p>Program a\u00e7\u0131ld\u0131\u011f\u0131nda Server&#8217;a ba\u011flant\u0131y\u0131 soran ekran gelecek. Connect ile devam ediyoruz.<\/p>\n<p><a href=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_16.jpg\"><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_16.jpg\" width=\"250\" height=\"189\" \/><\/a><\/p>\n<p>Evet art\u0131k dabase&#8217;imizi olu\u015fturmaya ba\u015flayabiliriz. Bunlar\u0131 yaparken elbette SQL&#8217;in derinliklerine dalmayaca\u011f\u0131z. Sadece i\u015fimizi g\u00f6recek kadar k\u0131sm\u0131n\u0131 kullanaca\u011f\u0131z.<\/p>\n<p><a href=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_17.jpg\"><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_17.jpg\" width=\"360\" height=\"263\" \/><\/a><\/p>\n<p>Ba\u015flayal\u0131m. Object Explorer&#8217;daki Databases klas\u00f6r\u00fcne sa\u011f klik yaparak a\u00e7\u0131lan menuden New Database&#8217;e t\u0131kl\u0131yoruz.<\/p>\n<p><a href=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_18.jpg\"><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_18.jpg\" width=\"178\" height=\"163\" \/><\/a><\/p>\n<p>Gelen New Database ekran\u0131nda sadece Database ismini verip OK ile \u00e7\u0131k\u0131yoruz. Elbette daha bir \u00e7ok ayar var ama default olarak gelen ayarlar bizim i\u015fimizi g\u00f6rmeye yetecek. Database&#8217;i isimlendirirken karakterler aras\u0131nda bo\u015fluk b\u0131rakmamaya dikkat edin.<\/p>\n<p><a href=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_19.jpg\"><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_19.jpg\" width=\"422\" height=\"379\" \/><\/a><\/p>\n<p>Object Explorer&#8217;daki Databases alt\u0131nda yeni database&#8217;imiz haz\u0131r.<\/p>\n<p><a href=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_20.jpg\"><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_20.jpg\" width=\"166\" height=\"109\" \/><\/a><\/p>\n<p>Database&#8217;imizin alt\u0131nda onunla ilgili \u00f6zelliklerde haz\u0131r. Biz bunlardan sadece Database Diagrams ve Tables&#8217;\u0131 kullanaca\u011f\u0131z.<\/p>\n<p><a href=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_21.jpg\"><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_21.jpg\" width=\"166\" height=\"123\" \/><\/a><\/p>\n<p>Tablolar\u0131m\u0131z neler olacak ve bu tablolar neler i\u00e7erecek? Bunu \u00e7\u00f6z\u00fcmleyelim.<\/p>\n<p>1- Kitap Listesi<br \/>\na- Kitab\u0131n ID<br \/>\nb- Kitab\u0131n ismi<br \/>\nc- Kitab\u0131n resmi<br \/>\nd- Kitab\u0131n yazar\u0131<\/p>\n<p>2- Kitap Detay<br \/>\na- Kitap ID<br \/>\nb- Kitap detay ID<br \/>\nc- Kitap Bask\u0131 Y\u0131l\u0131<br \/>\nd- Yay\u0131n evi<br \/>\ne- Sayfa say\u0131s\u0131<br \/>\nf- A\u00e7\u0131klama<\/p>\n<p>3- Yazar<br \/>\na- Yazar ID<br \/>\nb- Yazar ismi<br \/>\nc- Yazar\u0131n resmi<br \/>\nd- Yazar\u0131n A\u00e7\u0131klamas\u0131<\/p>\n<p>4-Mesajlar<br \/>\na- Mesaj ID<br \/>\nb- Mesaj Ba\u015fl\u0131\u011f\u0131<br \/>\nc- Mesaj\u0131n girildi\u011fi tarih<br \/>\nd- Mesaj alan\u0131<\/p>\n<p>Tablolar\u0131m\u0131z\u0131 belirledi\u011fimize g\u00f6re \u015fimdi bunlar\u0131 database&#8217;mizde olu\u015fturabiliriz. Database&#8217;in alt\u0131ndaki Tables&#8217;a sa\u011f klik yap\u0131p gelen men\u00fcden &#8220;New Table&#8221;a bas\u0131yoruz.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_22.jpg\" width=\"193\" height=\"117\" \/><\/p>\n<p>\u0130lk tablomuzu a\u015fa\u011f\u0131daki gibi olu\u015fturuyoruz. Bu kitaplar\u0131n ismini tutacak tablo. Column Name&#8217;leri elle yazarken Data Type&#8217;lar\u0131 gelen men\u00fcden se\u00e7iyoruz. S\u0131ras\u0131yla olanlar\u0131 a\u00e7\u0131klayay\u0131m. &#8220;kitapID&#8221; ile her kitaba sadece ona ait olan bir numara verece\u011fiz. Bu sebeple data tipini (Data Type) int (tam say\u0131) olarak belirledik. Allow Nulls i\u015faretli de\u011fil \u00e7\u00fcnk\u00fc bu alan bo\u015f kalmas\u0131n istiyoruz. &#8220;kitapIsmi&#8221; i\u00e7in maksimum s\u0131n\u0131rs\u0131z karakterlik bir alan ay\u0131rd\u0131k. nvarchar kullanmam\u0131z\u0131n sebebi ise SQL o alana girilen kadar yer ay\u0131rs\u0131n istememizden kaynaklan\u0131yor. &#8220;kitapYazar&#8221; i\u00e7in nvarchar(50) kulland\u0131k. B\u00f6ylece bu alan\u0131n maksimum 50 karakterlik bir alan oldu\u011funu belirttik. &#8220;kitapImage&#8221; de ise Allow Nulls&#8217;u i\u015faretledik \u00e7\u00fcnk\u00fc kitap i\u00e7in resim olmayabilir.<\/p>\n<p><a href=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_24.jpg\"><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_24.jpg\" width=\"208\" height=\"118\" \/><\/a><\/p>\n<p>kitapID h\u00fccresi se\u00e7ili iken a\u00e7\u0131lan column properties&#8217;de Identity Specification&#8217;u &#8220;Yes&#8221;e \u00e7evirip Increment ve Seed&#8217;i &#8220;1&#8221; yap\u0131yoruz. Bu SQL&#8217;e ID numaralar\u0131n\u0131 sen ver ve birer birer arts\u0131n demek.<\/p>\n<p><a href=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_25.jpg\"><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_25.jpg\" width=\"294\" height=\"47\" \/><\/a><\/p>\n<p>kitapID&#8217;nin solundaki kutucu\u011fa sa\u011f klik yap\u0131p gelen men\u00fcden Set Primary Key&#8217;e bas\u0131yoruz.<\/p>\n<p><a href=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_26.jpg\"><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_26.jpg\" width=\"205\" height=\"169\" \/><\/a><\/p>\n<p>B\u00f6ylece kitapID&#8217;ye atanan her numaran\u0131n bir kez kullan\u0131labilir olmas\u0131n\u0131 sa\u011flad\u0131k.<\/p>\n<p><a href=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_27.jpg\"><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_27.jpg\" width=\"209\" height=\"84\" \/><\/a><\/p>\n<p>Tabloyu kaydetmek istedi\u011fimizde program bir isim belirlememizi istiyor. \u0130smimizi verip OK ile ilk tablomuzu tamaml\u0131yoruz.<\/p>\n<p><a href=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_28.jpg\"><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_28.jpg\" width=\"201\" height=\"76\" \/><\/a><\/p>\n<p>B\u00f6ylece ilk Table&#8217;\u0131m\u0131z\u0131 haz\u0131rlam\u0131\u015f olduk.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_29.jpg\" width=\"272\" height=\"142\" \/><\/p>\n<p>\u015eimdi s\u0131rada kitap detay tablosu var. Biraz \u00f6nce haz\u0131rlad\u0131\u011f\u0131m\u0131z \u015fekilde yeni tablomuzu haz\u0131rl\u0131yoruz. Bu tabloda &#8220;kitapDetayID&#8221; primary key.<\/p>\n<p><a href=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_30.jpg\"><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_30.jpg\" width=\"211\" height=\"111\" \/><\/a><\/p>\n<p><a href=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_31.jpg\"><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_31.jpg\" width=\"293\" height=\"46\" \/><\/a><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_32.jpg\" width=\"172\" height=\"96\" \/><\/p>\n<p>\u015eimdi s\u0131rada yazarlar tablosu var. Yazar tablosunu da h\u0131zl\u0131ca olu\u015fturuyoruz.<\/p>\n<p><a href=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_33.jpg\"><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_33.jpg\" width=\"209\" height=\"85\" \/><\/a><\/p>\n<p>S\u0131rada mesaj tablosu var. Mesaj tablosunu da olu\u015fturduk. Bu tabloda da ID&#8217;yi otomatik verdirtmeyi unutmay\u0131n.<\/p>\n<p><a href=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_34.jpg\"><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_34.jpg\" width=\"206\" height=\"87\" \/><\/a><\/p>\n<p>B\u00f6ylece tablolar\u0131m\u0131z\u0131 tamamlam\u0131\u015f olduk.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_35.jpg\" width=\"145\" height=\"96\" \/><\/p>\n<p>\u015eimdi tablolar aras\u0131ndaki ili\u015fkileri (relationship) d\u00fczenleyece\u011fiz. Burada birbiriyle ili\u015fkisi olan iki tablomuz dbo.kitap ve dbo.kitapDetay. kitapDetay, kitap tablosuna ba\u011fl\u0131 olarak \u00e7al\u0131\u015facak. \u015eimdi bu ili\u015fkiyi kural\u0131m. Database Diagrams&#8217;a sa\u011f t\u0131klay\u0131p a\u00e7\u0131lan men\u00fcde New Database Diagram&#8217;a baz\u0131yoruz.<\/p>\n<p><a href=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_36.jpg\"><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_36.jpg\" width=\"185\" height=\"115\" \/><\/a><\/p>\n<p>A\u00e7\u0131lan yeni sayfa ile birlikte Add Table ekran\u0131 geliyor. Buradan kitap ve kitapDetay&#8217;\u0131 se\u00e7ip Add&#8217;e bas\u0131yoruz ve Close ile ekran\u0131 kap\u0131yoruz.<\/p>\n<p><a href=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_37.jpg\"><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_37.jpg\" width=\"244\" height=\"195\" \/><\/a><\/p>\n<p>Ekran\u0131n ortas\u0131nda iki table kutu \u015feklinde g\u00f6r\u00fcn\u00fcr olmu\u015f olmal\u0131lar. Bu kutular\u0131 istedi\u011finiz yere s\u00fcr\u00fckleyebilirsiniz.<br \/>\n<a href=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_38.jpg\"><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_38.jpg\" width=\"293\" height=\"169\" \/><\/a><\/p>\n<p>Mouse imlecini kitap kutusundaki kitapID&#8217;nin solundaki kutucu\u011fa t\u0131klay\u0131p s\u00fcr\u00fckleyerek, kitapDetay kutucu\u011funun, kitapID&#8217;sine g\u00f6t\u00fcr\u00fcyoruz.<\/p>\n<p><a href=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_39.jpg\"><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_39.jpg\" width=\"386\" height=\"223\" \/><\/a><\/p>\n<p>Nerden nereye ve neyle neyi ili\u015fiklendirdi\u011fimizi g\u00f6steren bir ekran a\u00e7\u0131yor. Relationship do\u011fru ise OK ile kap\u0131yoruz.<\/p>\n<p><a href=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_40.jpg\"><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_40.jpg\" width=\"277\" height=\"212\" \/><\/a><\/p>\n<p>Arkadan gelen ekran\u0131 da bir de\u011fi\u015fiklik yapmadan OK ile kap\u0131yoruz.<\/p>\n<p><a href=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_41.jpg\"><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_41.jpg\" width=\"340\" height=\"220\" \/><\/a><\/p>\n<p>Diyagram\u0131 kaydediyoruz.<\/p>\n<p><a href=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_43.jpg\"><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_43.jpg\" width=\"194\" height=\"80\" \/><\/a><\/p>\n<p>Databese Diagram\u0131m\u0131z haz\u0131r.<\/p>\n<p><a href=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_42.jpg\"><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_42.jpg\" width=\"382\" height=\"221\" \/><\/a><br \/>\n<img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_44.jpg\" width=\"228\" height=\"208\" \/><\/p>\n<p>Evet tablolar\u0131m\u0131z\u0131 olu\u015fturup ili\u015fkilerini de kurdu\u011fumuza g\u00f6re \u015fimdi i\u00e7lerini doldurabiliriz. \u0130lk etapta t\u00fcm tablolar\u0131 SQL&#8217;e man\u00fcel yazaca\u011f\u0131z. Dinamik olarak ekleme ve d\u00fczenleme i\u015flerini daha sonra g\u00f6rece\u011fiz. Tablomuzun i\u00e7ini doldurabilmek i\u00e7in ilk \u00f6nce a\u00e7mam\u0131z gerekiyor. Dolduraca\u011f\u0131m\u0131z tabloya sa\u011f klik yap\u0131p gelen men\u00fcden Open Table&#8217;a bas\u0131yoruz.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_45.jpg\" width=\"271\" height=\"269\" \/><br \/>\nKitap tablosunu bo\u015f olarak a\u00e7\u0131l\u0131yor. \u015eimdi s\u0131ras\u0131yla bilgilerimizi dolduraca\u011f\u0131z. ID k\u0131sm\u0131n\u0131 biz de\u011fil SQL dolduracak.<\/p>\n<p><a href=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_46.jpg\"><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_46.jpg\" width=\"273\" height=\"46\" \/><\/a><\/p>\n<p>Kitap tablomuzu doldurduk \u015fimdi s\u0131rada kitap detay var.<\/p>\n<p><a href=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_47.jpg\"><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_47.jpg\" width=\"519\" height=\"140\" \/><\/a><\/p>\n<p>Ayn\u0131 \u015fekilde kitap detay tablomuzu da dolduruyoruz.<\/p>\n<p><a href=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_48.jpg\"><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_48.jpg\" width=\"564\" height=\"140\" \/><\/a><\/p>\n<p>Ayn\u0131 \u015fekilde yazar tablomuzu da dolduruyoruz.<\/p>\n<p><a href=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_49.jpg\"><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_49.jpg\" width=\"449\" height=\"91\" \/><\/a><\/p>\n<p>Mesaj tablomuzu da dolduruyoruz.<\/p>\n<p><a href=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_50.jpg\"><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_50.jpg\" width=\"578\" height=\"93\" \/><\/a><\/p>\n<p>Database ile ilgili i\u015flerimizi tamamlad\u0131\u011f\u0131m\u0131za g\u00f6re SQL Management&#8217;i kapay\u0131p Expression Web&#8217;e d\u00f6nebiliriz. Sitemize devam edelim. Expression Web&#8217;de sitemizi a\u00e7\u0131p h\u0131zl\u0131ca master page&#8217;den bir sayfa olu\u015fturuyoruz. Bu sayfay\u0131 bookLists.aspx olarak kaydediyoruz.<\/p>\n<p>Bu sayfada kitaplar\u0131n tam listesini g\u00f6sterece\u011fiz. Toolbox&gt;ASP.NET Controls&gt;Data alt\u0131nda DataList&#8217;i sayfam\u0131zdaki main content alan\u0131na s\u00fcr\u00fckleyip b\u0131rak\u0131yoruz.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_51.jpg\" width=\"206\" height=\"241\" \/><\/p>\n<p>DataList objesinin yan\u0131ndaki oka t\u0131klayarak Common DataList Tasks kutusunu a\u00e7\u0131yoruz. \u0130lk \u00f6nce database&#8217;imize ba\u011flanmam\u0131z gerekiyor. Bunun i\u00e7in Choose Data Source&#8217;dan &#8220;New data source&#8221;u t\u0131kl\u0131yoruz.<\/p>\n<p><a href=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_52.jpg\"><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_52.jpg\" width=\"360\" height=\"137\" \/><\/a><\/p>\n<p>Gelen ekranda Database&#8217;i se\u00e7ip OK&#8217;e bas\u0131yoruz. &#8220;Specify an ID for the data source&#8221; alan\u0131na otomatik belirlenen ismi de\u011fi\u015ftirmeyi gerekli g\u00f6rm\u00fcyoruz.<\/p>\n<p><a href=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_53.jpg\"><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_53.jpg\" width=\"348\" height=\"270\" \/><\/a><\/p>\n<p>Gelen ekranda New Connection&#8217;a bas\u0131yoruz. B\u00f6ylece Choose Data Source kutusu a\u00e7\u0131lacak.<\/p>\n<p><a href=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_54.jpg\"><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_54.jpg\" width=\"348\" height=\"270\" \/><\/a><\/p>\n<p>Choose Data Source&#8217;da &#8220;Microsoft SQL Server&#8221;\u0131 se\u00e7ip OK&#8217;e bas\u0131yoruz.<\/p>\n<p><a href=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_55.jpg\"><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_55.jpg\" width=\"263\" height=\"154\" \/><\/a><\/p>\n<p>S\u0131radaki ekran Connection Properties. Burada Server Name&#8217;i yaz\u0131yoruz. <img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_57.jpg\" width=\"144\" height=\"59\" \/> E\u011fer server name&#8217;niz SQL Server Management Studio Express&#8217;deki Object Explorer&#8217;daki isme bakabilirsiniz. &#8220;Use Windows Authentication&#8221; se\u00e7ili kal\u0131yor. &#8220;Select or enter a database name&#8221; den database&#8217;imizi bulup se\u00e7iyoruz. Bu ekranda Test Connection&#8217;a basarak ba\u011flant\u0131n\u0131z\u0131 kontrol edebilirsiniz. Sorun yoksa OK ile devam ediyoruz.<\/p>\n<p><a href=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_56.jpg\"><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_56.jpg\" width=\"229\" height=\"317\" \/><\/a><\/p>\n<p>Next ile devam ediyoruz.<\/p>\n<p><a href=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_58.jpg\"><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_58.jpg\" width=\"348\" height=\"270\" \/><\/a><\/p>\n<p>Next ile devam ediyoruz.<\/p>\n<p><a href=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_59.jpg\"><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_59.jpg\" width=\"348\" height=\"270\" \/><\/a><\/p>\n<p>Gelen ekranda &#8220;kitap&#8221; tablosunu se\u00e7iyoruz. Tablonun t\u00fcm elemanlar\u0131n\u0131 se\u00e7mek i\u00e7in &#8220;*&#8221; \u0131 se\u00e7iyoruz. Asl\u0131nda &#8220;kitapID&#8221;ye ihtiyac\u0131m\u0131z olmayacak ama \u00f6nemli de\u011fil d\u00fczenlemeleri daha sonrada yapabiliriz. Her \u015fey yolunda ise Nexyt ile devam ediyoruz.<\/p>\n<p><a href=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_60.jpg\"><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_60.jpg\" width=\"348\" height=\"270\" \/><\/a><\/p>\n<p>Buraya kadar yapt\u0131klar\u0131m\u0131z\u0131 kontrol etmek i\u00e7in gelen ekranda &#8220;Test Query&#8221;ye bas\u0131yoruz. Her \u015fey yolunda ise Finish ile bitiriyoruz.<\/p>\n<p><a href=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_61.jpg\"><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_61.jpg\" width=\"348\" height=\"270\" \/><\/a><\/p>\n<p>T\u00fcm bu i\u015flemlerle database ba\u011flant\u0131m\u0131z\u0131 kurup, bilgileri \u00e7ekmi\u015f olduk. Bunun sonucunda EW alttaki gibi kod \u00fcretti.<\/p>\n<div>&lt;asp:DataList runat=&#8221;server&#8221; id=&#8221;DataList1&#8243; DataKeyField=&#8221;kitapID&#8221; DataSourceID=&#8221;SqlDataSource1&#8243;&gt;<br \/>\n&lt;ItemTemplate&gt;<br \/>\nkitapID:<br \/>\n&lt;asp:Label Text='&lt;%# Eval(&#8220;kitapID&#8221;) %&gt;&#8217; runat=&#8221;server&#8221; id=&#8221;kitapIDLabel&#8221; \/&gt;<br \/>\n&lt;br \/&gt;<br \/>\nkitapIsmi:<br \/>\n&lt;asp:Label Text='&lt;%# Eval(&#8220;kitapIsmi&#8221;) %&gt;&#8217; runat=&#8221;server&#8221; id=&#8221;kitapIsmiLabel&#8221; \/&gt;<br \/>\n&lt;br \/&gt;<br \/>\nkitapYazar:<br \/>\n&lt;asp:Label Text='&lt;%# Eval(&#8220;kitapYazar&#8221;) %&gt;&#8217; runat=&#8221;server&#8221; id=&#8221;kitapYazarLabel&#8221; \/&gt;<br \/>\n&lt;br \/&gt;<br \/>\nkitapImage:<br \/>\n&lt;asp:Label Text='&lt;%# Eval(&#8220;kitapImage&#8221;) %&gt;&#8217; runat=&#8221;server&#8221; id=&#8221;kitapImageLabel&#8221; \/&gt;<br \/>\n&lt;br \/&gt;<br \/>\n&lt;br \/&gt;<br \/>\n&lt;\/ItemTemplate&gt;<br \/>\n&lt;\/asp:DataList&gt;<br \/>\n&lt;asp:SqlDataSource runat=&#8221;server&#8221; ID=&#8221;SqlDataSource1&#8243; ConnectionString=&#8221;&lt;%$ ConnectionStrings:FrpKitapSitesiConnectionString %&gt;&#8221; SelectCommand=&#8221;SELECT * FROM [kitap]&#8221;&gt;<br \/>\n&lt;\/asp:SqlDataSource&gt;<\/div>\n<p>\u015eu andaki g\u00f6r\u00fcn\u00fcm ise \u015f\u00f6yle;<\/p>\n<p><a href=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_62.jpg\"><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_62.jpg\" width=\"360\" height=\"343\" \/><\/a><\/p>\n<p>S\u0131rada database&#8217;den gelen bu bilgileri d\u00fczenleme i\u015fleri var.\u00a0 DataList&#8217;i se\u00e7ip yan\u0131ndaki oka t\u0131klayarak Common DataList Tasks kutusunu a\u00e7\u0131yoruz ve Edit Templates&#8217;e t\u0131kl\u0131yoruz.<\/p>\n<p><a href=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_63.jpg\"><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_63.jpg\" width=\"260\" height=\"107\" \/><\/a><\/p>\n<p>Display&#8217;de ItemTemplate se\u00e7ili olacak. Bu ekranda olduk\u00e7a rahat\u0131z. ItemTemplate kutucu\u011funun i\u00e7ine t\u0131klayarak istedi\u011fimiz Item&#8217;i silebilir, ekleme yapabiliriz.<\/p>\n<p><a href=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_64.jpg\"><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_64.jpg\" width=\"302\" height=\"115\" \/><\/a><\/p>\n<p>kitapID&#8217;yi ve kitapImage&#8217;i oldu\u011fu gibi siliyoruz. \u0130maj biraz sonra \u00e7\u00f6zece\u011fiz. kitapIsmi&#8217;ni siliyoruz. kitapYazar&#8217;\u0131 Yazar olarak de\u011fi\u015ftiriyoruz.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_65.jpg\" width=\"264\" height=\"122\" \/><\/p>\n<p>\u0130maj konusunu halledelim [kitapIsmiLabel]&#8217;in \u00fcst\u00fcndeki bo\u015f alana Toolbox&gt;ASP.NET Controls&gt;Standard alt\u0131ndaki Image&#8217;i s\u00fcr\u00fckleyip b\u0131rak\u0131yoruz.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_66.jpg\" width=\"274\" height=\"125\" \/><\/p>\n<p>Image ikonunun yan\u0131ndaki oka t\u0131klayarak a\u00e7\u0131lan men\u00fcden Edit DataBindings&#8217;e t\u0131kl\u0131yoruz. Blindable Properties&#8217;de ImageUrl&#8217;i se\u00e7iyoruz. Burada Field bindingi i\u015faretli olacak \u015fekilde b\u0131rak\u0131yoruz. Bound to&#8217;da database&#8217;deki imaj kolonumuzu se\u00e7iyoruz. Format&#8217;a imajlar\u0131m\u0131z\u0131n durdu\u011fu yolu yaz\u0131yoruz. \u00d6rnek: images\/books\/thumb sonuna {0} ekliyoruz. (images\/books\/thumb\/{0}). OK&#8217;e bas\u0131yoruz.<\/p>\n<p><a href=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_68.jpg\"><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_68.jpg\" width=\"318\" height=\"208\" \/><\/a><\/p>\n<p>Sonu\u00e7. \u0130majlar\u0131m\u0131z\u0131 da ba\u015far\u0131yla database&#8217;den ald\u0131k.<\/p>\n<p><a href=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_69.jpg\"><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_69.jpg\" width=\"360\" height=\"376\" \/><\/a><\/p>\n<p>Elbette bir format sorunu var yaz\u0131lar\u0131n imajlar\u0131n alt\u0131nda de\u011fil yan\u0131nda olmas\u0131n\u0131 istiyoruz. Bunu da yapmak \u00e7ok kolay. DataList&#8217;in yan\u0131nda ki oka t\u0131klayarak Edit Templates&#8217;i tekrar a\u00e7\u0131yoruz ve imaj ikonu se\u00e7iliyken Apply Styles&#8217;dan .imageLeft kural\u0131n\u0131 uyguluyoruz.<\/p>\n<p><a href=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_70.jpg\"><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_70.jpg\" width=\"360\" height=\"372\" \/><\/a><\/p>\n<p>Evet istedi\u011fimiz formata geldiler ama hala sorunlar var. Itemlar\u0131n aras\u0131n\u0131n daha a\u00e7\u0131k olmas\u0131n\u0131 ve kitap ile ilgili yaz\u0131lar\u0131n kitapla ayn\u0131 \u00fcst hizada olmas\u0131n\u0131 istiyoruz. Split g\u00f6r\u00fcn\u00fcmde iken kodlara bak\u0131yoruz ve imaj tag\u0131n\u0131n sonuna eklenmi\u015f &lt;br\/&gt; yi siliyoruz. (K\u0131rm\u0131z\u0131 sat\u0131r.) Bu yaz\u0131lar\u0131n kitapla ayn\u0131 \u00fcst hizadan ba\u015flamas\u0131n\u0131 sa\u011fl\u0131yor.<\/p>\n<div>&lt;asp:DataList runat=&#8221;server&#8221; id=&#8221;DataList1&#8243; DataKeyField=&#8221;kitapID&#8221; DataSourceID=&#8221;SqlDataSource1&#8243;&gt;<br \/>\n&lt;ItemTemplate&gt;<br \/>\n&lt;asp:Image runat=&#8221;server&#8221; id=&#8221;Image1&#8243; ImageUrl='&lt;%# Eval(&#8220;kitapImage&#8221;, &#8220;images\/books\/thumb\/{0}&#8221;) %&gt;&#8217; CssClass=&#8221;imageLeft&#8221; \/&gt;<br \/>\n&lt;br \/&gt;<br \/>\n&lt;asp:Label Text='&lt;%# Eval(&#8220;kitapIsmi&#8221;) %&gt;&#8217; runat=&#8221;server&#8221; id=&#8221;kitapIsmiLabel&#8221; \/&gt;<br \/>\n&lt;br \/&gt;<br \/>\nYazar :<br \/>\n&lt;asp:Label Text='&lt;%# Eval(&#8220;kitapYazar&#8221;) %&gt;&#8217; runat=&#8221;server&#8221; id=&#8221;kitapYazarLabel&#8221; \/&gt;<br \/>\n&lt;br \/&gt;<br \/>\n&lt;br \/&gt;<br \/>\n&lt;\/ItemTemplate&gt;&lt;\/asp:DataList&gt;<\/p>\n<\/div>\n<p>DataList se\u00e7iliyken Tag Properties&#8217;de CellPadding&#8217;i 10 yap\u0131yoruz. Bu itemlar\u0131n aras\u0131n\u0131n a\u00e7\u0131lmas\u0131n\u0131 sa\u011flayacak.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_71.jpg\" width=\"271\" height=\"198\" \/><\/p>\n<p>Hala bir sorunumuz var. Sayfay\u0131 taray\u0131c\u0131larda kontrol etti\u011fimizde FireFox&#8217;da her \u015fey d\u00fczg\u00fcn \u00e7al\u0131\u015f\u0131rken, Internet Explorer&#8217;da listenin ilk item\u0131nda kitap ismi ile yazar aras\u0131nda bo\u015fluk olu\u015fuyor.<\/p>\n<p><a href=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_72.jpg\"><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_72.jpg\" width=\"315\" height=\"56\" \/><\/a><\/p>\n<p>Split g\u00f6r\u00fcn\u00fcm\u00fcne ge\u00e7iyoruz ve ItemTemplate i\u00e7indeki taglar\u0131 DIV i\u00e7ine al\u0131yoruz. B\u00f6ylece her iki taray\u0131c\u0131da da sayfam\u0131z sorunsuz \u00e7al\u0131\u015f\u0131yor.<\/p>\n<div>\n<p>&lt;ItemTemplate&gt;<\/p>\n<p>&lt;div&gt;&lt;asp:Image runat=&#8221;server&#8221; id=&#8221;Image1&#8243; ImageUrl='&lt;%# Eval(&#8220;kitapImage&#8221;, &#8220;images\/books\/thumb\/{0}&#8221;) %&gt;&#8217; CssClass=&#8221;imageLeft&#8221; \/&gt;&lt;\/div&gt;<\/p>\n<p>&lt;div&gt;&lt;asp:Label Text='&lt;%# Eval(&#8220;kitapIsmi&#8221;) %&gt;&#8217; runat=&#8221;server&#8221; id=&#8221;kitapIsmiLabel&#8221;\/&gt;&lt;\/div&gt;<\/p>\n<p>&lt;div&gt;Yazar : &lt;asp:Label Text='&lt;%# Eval(&#8220;kitapYazar&#8221;) %&gt;&#8217; runat=&#8221;server&#8221; id=&#8221;kitapYazarLabel&#8221; \/&gt;&lt;\/div&gt;<\/p>\n<p>&lt;br \/&gt;<br \/>\n&lt;br \/&gt;<\/p>\n<p>&lt;\/ItemTemplate&gt;<\/p>\n<\/div>\n<p>\u015eimdilik bu sayfayla i\u015fimiz bitti daha sonra buraya d\u00f6necek ve kitaplar\u0131n detaylar\u0131na i\u00e7in link verece\u011fiz. \u015eimdi mesaj sayfas\u0131n\u0131 olu\u015ftural\u0131m. Master page&#8217;den yeni bir sayfa olu\u015fturuyoruz.Bu sayfay\u0131 da messages.aspx olarak kaydediyoruz. Main contentin i\u00e7ine tekrar DataList yerle\u015ftiriyoruz ve kitap listesi sayfas\u0131nda oldu\u011fu gibi database ba\u011flant\u0131s\u0131n\u0131 ayarl\u0131yoruz. Tek farkla o da bu ba\u011flant\u0131da kitap tablosunu de\u011fil mesaj tablosunu \u00e7ekiyoruz.<\/p>\n<p><a href=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_73.jpg\"><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_73.jpg\" width=\"360\" height=\"238\" \/><\/a><\/p>\n<p>Edit Templates&#8217;de mesajID&#8217;yi tamamen kald\u0131r\u0131yoruz. mesajBasligini siliyoruz, label&#8217;\u0131 kal\u0131yor. mesajTarih&#8217;i Mesaj Tarihi olarak de\u011fi\u015ftiriyoruz. mesajAlani yaz\u0131s\u0131n\u0131 siliyoruz label&#8217;i kal\u0131yor.<\/p>\n<p><a href=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_74.jpg\"><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_74.jpg\" width=\"290\" height=\"95\" \/><\/a><\/p>\n<p>Kontrol etti\u011fimizde bilgileri ba\u015far\u0131yla \u00e7ekti\u011fimizi g\u00f6r\u00fcyoruz ama her \u015fey i\u00e7 i\u00e7e ge\u00e7mi\u015f durumda biraz d\u00fczenleme yapmam\u0131z gerekecek.<\/p>\n<p><a href=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_75.jpg\"><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_75.jpg\" width=\"423\" height=\"162\" \/><\/a><\/p>\n<p>Edit template&#8217;de mesajAlaniLabel&#8217;in alt\u0131na HTML&gt;Tags alt\u0131ndan Horizontal Line&#8217;\u0131 s\u00fcr\u00fckleyip b\u0131rak\u0131yoruz. Line&#8217;\u0131n alt\u0131na da Enter&#8217;a basarak iki bo\u015fluk (&lt;br\/&gt;) ekliyoruz.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_76.jpg\" width=\"280\" height=\"184\" \/><\/p>\n<p>B\u00f6ylece mesajlar\u0131 birbirinden ay\u0131rm\u0131\u015f olduk. \u015eimdi mesaj ba\u015fl\u0131klar\u0131n\u0131 biraz farkl\u0131la\u015ft\u0131ral\u0131m.<\/p>\n<p><a href=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_77.jpg\"><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_77.jpg\" width=\"430\" height=\"242\" \/><\/a><\/p>\n<p>Bunun i\u00e7in Manage Style kutusunda New Style&#8217;a t\u0131kl\u0131yoruz ve &#8220;.boldText&#8221; ismindeki kural\u0131m\u0131z\u0131 olu\u015fturuyoruz..<\/p>\n<p><a href=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_78.jpg\"><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_78.jpg\" width=\"343\" height=\"332\" \/><\/a><\/p>\n<p>.boldText Current Page&#8217;in i\u00e7inde olu\u015fuyor. Bunun format.css&#8217;in i\u00e7ine s\u00fcr\u00fckleyip b\u0131rak\u0131yoruz.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_79.jpg\" width=\"206\" height=\"446\" \/><\/p>\n<p>DataList&#8217;in Edit Template&#8217;inde mesajBasligiLabel&#8217;ina .boldText&#8217;i Apply Style ile uyguluyoruz. Bunu da d\u00fczeltti\u011fimize g\u00f6re,\u00a0 tarih sat\u0131r\u0131yla mesaj sat\u0131r\u0131n\u0131 birbirinden ay\u0131rmal\u0131y\u0131z. Bu da sadece Edit Template&#8217;de mesajTarihLabel in sa\u011f\u0131na imlecinizi getirip iki kere Enter&#8217;a basmaktan ibaret.<\/p>\n<p>Sonu\u00e7.<\/p>\n<p><a href=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_80.jpg\"><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"http:\/\/www.yazgelistir.com\/Makaleler\/Resimler\/1000001328_80.jpg\" width=\"360\" height=\"317\" \/><\/a><\/p>\n<p>Bu makalede SQL Server Express Edition kurulumunu, SQL Express&#8217;de database olu\u015fturmay\u0131 ve SQL database&#8217;den veri \u00e7ekmeyi anlatt\u0131m. Serinin devam\u0131 niteli\u011findeki makalemizde listelenmi\u015f kitaplar\u0131n detaylar\u0131na dinamik olarak link vermeyi inceleyece\u011fiz.<br \/>\n\u0130yi \u00e7al\u0131\u015fmalar<\/p>\n<p>Te\u015fekk\u00fcrler<\/p>\n","protected":false},"excerpt":{"rendered":"<p>9\/5\/2007 Merhaba bu makalemde, ilk makalede tasar\u0131m\u0131n\u0131 oturttu\u011fumuz Frp Kitap Merkezi sitesini dinamik hale getirmek i\u00e7in ilk ad\u0131mlar\u0131m\u0131z\u0131 ataca\u011f\u0131z. Bu a\u015famada database olarak Microsoft SQL Server 2005 Express Edition&#8217;u kullanaca\u011f\u0131z. SQL Server ile ilgili yard\u0131mlar\u0131 i\u00e7in ekip arkada\u015f\u0131m Behl\u00fcl Behram&#8217;a \u00e7ok te\u015fekk\u00fcrler. E\u011fer y\u0131llard\u0131r yapt\u0131\u011f\u0131n\u0131z tasar\u0131mlar\u0131 statik olarak haz\u0131rlamaktan s\u0131k\u0131l\u0131p s\u0131k\u0131l\u0131p s\u00fcrekli bir o dile [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[11],"tags":[29],"class_list":["post-395","post","type-post","status-publish","format-standard","hentry","category-teknik-yazi","tag-expression-web"],"_links":{"self":[{"href":"http:\/\/erbugkaya.com\/index.php?rest_route=\/wp\/v2\/posts\/395","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/erbugkaya.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/erbugkaya.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/erbugkaya.com\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/erbugkaya.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=395"}],"version-history":[{"count":4,"href":"http:\/\/erbugkaya.com\/index.php?rest_route=\/wp\/v2\/posts\/395\/revisions"}],"predecessor-version":[{"id":397,"href":"http:\/\/erbugkaya.com\/index.php?rest_route=\/wp\/v2\/posts\/395\/revisions\/397"}],"wp:attachment":[{"href":"http:\/\/erbugkaya.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=395"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/erbugkaya.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=395"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/erbugkaya.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=395"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}