<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>bilyaz.com , Programlama Makaleleri, Yazılım Makaleleri , Örnek Kodlar , Eğitim Videoları , C#,ASP.NET,SQL,PHP</title>
	<atom:link href="http://www.bilyaz.com/index.php/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.bilyaz.com</link>
	<description>bilyaz.com , Programlama Makaleleri, Yazılım Makaleleri , Örnek Kodlar , Eğitim Videoları , C#,ASP.NET,SQL,PHP</description>
	<lastBuildDate>Sun, 29 Apr 2012 22:04:33 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>RequiredFieldValidator</title>
		<link>http://www.bilyaz.com/index.php/requiredfieldvalidator.html/</link>
		<comments>http://www.bilyaz.com/index.php/requiredfieldvalidator.html/#comments</comments>
		<pubDate>Sun, 29 Apr 2012 21:55:49 +0000</pubDate>
		<dc:creator>özlem erden</dc:creator>
				<category><![CDATA[ASP.NET]]></category>

		<guid isPermaLink="false">http://www.bilyaz.com/?p=1861</guid>
		<description><![CDATA[Girilmesi zorunlu olan alanları kontrol eden geçerlilik denetim kontrolüdür. Kullanıcı bu alanlara giriş yapmazsa geçerlilik denetimi sağlanmamış olur.. Temel 2 bildirimi vardır: ControlToValidate:Kontrol edilecek alanın id&#8217;si burada belirtilir. Text:Giriş yapılmamışsa hata mesajının yazılacağı kısımdır. 2-RequiredFieldValidator.aspx &#60;%@ Page Language=&#8221;C#&#8221; AutoEventWireup=&#8221;true&#8221; CodeFile=&#8221;Default2.aspx.cs&#8221; Inherits=&#8221;Default2&#8243;%&#62; &#60;!DOCTYPE html PUBLIC&#8221;-//W3C//DTD XHTML 1.0 Transitional//EN&#8221; &#8220;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&#8221;&#62; &#60;html xmlns=&#8221;http://www.w3.org/1999/xhtml&#8221;&#62; &#60;head runat=&#8221;server&#8221;&#62; &#60;title&#62;RequiredFieldValidator&#60;/title&#62; &#60;/head&#62; &#60;body&#62; &#60;form id=&#8221;form1&#8243;  runat=&#8221;server&#8221;&#62; &#60;div&#62; &#60;asp:Label ID=&#8221;lblAd&#8221; Text=&#8221;Ad:&#8221;  AssociatedControlID=&#8221;txtAd&#8221;  runat=&#8221;server&#8221;&#62;&#60;/asp:Label&#62; &#60;br/&#62; <a href='http://www.bilyaz.com/index.php/requiredfieldvalidator.html/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.bilyaz.com%2Findex.php%2Frequiredfieldvalidator.html%2F&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;font=lucida grande&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px;height:30px;margin-top:5px;"></iframe><div align="left" style="float:left;padding:0px 5px 5px 0px;"><a name="fb_share" type="box_count" share_url="http://www.bilyaz.com/index.php/requiredfieldvalidator.html/"></a></div><p>Girilmesi zorunlu olan alanları kontrol eden geçerlilik denetim kontrolüdür. Kullanıcı bu alanlara giriş yapmazsa geçerlilik denetimi sağlanmamış olur..</p>
<p>Temel 2 bildirimi vardır:</p>
<p><strong>ControlToValidate</strong>:Kontrol edilecek alanın id&#8217;si burada belirtilir.</p>
<p><strong>Text</strong>:Giriş yapılmamışsa hata mesajının yazılacağı kısımdır.</p>
<p><span style="color: #800080">2-RequiredFieldValidator.aspx</span></p>
<p>&lt;%@ Page Language=&#8221;C#&#8221; AutoEventWireup=&#8221;true&#8221; CodeFile=&#8221;Default2.aspx.cs&#8221; Inherits=&#8221;Default2&#8243;%&gt;</p>
<p>&lt;!DOCTYPE html PUBLIC&#8221;-//W3C//DTD XHTML 1.0 Transitional//EN&#8221;</p>
<p>&#8220;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&#8221;&gt;</p>
<p>&lt;html xmlns=&#8221;http://www.w3.org/1999/xhtml&#8221;&gt;</p>
<p>&lt;head runat=&#8221;server&#8221;&gt;</p>
<p>&lt;title&gt;RequiredFieldValidator&lt;/title&gt;</p>
<p>&lt;/head&gt;</p>
<p>&lt;body&gt;</p>
<p>&lt;form id=&#8221;form1&#8243;  runat=&#8221;server&#8221;&gt;</p>
<p>&lt;div&gt;</p>
<p>&lt;asp:Label ID=&#8221;lblAd&#8221; Text=&#8221;Ad:&#8221;  AssociatedControlID=&#8221;txtAd&#8221;  runat=&#8221;server&#8221;&gt;&lt;/asp:Label&gt;</p>
<p>&lt;br/&gt;</p>
<p>&lt;asp:TextBoxID=&#8221;txtAd&#8221;runat=&#8221;server&#8221;&gt;&lt;/asp:TextBox&gt;</p>
<p>&lt;asp:RequiredFieldValidatorID=&#8221;reqAd&#8221;  ControlToValidate=&#8221;txtd&#8221;  Text=&#8221;bu alana bir ad girmelisiniz:&#8221;&gt;      &lt;/asp:RequiredFieldValidator&gt;</p>
<p>&lt;br/&gt;</p>
<p>&lt;br/&gt;</p>
<p>&lt;asp:LabelID=&#8221;lblsoyad&#8221;  Text=&#8221;Soyad:&#8221;  AssociatedControlID=&#8221;txtSoyad&#8221;  runat=&#8221;server&#8221;&gt;&lt;/asp:Label&gt;</p>
<p>&lt;br/&gt;</p>
<p>&lt;asp:TextBoxID=&#8221;txtSoyad&#8221;   runat=&#8221;server&#8221;&gt;&lt;/asp:TextBox&gt;</p>
<p>&lt;asp:RequiredFieldValidatorID=&#8221;reqsoyad&#8221;  ControlToValidate=&#8221;txtSoyad&#8221; Text=&#8221;bu alana bir soyad girmelisiniz:&#8221; runat=&#8221;server&#8221;&gt;&lt;/asp:RequiredFieldValidator&gt;</p>
<p>&lt;br/&gt;</p>
<p>&lt;br/&gt;</p>
<p>&lt;asp:ButtonID=&#8221;Button1&#8243; runat=&#8221;server&#8221; Text=&#8221;Gönder&#8221;/&gt;</p>
<p>&lt;/div&gt;</p>
<p>&lt;/form&gt;</p>
<p>&lt;/body&gt;</p>
<p>&lt;/html&gt;</p>
<p><span style="color: #800080">Şimdi çalıştıralım:</span></p>
<p><a rel="attachment wp-att-739" href="http://www.bilyaz.com/?attachment_id=739"><img src="http://ozlemerden.files.wordpress.com/2012/04/reekran-alc4b1ntc4b1sc4b1.png?w=300" alt="" width="394" height="238" /></a></p>
<p>Buradaki Textboxlara bir girdinin olup olmadığı RequiredFieldValidator&#8217;ler tarafından kontrol ediliyor.Hangi TextBox ı kontrol edeceği ControlToValidate=&#8221;txtAd&#8221; şeklinde bir ifadeyle bildiriliyor.Hata mesajı da Text bildiriminde yapılıyor.Görüşmek üzere esen kalın <img src='http://www.bilyaz.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.bilyaz.com/index.php/requiredfieldvalidator.html/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Geçerlilik(Validator) Kontrolleri</title>
		<link>http://www.bilyaz.com/index.php/gecerlilikvalidator-kontrolleri.html/</link>
		<comments>http://www.bilyaz.com/index.php/gecerlilikvalidator-kontrolleri.html/#comments</comments>
		<pubDate>Sun, 29 Apr 2012 21:52:58 +0000</pubDate>
		<dc:creator>özlem erden</dc:creator>
				<category><![CDATA[ASP.NET]]></category>

		<guid isPermaLink="false">http://www.bilyaz.com/?p=1855</guid>
		<description><![CDATA[Merhaba arkadaşlar şimdi sizlere ASP.NET&#8217;te geçerlilik kontrollerini anlatacağım. Visual Studio&#8217;da Toolbox&#8217;a baktığınızda ayrı bir tab altında Validation kontrollerini görürsünüz: Yanda da görüldüğü gibi 5 Adet geçerlilik denetim kontrolü vardır.ValidationSumary bir geçerlilik denetim kontrolü değil, bu kontrollerden gelen mesajların verildiği bölümdür. Şimdi ilk kontrolümüz RangeValidator kontrolünü göreceğiz: 1-RangeValidator.aspx &#60;%@ Page Language=&#8221;C#&#8221; AutoEventWireup=&#8221;true&#8221;  CodeFile=&#8221;Default2.aspx.cs&#8221;  Inherits=&#8221;Default2&#8243;%&#62; &#60;!DOCTYPEhtmlPUBLIC&#8221;-//W3C//DTD XHTML 1.0 Transitional//EN&#8221;"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&#8221;&#62; &#60;html xmlns=&#8221;http://www.w3.org/1999/xhtml&#8221;&#62; &#60;head runat=&#8221;server&#8221;&#62; <a href='http://www.bilyaz.com/index.php/gecerlilikvalidator-kontrolleri.html/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.bilyaz.com%2Findex.php%2Fgecerlilikvalidator-kontrolleri.html%2F&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;font=lucida grande&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px;height:30px;margin-top:5px;"></iframe><div align="left" style="float:left;padding:0px 5px 5px 0px;"><a name="fb_share" type="box_count" share_url="http://www.bilyaz.com/index.php/gecerlilikvalidator-kontrolleri.html/"></a></div><p>Merhaba arkadaşlar şimdi sizlere ASP.NET&#8217;te geçerlilik kontrollerini anlatacağım.</p>
<p>Visual Studio&#8217;da Toolbox&#8217;a baktığınızda ayrı bir tab altında <strong>Validation</strong> kontrollerini görürsünüz:</p>
<p><a rel="attachment wp-att-724" href="http://www.bilyaz.com/index.php/actionscript-30-ile-platform-oda-oyunu-ornegi-1.html/719-autosave/"><img src="http://ozlemerden.files.wordpress.com/2012/04/ekran-alc4b1ntc4b1sc4b17.png?w=144" alt="" width="144" height="150" /></a> Yanda da görüldüğü gibi 5 Adet geçerlilik denetim kontrolü vardır.<strong>ValidationSumary</strong> bir geçerlilik denetim kontrolü değil, bu kontrollerden gelen mesajların verildiği bölümdür.</p>
<p>Şimdi ilk kontrolümüz RangeValidator kontrolünü göreceğiz:</p>
<p><span style="color: #800080">1-RangeValidator.aspx</span></p>
<p style="text-align: left">&lt;%@ Page Language=&#8221;C#&#8221; AutoEventWireup=&#8221;true&#8221;  CodeFile=&#8221;Default2.aspx.cs&#8221;  Inherits=&#8221;Default2&#8243;%&gt;</p>
<p style="text-align: left">&lt;!DOCTYPEhtmlPUBLIC&#8221;-//W3C//DTD XHTML 1.0 Transitional//EN&#8221;"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&#8221;&gt;</p>
<p style="text-align: left">&lt;html xmlns=&#8221;http://www.w3.org/1999/xhtml&#8221;&gt;</p>
<p>&lt;head runat=&#8221;server&#8221;&gt;</p>
<p>&lt;title&gt;&lt;/title&gt;</p>
<p>&lt;/head&gt;</p>
<p>&lt;body bgcolor=&#8221;#daeef3&#8243;&gt;</p>
<p>&lt;form id=&#8221;form1&#8243;runat=&#8221;server&#8221;&gt;</p>
<p>&lt;div&gt;</p>
<p>&lt;p&gt;</p>
<p>50-1000 arasında bir değer giriniz:</p>
<p>&lt;/p&gt;</p>
<p>&lt;asp:TextBoxID=&#8221;TextBox1&#8243; runat=&#8221;server&#8221;&gt;&lt;/asp:TextBox&gt;</p>
<p>&lt;asp:RangeValidatorID=&#8221;RangeValidator1&#8243;runat=&#8221;server&#8221;ErrorMessage=&#8221;50-1000 arasında bir değer giriniz:&#8221;ControlToValidate=&#8221;TextBox1&#8243;MaximumValue=&#8221;1000&#8243;MinimumValue=&#8221;50&#8243;Type=&#8221;Integer&#8221;&gt;&lt;/asp:RangeValidator&gt;</p>
<p>&lt;br/&gt;</p>
<p>&lt;asp:ButtonID=&#8221;Button1&#8243;Text=&#8221;Gönder&#8221;OnClick=&#8221;Button1_Click&#8221;runat=&#8221;server&#8221;/&gt;</p>
<p>&lt;br/&gt;</p>
<p>&lt;asp:LabelID=&#8221;Label1&#8243; runat=&#8221;server&#8221;  EnableViewState=&#8221;false&#8221;  Font-Bold=&#8221;true&#8221;  ForeColor=&#8221;Red&#8221;&gt;&lt;/asp:Label&gt;</p>
<p>&lt;/div&gt;</p>
<p>&lt;/form&gt;</p>
<p>&lt;/body&gt;</p>
<p>&lt;/html&gt;</p>
<p><span style="color: #800080">1-RangeValidator.aspx.cs</span></p>
<p>using System;</p>
<p>using System.Collections.Generic;</p>
<p>using System.Linq;</p>
<p>using System.Web;</p>
<p>using System.Web.UI;</p>
<p>using System.Web.UI.WebControls;</p>
<p>public partial classDefault2 : System.Web.UI.Page {</p>
<p>protectedvoid Button1_Click(object sender, EventArgs e){</p>
<p>if(Page.IsValid){</p>
<p>Label1.Text =&#8221;sayfa geçerli&#8221;;}</p>
<p>}</p>
<p>}</p>
<p>şimdi projemizi çalıştırıyoruz:</p>
<p><img src="http://ozlemerden.files.wordpress.com/2012/04/rekran-alc4b1ntc4b1sc4b11.png?w=300" alt="" width="330" height="191" />Sayfamız yüklendiğinde bir metin kutusu ve bir buton çıkacaktır. Metin kutusuna belirli aralıklarda(50-1000 arası) bir değer girilmesi gerekecektir.Geçerlilik denetimi işte tam bu noktada başlıyor.</p>
<p>Diğer geçerlilik denetim kontrollerini de kısa sürede anlatmaya çalışacağım. kolay gelsin <img src='http://www.bilyaz.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.bilyaz.com/index.php/gecerlilikvalidator-kontrolleri.html/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Para biriminde ayıraç kullanımı</title>
		<link>http://www.bilyaz.com/index.php/para-biriminde-ayirac-kullanimi.html/</link>
		<comments>http://www.bilyaz.com/index.php/para-biriminde-ayirac-kullanimi.html/#comments</comments>
		<pubDate>Wed, 25 Apr 2012 06:44:20 +0000</pubDate>
		<dc:creator>Tahir MUTLU</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Kısa Bilgi]]></category>
		<category><![CDATA[CultureInfo]]></category>
		<category><![CDATA[CurrencyDecimalSeparator]]></category>
		<category><![CDATA[CurrencyGroupSeparator]]></category>
		<category><![CDATA[CurrentCulture]]></category>
		<category><![CDATA[NumberFormat]]></category>
		<category><![CDATA[System.Globalization]]></category>

		<guid isPermaLink="false">http://www.bilyaz.com/?p=1851</guid>
		<description><![CDATA[geliştirdiğiniz arayüzlerde parabirimi konusunda kullanıcılar ayıraç olarak &#8220;.&#8221; mı ? &#8220;,&#8221; mü ? kullanacaklarını hep  karıştırırlar. bunu önlemek için ya bu işaretlerden girilmesini istemediğimizi kısıtlarız , bu alanın yanlarına bir açıkla ekleriz lütfen ayıraç için şu ifadeyi kullanın şeklinde. Bu kullanım aynı zamanda sizin geliştirdiğiniz ordamda bilgisayarınız bölgesel ayarlarına görede değişebilir , eğer uygulamanızı kullanan <a href='http://www.bilyaz.com/index.php/para-biriminde-ayirac-kullanimi.html/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.bilyaz.com%2Findex.php%2Fpara-biriminde-ayirac-kullanimi.html%2F&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;font=lucida grande&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px;height:30px;margin-top:5px;"></iframe><div align="left" style="float:left;padding:0px 5px 5px 0px;"><a name="fb_share" type="box_count" share_url="http://www.bilyaz.com/index.php/para-biriminde-ayirac-kullanimi.html/"></a></div><p>geliştirdiğiniz arayüzlerde parabirimi konusunda kullanıcılar ayıraç olarak &#8220;<strong><span style="color: #ff0000;">.</span></strong>&#8221; mı ? &#8220;<strong><span style="color: #ff0000;">,</span></strong>&#8221; mü ? kullanacaklarını hep  karıştırırlar. bunu önlemek için ya bu işaretlerden girilmesini istemediğimizi kısıtlarız , bu alanın yanlarına bir açıkla ekleriz lütfen ayıraç için şu ifadeyi kullanın şeklinde. Bu kullanım aynı zamanda sizin geliştirdiğiniz ordamda bilgisayarınız bölgesel ayarlarına görede değişebilir , eğer uygulamanızı kullanan , yada uygulamanızın taşındığı ortamda bölgesel ayarlar aynı değil ise problem oluşturabilir. bunu önlemek için sistemin bölgesel ayarlarında kullanılan ayıraç ifadesi eğer girilen ifadede yok ise , diğer  ayıracı buna dönüştürebiliriz. örnek olarak</p>
<p><strong><span style="color: #800000;"><span style="text-decoration: underline;"><span style="color: #0000ff;">C#</span></span></span></strong></p>
<p><span style="color: #800000;">double birimTutar = 0;</span><span style="color: #800000;"> </span></p>
<p><span style="color: #800000;"> </span></p>
<p><span style="color: #800000;">Double.TryParse(txtBirimTutar.Text.Replace(System.Globalization.CultureInfo.CurrentCulture.NumberFormat.CurrencyGroupSeparator, </span><span style="color: #33cccc;"><span style="color: #800000;"><br />
</span><span style="color: #800000;"> </span></span><span style="color: #800000;"> System.Globalization.CultureInfo.CurrentCulture.NumberFormat.CurrencyDecimalSeparator), </span><span style="color: #33cccc;"><span style="color: #800000;"><br />
</span><span style="color: #800000;"> </span></span><span style="color: #33cccc;"><span style="color: #800000;"> out birimTutar)</span> </span></p>
<p>bu kod blogunda grup ayıracı var ise bunu ondalık ayıracına dönüştürebiliyoruz.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bilyaz.com/index.php/para-biriminde-ayirac-kullanimi.html/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Asp.net ile basit hesap makinesi</title>
		<link>http://www.bilyaz.com/index.php/asp-net-ile-basit-hesap-makinesi.html/</link>
		<comments>http://www.bilyaz.com/index.php/asp-net-ile-basit-hesap-makinesi.html/#comments</comments>
		<pubDate>Mon, 23 Apr 2012 09:31:42 +0000</pubDate>
		<dc:creator>özlem erden</dc:creator>
				<category><![CDATA[ASP.NET]]></category>

		<guid isPermaLink="false">http://www.bilyaz.com/?p=1838</guid>
		<description><![CDATA[Merhaba arkadaşlar,şimdi ASP.NET le hesap makinesi yapacağız. öncelikle File-New Project-Web-ASP.NET WEB APPLİCATİON şeklinde projemizi açıyoruz.. önce projemiz için calculator isminde işlem yapan sınıfımızı oluşturuyoruz.. bunun için projemizin üzerine gelip “Add New Item” kısmına basıp oradan class kısımını seçebiliriz.. using System; using System.Collections.Generic; using System.Web; using System.Web.UI.WebControls; public class calculator { public calculator(){   } public string calculate(string firstNumber, string secondNumber,string operation){ double number1, number2; try{ number1 =Convert.ToDouble(firstNumber);} catch (Exception ex){ return“Girilen <a href='http://www.bilyaz.com/index.php/asp-net-ile-basit-hesap-makinesi.html/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.bilyaz.com%2Findex.php%2Fasp-net-ile-basit-hesap-makinesi.html%2F&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;font=lucida grande&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px;height:30px;margin-top:5px;"></iframe><div align="left" style="float:left;padding:0px 5px 5px 0px;"><a name="fb_share" type="box_count" share_url="http://www.bilyaz.com/index.php/asp-net-ile-basit-hesap-makinesi.html/"></a></div><p>Merhaba arkadaşlar,şimdi ASP.NET le hesap makinesi yapacağız. öncelikle File-New Project-Web-ASP.NET WEB APPLİCATİON şeklinde projemizi açıyoruz..</p>
<p>önce projemiz için calculator isminde işlem yapan sınıfımızı oluşturuyoruz..<br />
bunun için projemizin üzerine gelip “Add New Item” kısmına basıp oradan class kısımını seçebiliriz..</p>
<p>using System;</p>
<p>using System.Collections.Generic;</p>
<p>using System.Web;</p>
<p>using System.Web.UI.WebControls;</p>
<p>public class calculator</p>
<p>{</p>
<p>public calculator(){   }</p>
<p>public string calculate(string firstNumber, string secondNumber,string</p>
<p>operation){</p>
<p>double number1, number2;</p>
<p>try{</p>
<p>number1 =Convert.ToDouble(firstNumber);}</p>
<p>catch (Exception ex){</p>
<p>return“Girilen Birinci Sayı Geçerli Değil”;}</p>
<p>try{</p>
<p>number2 =Convert.ToDouble(secondNumber);}</p>
<p>catch (Exceptionex){</p>
<p>return“Girilen İkinci Sayı Geçerli Değil”;}</p>
<p>string result = “”;</p>
<p>switch(operation){</p>
<p>case“-1″:</p>
<p>result =“Lütfen Geçerli bir İşlem Seçiniz”;</p>
<p>break;</p>
<p>case“1″:</p>
<p>result = (number1 + number2).ToString();</p>
<p>break;</p>
<p>case“2″:</p>
<p>result = (number1 – number2).ToString();</p>
<p>break;</p>
<p>case“3″:</p>
<p>result = (number1 * number2).ToString();</p>
<p>break;</p>
<p>case“4″:</p>
<p>if (number2 == 0) return“0′a Bölünme Hatası”;</p>
<p>result = (number1 / number2).ToString();</p>
<p>break;</p>
<p>default:</p>
<p>result =“Lütfen Geçerli Bir İşlem Seçiniz”;</p>
<p>break;}</p>
<p>return result;</p>
<p>}</p>
<p>}</p>
<p>Class kısımında swicth-case yapısında operator değerine göre işlemleri yaptırdık,</p>
<p>şimdi Default.aspx kısmını yazalım:</p>
<p>&lt;%@PageLanguage=”C#”AutoEventWireup=”true”CodeFile=”Default.aspx.cs”Inherits=”_Default”</p>
<p>%&gt;</p>
<p>&lt;!DOCTYPEhtmlPUBLIC“-//W3C//DTD XHTML 1.0 Transitional//EN”</p>
<p>“http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”&gt;</p>
<p>&lt;htmlxmlns=”http://www.w3.org/1999/xhtml”&gt;</p>
<p>&lt;head runat=”server”&gt;</p>
<p>&lt;title&gt;&lt;/title&gt;</p>
<p>&lt;/head&gt;</p>
<p>&lt;body&gt;</p>
<p>&lt;form id=”form1″runat=”server”&gt;</p>
<p>&lt;div&gt;</p>
<p>&lt;tablestyle=”width: 68%; height: 102px;”&gt;</p>
<p>&lt;tr&gt;</p>
<p>&lt;td&gt;Birinci Sayı&lt;/td&gt;</p>
<p>&lt;td&gt;&lt;asp:TextBoxID=”txtFirstNumber”runat=”server”&gt;&lt;/asp:TextBox&gt;&lt;/td&gt;</p>
<p>&lt;/tr&gt;</p>
<p>&lt;tr&gt;</p>
<p>&lt;td&gt;İkinci Sayı&lt;/td&gt;</p>
<p>&lt;td&gt;&lt;asp:TextBoxID=”txtSecondNumber”runat=”server”&gt;&lt;/asp:TextBox&gt;&lt;/td&gt;</p>
<p>&lt;/tr&gt;</p>
<p>&lt;tr&gt;</p>
<p>&lt;td&gt;</p>
<p>İşlem</p>
<p>&lt;/td&gt;</p>
<p>&lt;td&gt;&lt;asp:DropDownListID=”dlOperation”runat=”server”AutoPostBack=”True”</p>
<p>onselectedindexchanged=”dlOperation_SelectedIndexChanged”&gt;</p>
<p>&lt;asp:ListItemValue=”-1″&gt;Lütfen işlem seçiniz&lt;/asp:ListItem&gt;</p>
<p>&lt;asp:ListItemValue=”1″&gt;Topla&lt;/asp:ListItem&gt;</p>
<p>&lt;asp:ListItemValue=”2″&gt;Çıkar&lt;/asp:ListItem&gt;</p>
<p>&lt;asp:ListItemValue=”3″&gt;Çarp&lt;/asp:ListItem&gt;</p>
<p>&lt;asp:ListItemValue=”4″&gt;Böl&lt;/asp:ListItem&gt;</p>
<p>&lt;/asp:DropDownList&gt;&lt;/td&gt;</p>
<p>&lt;/tr&gt;</p>
<p>&lt;tr&gt;</p>
<p>&lt;td&gt;Sonuç&lt;/td&gt;</p>
<p>&lt;td&gt;&lt;asp:TextBoxID=”txtResult”runat=”server”&gt;&lt;/asp:TextBox&gt;&lt;/td&gt;</p>
<p>&lt;/tr&gt;</p>
<p>&lt;/table&gt;</p>
<p>&lt;/div&gt;</p>
<p>&lt;/form&gt;</p>
<p>&lt;/body&gt;</p>
<p>&lt;/html&gt;</p>
<p>Şimdi de Default.aspx.cs kısmında classımızı da kullanarak işlem yaptırıyoruz..</p>
<p>using System;</p>
<p>using System.Collections.Generic;</p>
<p>using System.Web;</p>
<p>using System.Web.UI;</p>
<p>using System.Web.UI.WebControls;</p>
<p>public partialclass_Default : System.Web.UI.Page</p>
<p>{</p>
<p>protectedvoid Page_Load(object sender, EventArgs e){ }</p>
<p>protectedvoid dlOperation_SelectedIndexChanged(object sender,EventArgs e)</p>
<p>{</p>
<p>calculator c = newcalculator() ;</p>
<p>txtResult.Text = c.calculate(txtFirstNumber.Text,txtSecondNumber.Text,dlOperation.SelectedValue);</p>
<p>}</p>
<p>}</p>
<p>Önce sınıfımızdan c isminde bir nesne oluşturduk, daha sonra calculate isimli metoda 1.sayi,2.sayi ve işlem türü</p>
<p>değerini atayarak tamamladık..</p>
<p>projemizi çalıştıralım..</p>
<p><img src="http://ozlemerden.files.wordpress.com/2012/04/ekran-alc4b1ntc4b1sc4b13.png?w=500&amp;h=334" alt="" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.bilyaz.com/index.php/asp-net-ile-basit-hesap-makinesi.html/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SQL(Structed Query Language)</title>
		<link>http://www.bilyaz.com/index.php/sqlstructed-query-language.html/</link>
		<comments>http://www.bilyaz.com/index.php/sqlstructed-query-language.html/#comments</comments>
		<pubDate>Mon, 23 Apr 2012 09:16:06 +0000</pubDate>
		<dc:creator>özlem erden</dc:creator>
				<category><![CDATA[ADO.NET / SQL]]></category>

		<guid isPermaLink="false">http://www.bilyaz.com/?p=1833</guid>
		<description><![CDATA[Neden SQL? •SQL çok yüksek seviyeli bir dildir. –İngilizce bilen herkes bu dili kolayca öğrenebilir. Programlama dillerine göre öğrenilmesi çok daha kolaydır. Çünkü programlama dillerindeki gibi işlemin “nasıl yapılacağı” değil, işlemde “ne yapılacağı” yazılır. Birçok VTYS, yazılan sorguları en iyi şekilde işlemek için sorgu en-iyileştirme (query optimization) mekanizmaları kullanır.. DML,DDL,DCL •Sorgulama için sadece SELECT komutu kullanılsa da; <a href='http://www.bilyaz.com/index.php/sqlstructed-query-language.html/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.bilyaz.com%2Findex.php%2Fsqlstructed-query-language.html%2F&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;font=lucida grande&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px;height:30px;margin-top:5px;"></iframe><div align="left" style="float:left;padding:0px 5px 5px 0px;"><a name="fb_share" type="box_count" share_url="http://www.bilyaz.com/index.php/sqlstructed-query-language.html/"></a></div><p><strong><span style="color: #800080"><strong>Neden SQL?</strong></span></strong></p>
<div>•SQL çok yüksek seviyeli bir dildir.</div>
<div>–İngilizce bilen herkes bu dili kolayca öğrenebilir. Programlama dillerine göre öğrenilmesi çok daha kolaydır. Çünkü programlama dillerindeki gibi işlemin “nasıl yapılacağı” değil, işlemde “ne yapılacağı” yazılır.</div>
<p>Birçok VTYS, yazılan sorguları en iyi şekilde işlemek için sorgu en-iyileştirme (query optimization) mekanizmaları kullanır..</p>
<p><strong><span style="color: #993366">DML,DDL,DCL</span></strong></p>
<div>•Sorgulama için sadece SELECT komutu kullanılsa da; SQL içinde başka komutlar da yer alır. Bu komutlar işlevlerine göre sınıflandırılmış ve başka alt-diller oluşturulmuştur:</div>
<div>–DML (Data Manipulation Language): Tablolara veri girme, var olan veriyi güncelleme ve veri silme işlemleri için kullanılan komutları içerir.</div>
<div>–DDL (Data Definition Language): Tablo, Kullanıcı gibi nesneleri yaratmak için kullanılan komutları içerir.</div>
<div>–DCL (Data Control Language): Kullanıcılara çeşitli yetkiler verme, yetkileri geri alma gibi işlemleri gerçekleştirmek için kullanılan komutları içerir.</div>
<div>
<p><span style="color: #993366"><strong>SELECT İFADESİ</strong></span></p>
<p>SELECT sütun [yada sütunlar]</p>
<p>FROM tablo [yada tablolar]</p>
<p><span style="color: #993366"><strong>WHERE seçim kriteri</strong></span></p>
<div>•SELECT ifadesinden sonra * kullanılırsa tüm nitelikler (sütunlar) seçilir.</div>
<div>•Kriter verilmezse “WHERE” sözcüğü de yazılmaz. Bu durumda tüm kayıtlar (satırlar) seçilir.</div>
<div>•Personel tablosundaki tüm kayıtların tüm nitelikleri aşağıdaki SQL cümlesi ile gösterilir:</div>
<p><span style="color: #000000">SELECT * FROM PERSONEL</span></p>
<p>WHERE ile kriter verme</p>
<div>•Eğer tüm kayıtların değil de sadece belirli kayıtların görüntülenmesi istenirse WHERE ile kriter verilir.</div>
<div>•Aşağıdaki SQL cümlesi maaşı 1800 TL’nin üzerinde olan personelin adı ve soyadını ekranda gösterir:</div>
<p><em><em>SELECT AD, SOYAD</em></em></p>
<p><em><em> FROM PERSONEL </em></em></p>
<p><em><em> WHERE MAAS &gt; 1800</em></em></p>
<p><em><strong><span style="color: #993366">Kriterlerde kullanılan işleçler</span></strong></em></p>
<div>•Programlama dillerinde kullanılan aritmetiksel karşılaştırma işleçleri (&lt;, &lt;=, &gt;, &gt;=, =, &lt;&gt;) ve mantıksal işleçler (AND, OR, NOT) SQL dilinde de kriter verirken kullanılır.</div>
<div>•Aşağıdaki SQL cümlesi görevi müdür olan ve maaşı 5000 TL’den fazla olan personeli gösterir:</div>
<p><em><em> SELECT * FROM PERSONEL</em></em></p>
<p><em><em> WHERE GOREV = ‘Müdür’ AND MAAS &gt; 5000</em></em></p>
<p><strong><span style="color: #993366">Karakter türü verilerin karşılaştırılması</span></strong></p>
<div>•Karakter türü veriler ile de büyüklük-küçüklük kıyaslamaları yapılabilir.</div>
<div>•Aşağıdaki SQL cümlesi adı N-Z arasında bir harf ile başlayan personeli gösterir:</div>
<p><em>SELECT * FROM PERSONEL WHERE AD &gt; ‘N’</em></p>
<div>•Aşağıdaki SQL cümlesi adı E harfi ile başlayan personeli gösterir:</div>
<p><em>SELECT * FROM PERSONEL</em></p>
<p><em> WHERE AD &gt; ‘E’ AND AD &lt; ‘F’</em></p>
<p><strong><span style="color: #993366">LIKE işleci</span></strong></p>
<div>•Belirli bir karakter katarını barındıran verileri aramak için LIKE kullanılır.</div>
<div>•Önceki slaytta yer alan, adı E harfi ile başlayan personeli gösteren sorgu LIKE ile de yazılabilir:</div>
<p><em>SELECT * FROM PERSONEL   WHERE AD LIKE ‘E*’</em></p>
<div>•Adresler şehir adı ile bitiyorsa, Edirne ilinde ikamet eden öğrencileri görmek için aşağıdaki sorgu kullanılabilir:</div>
<p><em>SELECT * FROM ÖĞRENCİLER</em></p>
<p><em> WHERE ADRES LIKE ‘*Edirne’</em></p>
<p><strong><span style="color: #993366">BETWEEN … AND … işleci</span></strong></p>
<div>•İki değer arasında karşılaştırma yapmak için Between … And … işleci (… ile … arasında) kullanılabilir.</div>
<div>•Aşağıdaki SQL cümlesi maaşı 1000 ile 2000 TL arasında olan işçileri görüntüler:</div>
<p><em>SELECT * FROM PERSONEL</em></p>
<p><em> WHERE MAAS BETWEEN 1000 AND 2000</em></p>
<p><em> AND GOREVI = ‘İşçi’ </em></p>
<div>•Bu sorgu Between işleci kullanılmadan da yazılabilirdi:</div>
<p><em>SELECT * FROM PERSONEL</em></p>
<p><em> WHERE MAAS &gt;= 1000 AND MAAS &lt;= 2000</em></p>
<p><em> AND GOREVI = ‘İşçi’ </em></p>
<p><strong><span style="color: #993366">IN işleci</span></strong></p>
<div>•Bir listedeki değerler ile karşılaştırma yapmak için IN işleci kullanılır.</div>
<div>•1000 ile 2000 TL arasında değil de sadece 1000, 1500 ve 2000 TL maaş alanları listelemek için aşağıdaki SQL cümlesi kullanılabilir:</div>
<p><em>SELECT * FROM PERSONEL WHERE MAAS IN (1000, 1500, 2000)</em></p>
<p><strong><span style="color: #993366">Tarihsel türü verilerin karşılaştırılması</span></strong></p>
<div>•Belirli bir tarihe eşit olan veya o tarihten büyük yada küçük olan verilerin aranması istenirse, tarih ay/gün/yıl biçiminde ve # karakterleri arasında yazılmalıdır:</div>
<p><em><em>SELECT * FROM OGRENCILER</em></em></p>
<p><em><em> WHERE DOGUM_TARIHI BETWEEN</em></em></p>
<p><em><em> #1/1/1989# AND #12/31/1989#</em></em></p>
<p><strong><span style="color: #993366">DISTINCT ifadesi</span></strong></p>
<div>•Eğer tablonun bir alanında yer alan veriler içinde aynı olan veriler varsa SELECT ifadesinden sonra kullanılan DISTINCT ile bu tekrar eden verilerin sadece 1 defa görüntülenmesi sağlanabilir.</div>
<div>•Aşağıdaki SQL cümlesi farklı kayıtlardaki aynı adları her kayıt için tekrar göstermek yerine 1 defa gösterilmesini sağlar:</div>
<p><em>SELECT DISTINCT AD FROM PERSONEL</em></p>
<p><strong><span style="color: #993366">AS ifadesi ve sütun içeriklerini birleştirme</span></strong></p>
<div>•Sütunların kendi ismi yerine AS ifadesi ile takma isim almaları sağlanabilir.</div>
<div>•İki yada daha fazla sayıda sütunun içeriğini birleştirmek için sütun isimleri arasında Access’te &amp;, Oracle’da ise || işleçleri kullanılır.</div>
<div>•Aşağıdaki SQL cümlesi AD ve SOYAD sütunlarının içeriklerini araya bir boşluk karakteri ekleyerek birleştirir ve ISIM adlı bir sütun şeklinde gösterir.</div>
<p><em> SELECT AD &amp; ‘ ‘ &amp; SOYAD AS ISIM FROM OGRENCILER</em></p>
<p><strong><span style="color: #993366">Matematiksel İşlemler</span></strong></p>
<div>•SELECT ifadesinden sonra bir sütunun bir matematiksel işleme tabi tutulması ve bu işlemin sonucunun gösterilmesi sağlanabilir.</div>
<div>•Tabloda aylık maaşları saklanan personelin yıllık maaşlarının görüntülenmesi istenirse, aşağıdaki SQL cümlesi kullanılabilir:</div>
<p><em> SELECT AD, SOYAD, MAAS * 12 AS YıllıkÜcret</em></p>
<p><em> FROM PERSONEL</em></p>
<p><strong><span style="color: #993366">NULL (boş) değerler ile ilgili işlemler</span></strong></p>
<div>•Eğer bir kayıt, bazı alanları boş bırakılarak eklendiyse, matematiksel işlemlerde sorun çıkabilir (NULL, sıfır değeri ile aynı değildir).</div>
<p>1500 * 12 + 0 işleminin sonucu 1800 iken,</p>
<p>1500 * 12 + NULL işleminin sonucu NULL olacaktır.</p>
<div>•Karşılaştırma işlemlerinde de NULL ile = işleci kullanılmaz, IS kullanılır.</div>
<p><em>SELECT * FROM PERSONEL WHERE TC_NO IS NULL</em></p>
<p><strong><span style="color: #993366">Büyük/Küçük Harf Duyarlılığı</span></strong></p>
<div>•SQL dili büyük/küçük harf ayrımı yapmaz (case-sensitive değildir).</div>
<div>•Aşağıdaki yazımların hepsi aynı işi yapar (Personel tablosundaki tüm personelin sadece adı ve soyadı görüntülenir):</div>
<div>–SELECT AD, SOYAD FROM PERSONEL</div>
<div>–SELECT Ad, Soyad FROM Personel</div>
<div>–Select Ad, Soyad From Personel</div>
<p>select ad, soyad from persone</p>
<p><strong><span style="color: #993366">Türkçe karakter kullanma</span></strong></p>
<div>•Birçok VTYS, tablo ve nitelik isimlerinde Türkçe karakter kullanımına izin verir. Fakat sorgularda bazı sıkıntılara neden olabileceği için kullanılması tavsiye edilmez.</div>
<p>Örneğin PERSONEL tablosundaki nitelik isimleri ADI ve SOYADI şeklinde büyük harfler ile verildiyse, bazı VTYS’ler “SELECT Adi, Soyadi FROM Personel” ifadesini, bazıları ise “SELECT Adı, Soyadı FROM Personel” ifadesini doğru kabul eder.</p>
<p><strong><span style="color: #993366">Alan ismi olarak kullanılmaması gereken kelimeler</span></strong></p>
<div>•Bir öğrencinin not bilgilerini saklamak için “NOT” isminde bir alan yaratılırsa sorgularda bu alana göre kriter verilmek istendiğinde, İngilizcede “değil” anlamına geldiği için hata verecektir. “NOT” yerine “NOTU”, “VIZE”, “FINAL” gibi ifadeler tercih edilmelidir:</div>
<div><em>–SELECT * FROM NOTLAR WHERE NOT &gt;= 60</em></div>
<div><em>–SELECT * FROM NOTLAR WHERE NOTU &gt;= 60</em></div>
<div>•Benzer şekilde SQL’e ait olan “SELECT”, “FROM”, “WHERE”, “ORDER”, … gibi ifadeler de alan ismi olarak kullanılmamalıdır.</div>
<div><strong><span style="color: #993366">ORDER BY ile sıralama</span></strong></div>
<div>
<div>•Eğer görüntülenecek olan kayıtların belirli bir sütuna göre sıralı olarak görüntülenmesi isteniyorsa ORDER BY kullanılır.</div>
<div>•Sıralama yukarıdan aşağıya doğru artan sırada olacaksa ASC, azalan sırada olacaksa DESC kullanılır. Varsayılan sıralama şekli artan olduğu için ASC yazılmasa bile artan sıralama kullanılmış olur.</div>
<div>•Aşağıdaki SQL cümlesi PERSONEL tablosundaki kayıtları maaşa göre azalan sırada gösterir:</div>
<p><em>SELECT * FROM PERSONEL ORDER BY MAAS DESC</em></p>
<p><span style="color: #800080;font-weight: bold">SQL Fonksiyonları</span></p>
<div>•Programlama dillerinde olduğu gibi, SQL’de de bazı aritmetik işlemler için yada tip dönüşümü yapmak için hazır olarak sunulan fonksiyonlar mevcuttur.</div>
<div>•Bu fonksiyonların bazıları (SUM, AVG, MIN, MAX, …) birçok kayıt üzerinde işlem yapıp tek bir sonuç üretirken, bazıları ise (Örneğin; tip dönüşümü ile ilgili olanlar) üzerinde işlem yaptığı her kayıt için ayrı sonuç üretir.</div>
<div><strong><span style="color: #993366">SUM ve AVG</span></strong></div>
<div>
<div>•Belirli bir sütundaki sayısal verilerin toplanarak sonucun gösterilmesi istenirse SUM, aritmetik ortalamasının gösterilmesi istenirse AVG kullanılır.</div>
<div>•Aşağıdaki SQL cümlelerinden ilki tüm personelin maaşlarının toplamını, ikincisi ise maaşların aritmetik ortalamasını gösterir:</div>
<div><em>1.SELECT SUM(MAAS) AS TOPLAM_MAAS FROM PERSONEL</em></div>
<div><em>2.SELECT AVG(MAAS) AS [MAASLARIN ORTALAMASI] FROM PERSONEL</em></div>
<div><em><br />
</em></div>
<div><strong><span style="color: #993366">MIN ve MAX</span></strong></div>
<div>
<div>•Belirli bir sütundaki en büyük veriyi görüntülemek için MAX, en küçük veriyi görüntülemek için ise MIN fonksiyonları kullanılır.</div>
<div>•Aşağıdaki SQL cümlesi, “2009-2010” öğretim yılında “BM 316” dersinden en yüksek başarı notunu gösterir:</div>
<p><em>SELECT MAX(VIZE*0.3 + FINAL*0.7)</em></p>
<p><em>FROM NOTLAR</em></p>
<p><em>WHERE DERS = “BM 316” AND DERS_YILI = “2009-2010”</em></p>
<p><strong><span style="color: #993366">COUNT</span></strong></p>
<div>•Sorgunun ürettiği satır sayısını döndürür.</div>
<div>•Aşağıdaki SQL cümlesi PERSONEL tablosundaki toplam kayıt sayısını döndürür:</div>
<p><em>SELECT COUNT(*) FROM PERSONEL</em></p>
<div>•Eğer COUNT içinde * yerine belirli bir sütun ismi verilirse o sütundaki NULL olmayan değer sayısını döndürür:</div>
<p><em>SELECT COUNT(ADRES) FROM OGRENCILER</em></p>
<p><span style="color: #993366"><strong>TOP</strong></span></p>
<div>•Önceki örnekte en yüksek başarı notunu alan öğrencinin numarasını da göstermek istersek aşağıdaki kullanım hata verecektir:</div>
<p><em>SELECT OGRENCI, MAX(VIZE*0.3 + FINAL*0.7)</em></p>
<p><em>FROM NOTLAR</em></p>
<p><em>WHERE DERS = “BM 316” AND DERS_YILI = “2009-2010”</em></p>
<div>•SELECT sonrasında “TOP n” kullanımı en üstteki n kaydı gösterir. Örneğimizde başarı notuna göre azalan sıralama yapıp en üstteki kaydı almak için “TOP 1” deyimini kullanmak en uygun çözümdür:</div>
<p><em>SELECT TOP 1 OGRENCI, VIZE*0.3 + FINAL*0.7 AS Başarı_Notu</em></p>
<p><em>FROM NOTLAR</em></p>
<p><em>WHERE DERS = “BM 316” AND DERS_YILI = </em>“2009-2010”</p>
<p><em>ORDER BY VIZE*0.3 + FINAL*0.7</em></p>
<p><em><br />
</em></p>
<p><strong><span style="color: #993366">LCASE, UCASE ve LEN</span></strong></p>
<div>•LCASE: Tüm karakterleri küçük harfe dönüştürür. (Oracle’da LOWER)</div>
<div>•UCASE: Tüm karakterleri büyük harfe dönüştürür. (Oracle’da UPPER)</div>
<div>•LEN: Sütun yada ifade içindeki karakter sayısını döndürür (Oracle’da LENGTH)</div>
<div>•Aşağıdaki SQL cümlesi SOYAD bilgileri küçük harfli bile girilmiş olsa tüm karakterleri büyük harf olarak görüntüler:</div>
<p><em> SELECT AD, LCASE(SOYAD) FROM PERSONEL</em></p>
<p><strong><span style="color: #993366">Tip Dönüşümleri</span></strong></p>
<div>•Access’te tip dönüşümleri için aşağıdaki fonksiyonlar kullanılır:</div>
<p><em> CBool   CDate   CInt   CStr</em></p>
<p><em> CByte   CDbl   CLng   CVar</em></p>
<p><em> CCur   CDec   CSng</em></p>
<div>•Oracle’da en çok kullanılan fonksiyonlar:</div>
<p><em>TO_NUMBER  TO_DATE  TO_CHAR</em></p>
<div>•Oracle’daki tüm tip dönüşümü fonksiyonları için:<a href="http://psoug.org/reference/convert_func.html">http://psoug.org/reference/convert_func.html</a></div>
<div><strong><span style="color: #993366">Tarihsel Fonksiyonlar (Access)</span></strong></div>
<div>
<div>•NOW: Sistem tarihini ve saatini döndürür.</div>
<div>•DATEDIFF: İki tarih arasındaki farkı verir.</div>
<div>•DATEADD: Aldığı tarihin üzerine aldığı değeri (gün, ay, yıl) ekleyerek yeni bir tarih değeri üretir.</div>
<div>•DAY: Aldığı tarihin gün kısmını döndürür.</div>
<div>•MONTH: Aldığı tarihin gün kısmını döndürür.</div>
<div>•YEAR: Aldığı tarihin gün kısmını döndürür.</div>
<div>•Oracle’daki tarihsel fonksiyonlar için: <a href="http://psoug.org/reference/date_func.html">http://psoug.org/reference/date_func.html</a></div>
<div><strong><span style="color: #993366">GROUP BY</span></strong></div>
<div>
<div>•SUM, AVG gibi bazı fonksiyonların tablonun tamamı için değil de, belirli bir alana (yada alanlara) göre gruplandırılarak çalıştırılması GROUP BY deyimi ile sağlanabilir.</div>
<div>•Aşağıdaki SQL cümlesi personelin ortalama maaşlarını her bölüm için ayrı ayrı listeler:</div>
<p><em>SELECT AVG(MAAS) FROM PERSONEL</em></p>
<p><em> GROUP BY BOLUM</em></p>
<p><strong><span style="color: #993366">Çok tablolu sorgulamalar</span></strong></p>
<div>•Eğer birden fazla tabloda yer alan verilerin tek bir sorgu ile görüntülenmesi istenirse FROM kısmında ilgili tablolar araya virgül konularak yazılmalı, WHERE kısmında ise o tabloları birbirine bağlayan alanların birbirine eşit olması kriteri verilmelidir. WHERE kısmında böyle bir kriter verilmezse, iki tablonun tüm kayıtları birbiri ile eşleştirilecek (kartezyen çarpım) ve ortaya istenilenden daha çok sayıda kayıt çıkacaktır.</div>
<div><strong><span style="color: #993366">2 tablolu sorgulama örneği</span></strong></div>
<div>
<div>•PERSONEL tablosundaki BOLUM (FK) alanı ile BOLUMLER tablosundaki BOLUM_NO (PK) alanı birbirine bağlıdır. Eğer personel bilgileri görüntülenirken personelin çalıştığı bölümün numarasını değil de adını göstermek istersek bu adı BOLUMLER tablosundan elde etmeliyiz. Bu nedenle iki tablonun ismini de FROM kısmında kullanmalıyız:</div>
<p><em>SELECT AD, SOYAD, GOREV, BOLUM_ADI</em></p>
<p><em>FROM PERSONEL, BOLUMLER</em></p>
<p><em>WHERE BOLUM = BOLUM_NO</em></p>
<p><strong><span style="color: #993366">Alan isimlerinin aynı olması durumu</span></strong></p>
<div>•Eğer bir çok tablolu sorgulamada ilişkinin her iki tarafındaki alanlar aynı isimde ise; alan isimlerinden önce, o alanın ait olduğu tablo ismi de yer almalıdır.</div>
<div>•Örneğin PERSONEL tablosundaki alan ismi de BOLUM_NO olsaydı sorgu şu şekilde yazılmalıydı:</div>
<p><em>SELECT AD, SOYAD, GOREV, BOLUM_ADI</em></p>
<p><em> FROM PERSONEL, BOLUMLER</em></p>
<p><em> WHERE PERSONEL.BOLUM_NO =</em></p>
<p><em> BOLUMLER.BOLUM_NO</em></p>
<p><em>3 tablolu sorgulama örneği</em></p>
<div>•Öğrencilerin adı, soyadı, aldıkları derslerin adı ve bu derslerden başarı notları görüntülenmek istenirse:</div>
<p><em>SELECT AD, SOYAD, DERS_ADI, VIZE*0.3 +   FINAL*0.7 AS BN</em></p>
<p><em> FROM OGRENCILER, NOTLAR, DERSLER</em></p>
<p><em> WHERE OGR_NO = OGRENCI AND   DERS = DERS_KODU</em></p>
<p><strong><span style="color: #993366">İç içe SELECT ifadeleri</span></strong></p>
<div>•Eğer SELECT sonrasında yazılan alanların hepsi aynı tabloda, fakat kriter olarak kullanılan alanlar onlardan farklı bir tabloda ise iç içe SELECT ifadeleri kullanılabilir.</div>
<div>•Aşağıdaki SQL cümlesi ‘Fizik’ dersini alan öğrencilerin bilgilerini gösterir:</div>
<p><em>SELECT OGR_NO, AD, SOYAD FROM OGRENCILER</em></p>
<p><em>WHERE OGR_NO IN (</em></p>
<p><em> SELECT OGRENCI FROM NOTLAR</em></p>
<p><em> WHERE DERS IN (</em></p>
<p><em> SELECT DERS_KODU FROM DERSLER</em></p>
<p>WHERE DERS_ADI = ‘Fizik’))</p>
<p><strong><span style="color: #993366">İç içe SELECT ifadeleri</span></strong></p>
<div>•Önceki örneği çok tablolu sorgulama türünde de yapabilirdik:</div>
<p><em>SELECT OGR_NO, AD, SOYAD</em></p>
<p><em> FROM OGRENCILER, NOTLAR, DERSLER</em></p>
<p><em> WHERE OGR_NO = OGRENCI AND</em></p>
<p><em> DERS_NO = DERS  AND DERS_ADI = ‘Fizik’</em></p>
<div>•Fakat bu sorgu tabloların kartezyen çarpımına neden olacağı için muhtemelen daha yavaş çalışacaktır.</div>
<div><strong><span style="color: #993366">INSERT</span></strong></div>
<div>
<div>•Bir tabloya kayıt eklerken kullanılan DML komutudur.</div>
<div>•Aşağıdaki DML ifadesi HOCALAR tablosuna kayıt ekler:</div>
<p><em> INSERT INTO HOCALAR VALUES (15, ‘Ahmet’, ‘Çalışkan’, ‘Prof. Dr.’)</em></p>
<div>•Eğer eklenecek kaydın sadece belirli alanlarına veri girilecekse (Ör. HOCA_NO alanı ‘otomatik sayı’ veri türünde ise o alana veri giremeyiz), tablo adından sonra bu alanlar belirtilmelidir:</div>
<p><em>INSERT INTO HOCALAR (AD, SOYAD, UNVAN) VALUES (‘Ahmet’, ‘Çalışkan’, ‘Prof. Dr.’)</em></p>
<p><strong><span style="color: #993366">DELETE</span></strong></p>
<div>•Bir tablodaki bir yada daha çok kaydı silmek amacıyla kullanılan DML komutudur. Hangi kayıt yada kayıtların silineceği WHERE sözcüğünden sonra verilen kriter ile belirlenir.</div>
<div>•Aşağıdaki DML ifadesi NOTLAR tablosundan ‘2007-2008’ öğretim yılına ait tüm kayıtları siler:</div>
<p><em> DELETE FROM NOTLAR WHERE DERS_YILI = ‘2007-2008’</em></p>
<div>•Eğer WHERE sözcüğü hiç kullanılmaz ise tablodaki tüm kayıtlar silinir:</div>
<p><em> DELETE FROM NOTLAR</em></p>
<p><strong><span style="color: #993366">UPDATE</span></strong></p>
<div>•Bir tablodaki kayıtların güncellenmesi amacıyla kullanılan DML komutudur. Hangi kayıt yada kayıtların güncelleneceği WHERE sözcüğü ile verilen kriter ile, kayıtlardaki güncellenecek alanlar ise SET sözcüğü sonrasında yeni değerlerinin atanması ile belirtilir.</div>
<div>•Aşağıdaki DML ifadesi PERSONEL tablosundaki Pazarlama bölümünde çalışanların maaşlarını %10 oranında arttırır.</div>
<p><em> UPDATE PERSONEL SET MAAS = MAAS * 1.1 WHERE BOLUM = (SELECT BOLUM_NO FROM BOLUMLER WHERE BOLUM_ADI = ‘Pazarlama’)</em></p>
<p><strong><span style="color: #993366">Sorgu sonucunu tablo yapma</span></strong></p>
<div>•Bir sorgu sonucunun yeni bir tablo olarak saklanması isteniyorsa FROM öncesinde INTO TABLO_ADI kullanılır.</div>
<div>•Aşağıdaki SQL cümlesi PERSONEL tablosundaki tüm verileri yeni yaratacağıPERS_YEDEK tablosuna kopyalar:</div>
<p><em>SELECT * INTO PERS_YEDEK FROM PERSONEL</em></p>
<div>•Eğer PERS_YEDEK tablosu önceden varsa, yukarıdaki komut önce tabloyu siler, sonra tekrar yaratarak verileri kopyalar.</div>
<div>Sorgu sonucunu INSERT ile kullanma</div>
<div>
<div>•Bir tabloya veri eklerken INSERT ifadesinde VALUES yazılmayıp bir sorgu da yazılabilir.</div>
<div>•Aşağıdaki ifade PERSONEL tablosundaki tüm verileri önceden yaratılmış olanPERS_YEDEK tablosuna ekler:</div>
<p><em>INSERT INTO PERS_YEDEK SELECT * FROM PERSONEL</em></p>
<div>•Bu komut çalıştırılmadan önce PERS_YEDEK tablosu boş değilse anahtar alan olan PERSONEL_NO alanında veri tekrarına neden olabilir (dolayısı ile hata verebilir).</div>
<div>•Aşağıdaki ifade sadece 2010 yılından sonra işe başlayanları ekler:</div>
<p><em>INSERT INTO PERS_YEDEK SELECT * FROM PERSONEL WHERE GIRIS_TARIHI &gt; #1/1/2010#</em></p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.bilyaz.com/index.php/sqlstructed-query-language.html/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Windows Phone ListPicker kullanımı</title>
		<link>http://www.bilyaz.com/index.php/windows-phone-listpicker-kullanimi.html/</link>
		<comments>http://www.bilyaz.com/index.php/windows-phone-listpicker-kullanimi.html/#comments</comments>
		<pubDate>Fri, 20 Apr 2012 16:53:42 +0000</pubDate>
		<dc:creator>özlem erden</dc:creator>
				<category><![CDATA[Mobil]]></category>

		<guid isPermaLink="false">http://www.bilyaz.com/?p=1809</guid>
		<description><![CDATA[Merhaba arkadaşlar, Sizlere windows phone uygulamalarınızda kullanacağınız güzel bir kontrolün kullanımını anlatacağım. ”Listpicker”. Kullanımı Combobox gibidir fakat comboboxtan daha fazla özelliğe sahiptir. ilk olarak windows phone için Silverlight aracı yüklememiz gerekir. buradan indirebilirsiniz. http://silverlight.codeplex.com/releases/view/71550 şimdi de yeni bir windows phone projesi açıyoruz. ismini “ListpickerDemo” olarak veriyoruz. referanslar kısmından References -&#62; choose Add Refrences -&#62; choose Microsoft.Phone.Controls.Toolkit seçiyoruz. <a href='http://www.bilyaz.com/index.php/windows-phone-listpicker-kullanimi.html/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.bilyaz.com%2Findex.php%2Fwindows-phone-listpicker-kullanimi.html%2F&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;font=lucida grande&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px;height:30px;margin-top:5px;"></iframe><div align="left" style="float:left;padding:0px 5px 5px 0px;"><a name="fb_share" type="box_count" share_url="http://www.bilyaz.com/index.php/windows-phone-listpicker-kullanimi.html/"></a></div><p>Merhaba arkadaşlar,</p>
<p style="text-align: left">Sizlere windows phone uygulamalarınızda kullanacağınız güzel bir kontrolün kullanımını anlatacağım. ”Listpicker”. Kullanımı Combobox gibidir fakat comboboxtan daha fazla özelliğe sahiptir. ilk olarak windows phone için Silverlight aracı yüklememiz gerekir. buradan indirebilirsiniz. <a href="http://silverlight.codeplex.com/releases/view/71550">http://silverlight.codeplex.com/releases/view/71550</a></p>
<p>şimdi de yeni bir windows phone projesi açıyoruz. ismini “ListpickerDemo” olarak veriyoruz.</p>
<p><a rel="attachment wp-att-611" href="http://www.bilyaz.com/?attachment_id=611"><img src="http://ozlemerden.files.wordpress.com/2012/04/winphonelistpck11.png?w=500" alt="" /></a></p>
<p>referanslar kısmından References -&gt; choose Add Refrences -&gt; choose Microsoft.Phone.Controls.Toolkit seçiyoruz.</p>
<p><a rel="attachment wp-att-612" href="http://www.bilyaz.com/?attachment_id=612"><img src="http://ozlemerden.files.wordpress.com/2012/04/winphonelistpck2.png?w=450&amp;h=377" alt="" width="450" height="377" /></a></p>
<p><span style="color: #ff0000">xmlns</span><span style="color: #0000ff">:</span><span style="color: #ff0000">toolkit</span>=<span style="color: #0000ff">”clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone.Controls.Toolkit”</span> kontrolümüzü MainPage.xaml kısmına ekliyoruz.</p>
<p>şimdi de TextBlock,TextBox and ListPicker kontrollerimizi ekliyoruz..</p>
<p><img src="http://www.c-sharpcorner.com/UploadFile/f397b9/using-listpicker-in-windows-phone-7/Images/WinPhoneListPck3.png" alt="Listpicker in Windows Phone" /></p>
<p>Listpicker için ItemTemplate  FullModeItemTemplate tanımlamamız gerekir..</p>
<ul>
<li><span style="color: #0000ff">&lt;</span><span style="color: #993300">phone:PhoneApplicationPage.Resources</span><span style="color: #0000ff">&gt;</span><br />
<span style="color: #0000ff"> &lt;</span><span style="color: #993300">DataTemplate</span> <span style="color: #ff0000">x</span><span style="color: #0000ff">:</span><span style="color: #ff0000">Name</span><span style="color: #0000ff">=</span><span style="color: #0000ff">“lpkItemTemplate”&gt;</span><br />
<span style="color: #0000ff"> &lt;</span><span style="color: #993300">TextBlock <span style="color: #ff0000">Text</span></span><span style="color: #0000ff">=“</span>{<span style="color: #993300">Binding</span> <span style="color: #ff0000">Country</span><span style="color: #0000ff">}” /&gt;</span><br />
<span style="color: #0000ff"> &lt;</span><span style="color: #993300"><span style="color: #0000ff">/</span>DataTemplate</span><span style="color: #0000ff">&gt;</span><br />
<span style="color: #0000ff"> &lt;</span><span style="color: #993300">DataTemplate </span><span style="color: #ff0000">x<span style="color: #0000ff">:</span>Name</span><span style="color: #0000ff">=“lpkFullItemTemplate”&gt;</span><br />
<span style="color: #0000ff"> &lt;</span><span style="color: #993300">TextBlock</span> <span style="color: #ff0000">Text</span><span style="color: #0000ff">=“{</span><span style="color: #993300">Binding</span> <span style="color: #ff0000">Country</span><span style="color: #0000ff">}” /&gt;</span><br />
<span style="color: #0000ff"> &lt;/</span><span style="color: #993300">DataTemplate</span><span style="color: #0000ff">&gt;</span><br />
<span style="color: #0000ff"> &lt;/</span><span style="color: #993300">phone:PhoneApplicationPage.Resources</span><span style="color: #0000ff">&gt;</span></li>
</ul>
<p>şimdi de XAML Code kısmını yazıyoruz:</p>
<p>&lt;<span style="color: #993300">phone:PhoneApplicationPage</span></p>
<p><span style="color: #ff0000">x:Class</span><span style="color: #0000ff">=“ListPickerDemo.MainPage”</span></p>
<p><span style="color: #0000ff"><span style="color: #ff0000">xmlns</span>=“http://schemas.microsoft.com/winfx/2006/xaml/presentation”</span></p>
<p><span style="color: #ff0000">xmlns:x</span><span style="color: #0000ff">=“http://schemas.microsoft.com/winfx/2006/xaml”</span></p>
<p><span style="color: #ff0000">xmlns:phone</span><span style="color: #0000ff">=“clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone”</span></p>
<p><span style="color: #ff0000">xmlns:shell</span><span style="color: #0000ff">=“clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone”</span></p>
<p><span style="color: #0000ff"><span style="color: #ff0000">xmlns</span>:<span style="color: #ff0000">d</span>=“http://schemas.microsoft.com/expression/blend/2008″</span></p>
<p><span style="color: #0000ff"><span style="color: #ff0000">xmlns</span>:<span style="color: #ff0000">mc</span>=“http://schemas.openxmlformats.org/markup-compatibility/2006″</span></p>
<p><span style="color: #0000ff"><span style="color: #ff0000">mc:Ignorable</span>=“d” <span style="color: #ff0000">d:DesignWidth</span>=”480″ <span style="color: #ff0000">d:DesignHeight</span>=”768″</span></p>
<p><span style="color: #0000ff"><span style="color: #ff0000">xmlns:toolkit</span>=“clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone.Controls.Toolkit”</span></p>
<p><span style="color: #ff0000">FontFamily</span><span style="color: #0000ff">=“{</span><span style="color: #993300">StaticResource</span> <span style="color: #ff0000">PhoneFontFamilyNormal</span><span style="color: #0000ff">}”</span></p>
<p><span style="color: #ff0000">FontSize</span><span style="color: #0000ff">=“{</span><span style="color: #993300">StaticResource</span> <span style="color: #ff0000">PhoneFontSizeNorma</span>l<span style="color: #0000ff">}”</span></p>
<p><span style="color: #ff0000">Foreground<span style="color: #0000ff">=“{</span><span style="color: #993300">StaticResource</span> PhoneForegroundBrush<span style="color: #0000ff">}”</span></span></p>
<p><span style="color: #ff0000">SupportedOrientations<span style="color: #0000ff">=“Portrait”</span> Orientation</span><span style="color: #0000ff">=“Portrait”</span></p>
<p><span style="color: #ff0000">shell<span style="color: #0000ff">:</span>SystemTray.IsVisible</span><span style="color: #0000ff">=“True”&gt;</span></p>
<p><span style="color: #993300"><span style="color: #0000ff">&lt;</span>phone:PhoneApplicationPage.Resources<span style="color: #0000ff">&gt;</span></span></p>
<p><span style="color: #993300"><span style="color: #0000ff">&lt;</span>DataTemplate <span style="color: #ff0000">x<span style="color: #0000ff">:</span>Name</span><span style="color: #0000ff"><span style="color: #ff0000">=</span>“lpkItemTemplate”&gt;</span></span></p>
<p><span style="color: #993300"><span style="color: #0000ff">&lt;</span>TextBlock <span style="color: #ff0000">Text</span><span style="color: #0000ff">=“{</span>Binding <span style="color: #ff0000">Country</span><span style="color: #0000ff">}” /&gt;</span></span></p>
<p><span style="color: #993300"><span style="color: #0000ff">&lt;/</span>DataTemplate<span style="color: #0000ff">&gt;</span></span></p>
<p><span style="color: #993300"><span style="color: #0000ff">&lt;</span>DataTemplate <span style="color: #ff0000">x<span style="color: #0000ff">:</span>Name</span><span style="color: #0000ff">=“lpkFullItemTemplate“&gt;</span></span></p>
<p><span style="color: #993300"><span style="color: #0000ff">&lt;</span>TextBlock <span style="color: #ff0000">Text</span><span style="color: #0000ff">=“{</span>Binding <span style="color: #ff0000">Country</span><span style="color: #0000ff">}” /&gt;</span></span></p>
<p><span style="color: #993300"><span style="color: #0000ff">&lt;/</span>DataTemplate<span style="color: #0000ff">&gt;</span></span></p>
<p><span style="color: #993300"><span style="color: #0000ff">&lt;/</span>phone:PhoneApplicationPage.Resources<span style="color: #0000ff">&gt;</span></span></p>
<p><span style="color: #0000ff">&lt;</span><span style="color: #993300">Grid </span><span style="color: #ff0000">x:Name</span><span style="color: #0000ff">=“LayoutRoot”</span><span style="color: #993300"> </span><span style="color: #ff0000">Background</span><span style="color: #0000ff">=“Transparent”&gt;</span></p>
<p><span style="color: #993300"><span style="color: #0000ff">&lt;</span>Grid.RowDefinitions<span style="color: #0000ff">&gt;</span></span></p>
<p><span style="color: #0000ff">&lt;</span><span style="color: #993300">RowDefinition</span> <span style="color: #ff0000">Height</span><span style="color: #0000ff">=“Auto”/&gt;</span></p>
<p><span style="color: #0000ff">&lt;</span><span style="color: #993300">RowDefinition</span> <span style="color: #ff0000">Height</span><span style="color: #0000ff">=“*”/&gt;</span></p>
<p><span style="color: #993300"><span style="color: #0000ff">&lt;/</span>Grid.RowDefinitions<span style="color: #0000ff">&gt;</span></span></p>
<p style="text-align: left"><span style="color: #993300"><span style="color: #0000ff">&lt;</span>StackPanel <span style="color: #ff0000">x:Name</span><span style="color: #0000ff">=“TitlePanel”</span> <span style="color: #ff0000">Grid.Row</span><span style="color: #0000ff">=“0″</span> <span style="color: #ff0000">Margin</span><span style="color: #0000ff">=“12,17,0,28″&gt;</span></span></p>
<p style="text-align: left"><span style="color: #993300"><span style="color: #0000ff"> </span></span><span style="color: #0000ff">&lt;</span><span style="color: #993300">TextBlock </span><span style="color: #ff0000">x:Name</span><span style="color: #0000ff">=“ApplicationTitle”</span><span style="color: #993300"> </span><span style="color: #ff0000">Text</span><span style="color: #0000ff">=“MY APPLICATION”</span><span style="color: #993300"> </span><span style="color: #ff0000">Style</span><span style="color: #0000ff">=“{</span><span style="color: #993300">StaticResource </span><span style="color: #ff0000">PhoneTextNormalStyle</span><span style="color: #0000ff">}”/&gt;</span></p>
<p style="text-align: left"><span style="color: #993300"><span style="color: #0000ff">&lt;</span>TextBlock <span style="color: #ff0000">x:Name</span><span style="color: #0000ff">=“PageTitle”</span> <span style="color: #ff0000">Text</span><span style="color: #0000ff">=“ListPicker” </span><span style="color: #ff0000">Margin</span><span style="color: #0000ff">=“9,-7,0,0″</span> <span style="color: #0000ff">Style</span><span style="color: #0000ff">=”{</span>StaticResource <span style="color: #ff0000">PhoneTextTitleStyle</span><span style="color: #0000ff">}”/&gt;</span></span></p>
<p style="text-align: left"><span style="color: #993300"><span style="color: #0000ff">&lt;/</span>StackPanel<span style="color: #0000ff">&gt;</span></span></p>
<p style="text-align: left"><span style="color: #993300"><span style="color: #0000ff">&lt;</span>Grid <span style="color: #ff0000">x:Name</span><span style="color: #0000ff">=“ContentPanel”</span> <span style="color: #ff0000">Grid.Row</span><span style="color: #0000ff">=“1″</span> <span style="color: #ff0000">Margin</span><span style="color: #0000ff">=“12,0,12,0″&gt;</span></span></p>
<p style="text-align: left"><span style="color: #993300"><span style="color: #0000ff">&lt;</span>Grid.RowDefinitions<span style="color: #0000ff">&gt;</span></span></p>
<p style="text-align: left"><span style="color: #993300"><span style="color: #0000ff">&lt;</span>RowDefinition <span style="color: #ff0000">Height</span><span style="color: #0000ff">=“Auto”/&gt;</span></span></p>
<p style="text-align: left"><span style="color: #993300"><span style="color: #0000ff">&lt;</span>RowDefinition <span style="color: #ff0000">Height</span><span style="color: #0000ff">=“Auto”/&gt;</span></span></p>
<p><span style="color: #993300"><span style="color: #0000ff">&lt;</span>RowDefinition <span style="color: #ff0000">Height</span><span style="color: #0000ff">=“Auto”/&gt;</span></span></p>
<p><span style="color: #993300"><span style="color: #0000ff">&lt;</span>RowDefinition <span style="color: #ff0000">Height</span><span style="color: #0000ff">=“Auto”/&gt;</span></span></p>
<p><span style="color: #993300"><span style="color: #0000ff">&lt;</span>RowDefinition <span style="color: #ff0000">Height</span><span style="color: #0000ff">=“Auto”/&gt;</span></span></p>
<p><span style="color: #993300"><span style="color: #0000ff">&lt;</span>RowDefinition <span style="color: #ff0000">Height</span><span style="color: #0000ff">=“*”/&gt;</span></span></p>
<p><span style="color: #993300"><span style="color: #0000ff">&lt;/</span>Grid.RowDefinitions<span style="color: #0000ff">&gt;</span></span></p>
<p><span style="color: #993300"><span style="color: #0000ff">&lt;</span>TextBlock <span style="color: #ff0000">Text</span><span style="color: #0000ff">=“Name”</span> <span style="color: #ff0000">Margin</span><span style="color: #0000ff">=“14,0,0,0″/&gt;</span></span></p>
<p><span style="color: #993300"><span style="color: #0000ff">&lt;</span>TextBox <span style="color: #ff0000">Grid.Row</span><span style="color: #0000ff">=“1″</span> <span style="color: #ff0000">Name</span><span style="color: #0000ff">=“txtName”/&gt;</span></span></p>
<p><span style="color: #993300"><span style="color: #0000ff">&lt;</span>TextBlock <span style="color: #ff0000">Text</span><span style="color: #0000ff">=“Ages “</span> <span style="color: #ff0000">Grid.Row</span><span style="color: #0000ff">=“2″</span> <span style="color: #ff0000">Margin</span><span style="color: #0000ff">=“14,0,0,0″/&gt;</span></span></p>
<p><span style="color: #993300"><span style="color: #0000ff">&lt;</span>TextBox <span style="color: #ff0000">Name</span><span style="color: #0000ff">=“txtAge”</span> <span style="color: #ff0000">Grid.Row</span><span style="color: #0000ff">=“3″/&gt;</span></span></p>
<p><span style="color: #993300"><span style="color: #0000ff">&lt;</span>TextBlock <span style="color: #ff0000">Text</span><span style="color: #0000ff">=“Country” </span><span style="color: #ff0000">Grid.Row</span><span style="color: #0000ff">=“4″</span> <span style="color: #ff0000">Margin</span><span style="color: #0000ff">=“14,0,0,0″ /&gt;</span></span></p>
<p><span style="color: #993300"><span style="color: #0000ff">&lt;</span>toolkit:ListPicker <span style="color: #ff0000">FullModeItemTemplate</span><span style="color: #0000ff">=”{Binding lpkFullItemTemplate}”</span></span></p>
<p><span style="color: #993300">Grid.Row=“5″ <span style="color: #ff0000">ItemTemplate</span><span style="color: #0000ff">=“{Binding lpkItemTemplate}”</span></span></p>
<p><span style="color: #993300"><span style="color: #ff0000">x:Name</span><span style="color: #0000ff">=“lpkCountry”/&gt;</span></span></p>
<p><span style="color: #993300"><span style="color: #0000ff">&lt;</span>Button <span style="color: #ff0000">Content</span><span style="color: #0000ff">=“Submit”</span> <span style="color: #ff0000">Grid.Row</span><span style="color: #0000ff">=“5″</span> <span style="color: #ff0000">Height</span><span style="color: #0000ff">=“72″ </span><span style="color: #ff0000">HorizontalAlignment</span><span style="color: #0000ff">=”Left” </span><span style="color: #ff0000">Margin</span><span style="color: #0000ff">=“284,87,0,0″</span> <span style="color: #ff0000">Name</span>=<span style="color: #0000ff">“btnSubmit”</span> <span style="color: #ff0000">Click=</span><span style="color: #0000ff">“btnSubmit_Click”</span><br />
<span style="color: #ff0000"> VerticalAlignment</span><span style="color: #0000ff">=“Top”</span> <span style="color: #ff0000">Width</span><span style="color: #0000ff">=“160″ /&gt;</span></span></p>
<p><span style="color: #993300"><span style="color: #0000ff">&lt;/</span>Grid<span style="color: #0000ff">&gt;</span></span></p>
<p><span style="color: #993300"><span style="color: #0000ff">&lt;/</span>Grid<span style="color: #0000ff">&gt;</span></span></p>
<p><span style="color: #993300"><span style="color: #0000ff">&lt;/</span>phone:PhoneApplicationPage<span style="color: #0000ff">&gt;</span></span></p>
<p>şimdi de uygulamamızın C# kod kısmına geçelim :</p>
<p><span style="font-weight: bold">C# Code :</span></p>
<p><span style="color: #0000ff">using</span> System;</p>
<p><span style="color: #0000ff">using</span> System.Collections.Generic;</p>
<p><span style="color: #0000ff">using</span> System.Linq;</p>
<p><span style="color: #0000ff">using</span> System.Net;</p>
<p><span style="color: #0000ff">using</span> System.Windows;</p>
<p><span style="color: #0000ff">using</span> System.Windows.Controls;</p>
<p><span style="color: #0000ff">using</span> System.Windows.Documents;</p>
<p><span style="color: #0000ff">using</span> System.Windows.Input;</p>
<p><span style="color: #0000ff">using </span>System.Windows.Media;</p>
<p><span style="color: #0000ff">using</span> System.Windows.Media.Animation;</p>
<p><span style="color: #0000ff">using</span> System.Windows.Shapes;</p>
<p><span style="color: #0000ff">using</span> Microsoft.Phone.Controls;</p>
<p><span style="color: #0000ff">namespace</span> ListPickerDemo</p>
<p>{</p>
<p><span style="color: #0000ff">public partial class</span> <span style="color: #33cccc">MainPage : PhoneApplicationPage</span></p>
<p>{</p>
<p><span style="color: #33cccc">String</span>[] Country = { <span style="color: #ff0000">“Turkey”,”France”,”Brazil”,”Spain”,”Greece”,</span></p>
<p><span style="color: #ff0000">“Argentina”,”Britain”,”Pakistan”,”Germany”,<br />
“Italy”,”Portugal”,”England”,”Canada”,”USA”,<br />
“Russia “,”Sweden”,”Japan”,”Scotland”,”Bulgaria”</span> };</p>
<p><span style="color: #0000ff">public</span> MainPage()</p>
<p>{</p>
<p>InitializeComponent();</p>
<p><span style="color: #0000ff">this</span>.lpkCountry.ItemsSource = Country;</p>
<p>}</p>
<p><span style="color: #0000ff">private void</span> btnSubmit_Click(<span style="color: #0000ff">object</span> sender, <span style="color: #33cccc">RoutedEventArgs</span> e)</p>
<p>{</p>
<p><span style="color: #33cccc">String</span> _Content = <span style="color: #33cccc">String</span>.Format(<span style="color: #ff0000">“Name: {0} \nAges: {1}\nCountry: {2}”</span>,</p>
<p>txtName.Text,txtAge.Text,lpkCountry.SelectedItem);</p>
<p><span style="color: #ff0000">MessageBox.Show</span>(_Content);</p>
<p>}</p>
<p>}</p>
<p>}</p>
<p>şimdi projemizi çalıştırıyoruz arkadaşlar:</p>
<p><a rel="attachment wp-att-626" href="http://www.bilyaz.com/?attachment_id=626"><img src="http://ozlemerden.files.wordpress.com/2012/04/ekran-alc4b1ntc4b1sc4b12.png?w=500" alt="" /></a></p>
<p>şimdi isim ve yaş kısımlarına bilgilerimizi girdikten sonra, ülke kısmına tıkladığımızda aşağıdaki şekilde görünüm elde ederiz.</p>
<p><a rel="attachment wp-att-627" href="http://www.bilyaz.com/?attachment_id=627"><img src="http://ozlemerden.files.wordpress.com/2012/04/2-ekran-alc4b1ntc4b1sc4b1.png?w=500" alt="" /></a></p>
<p>şimdi ülkemizi de seçtikten sonra submit kısmına basıyoruz..</p>
<p><a rel="attachment wp-att-628" href="http://www.bilyaz.com/?attachment_id=628"><img src="http://ozlemerden.files.wordpress.com/2012/04/5-ekran-alc4b1ntc4b1sc4b1.png?w=500" alt="" /></a></p>
<p>Diğer Makalelerimde Windows Phone uygulamalarınız için ihtiyacınız olan kontrollerin kullanımı sırayla göstermeye çalışacağım..</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bilyaz.com/index.php/windows-phone-listpicker-kullanimi.html/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ForeignKeyReferenceAlreadyHasValueException</title>
		<link>http://www.bilyaz.com/index.php/foreignkeyreferencealreadyhasvalueexception.html/</link>
		<comments>http://www.bilyaz.com/index.php/foreignkeyreferencealreadyhasvalueexception.html/#comments</comments>
		<pubDate>Wed, 28 Mar 2012 07:32:04 +0000</pubDate>
		<dc:creator>Uğur ERDEM</dc:creator>
				<category><![CDATA[Linq]]></category>

		<guid isPermaLink="false">http://www.bilyaz.com/?p=1804</guid>
		<description><![CDATA[Linq ile uptade yapmaya çalşırken, FK  güncellemesi yapıyor iseniz ve Operation is not valid due to the current state of the object hatasını alma olasılığınız var. Hatanın sebebi ise siz güncelleme yapmak isterken veriyi db üzerinden çektiğiniz de linq objesi üzerinde ilişkili olduğu datayla geliyor. Böylece size güncelleme işlemini direk id üzerinden yapmanıza izin vermiyor.  Örnek <a href='http://www.bilyaz.com/index.php/foreignkeyreferencealreadyhasvalueexception.html/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.bilyaz.com%2Findex.php%2Fforeignkeyreferencealreadyhasvalueexception.html%2F&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;font=lucida grande&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px;height:30px;margin-top:5px;"></iframe><div align="left" style="float:left;padding:0px 5px 5px 0px;"><a name="fb_share" type="box_count" share_url="http://www.bilyaz.com/index.php/foreignkeyreferencealreadyhasvalueexception.html/"></a></div><p>Linq ile uptade yapmaya çalşırken, FK  güncellemesi yapıyor iseniz ve Operation is not valid due to the current state of the object hatasını alma olasılığınız var. Hatanın sebebi ise siz güncelleme yapmak isterken veriyi db üzerinden çektiğiniz de linq objesi üzerinde ilişkili olduğu datayla geliyor. Böylece size güncelleme işlemini direk id üzerinden yapmanıza izin vermiyor.  Örnek verecek olursak,aşağıdaki bir linq enity si içerisindeki bir FK property sini görebilirsiniz.  Burada eğer ben kategori değiştirmek için,</p>
<p>subcat.CategoryId = 1;  gibi değişim yapacak olursam yukarıdaki hatayı alıyorum.  Güncellemeyi onun yerine id üzerinden değil doğrudan ilişkili olduğu entity üzerinden yapmamız gerekiyor. Aşağıdaki gibi bir değişim ise başarılı bir şekilde sonuçlanacaktır.</p>
<p>Kolay gelsin,</p>
<pre> public int CategoryId
        {
            get
            {
                return this._CategoryId;
            }
            set
            {
                if ((this._CategoryId != value))
                {
                    if (this._Category.HasLoadedOrAssignedValue)
                    {
                        throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
                    }
                    this.OnCategoryIdChanging(value);
                    this.SendPropertyChanging();
                    this._CategoryId = value;
                    this.SendPropertyChanged("CategoryId");
                    this.OnCategoryIdChanged();
                }
            }
        }</pre>
<pre>var catId = Convert.ToInt32(leKat.EditValue);</pre>
<pre>subcategory.Active = cbAktif.Checked;
subcategory.Entry = cbGiris.Checked;
subcategory.SubCategoryName = txtSubCat.Text;
subcategory.Category = _datacontext.Categories.Single(c =&gt; c.CategoryId == catId);
 //subcategory.CategoryId = Convert.ToInt32(leKat.EditValue); //hata direk atamaya izin vermiyor.
 _datacontext.SubmitChanges();
 DBLogHelper.InsertTableLog(subcategory, TableList.SubCategories, ActionTypeList.Update);</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.bilyaz.com/index.php/foreignkeyreferencealreadyhasvalueexception.html/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP ile basit bir bot örneği</title>
		<link>http://www.bilyaz.com/index.php/php-ile-basit-bir-bot-ornegi.html/</link>
		<comments>http://www.bilyaz.com/index.php/php-ile-basit-bir-bot-ornegi.html/#comments</comments>
		<pubDate>Sat, 17 Mar 2012 14:14:28 +0000</pubDate>
		<dc:creator>Fettah KURTULUŞ</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.bilyaz.com/?p=1801</guid>
		<description><![CDATA[Uzun bir aradan sonra tekrardan merhaba, işler güçler, sınavlar derken bayağı boşladım blogumu Neyse büyük bir hızla kaldığımız yerden devam edelim. Geçen günlerde ufak bir proje hazırladım ve bu proje için veri girmek çok uzun sürecekti ve bunun için küçük bir bot hazırlamak durumunda kaldım ve basit bir bot fonksiyonu hazırladım. Basit ama kullanışlı birşey <a href='http://www.bilyaz.com/index.php/php-ile-basit-bir-bot-ornegi.html/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.bilyaz.com%2Findex.php%2Fphp-ile-basit-bir-bot-ornegi.html%2F&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;font=lucida grande&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px;height:30px;margin-top:5px;"></iframe><div align="left" style="float:left;padding:0px 5px 5px 0px;"><a name="fb_share" type="box_count" share_url="http://www.bilyaz.com/index.php/php-ile-basit-bir-bot-ornegi.html/"></a></div><p>Uzun bir aradan sonra tekrardan merhaba, işler güçler, sınavlar derken bayağı boşladım blogumu  Neyse büyük bir hızla kaldığımız yerden devam edelim. Geçen günlerde ufak bir proje hazırladım ve bu proje için veri girmek çok uzun sürecekti ve bunun için küçük bir bot hazırlamak durumunda kaldım ve basit bir bot fonksiyonu hazırladım. Basit ama kullanışlı birşey olduğunu düşünüyorum  Neyse şimdi koda dönelim</p>
<p>evet bu kırpma işlemlerimizi yapan basit fonksiyonum, 3 parametreye sahip;<br />
$data – Sayfa kaynak kodu<br />
$startTag – Hangi taglar arasındaki veriyi alacağımızı belirliyoruz. ör. <title><br />
$finishTag – StartTag da belirttiğimiz tag’ın kapattığımız hali ör. </title></p>
<p>şimdi bu fonksiyonu nasıl kullanacağımızı görelim</p>
<p>&lt;?php<br />
$url=&quot;<a href="http://www.kibriscasinos.com">http://www.kibriscasinos.com</a>&#8220;;<br />
$title = file_get_contents($url);<br />
$data= takeData($title,&#8217;&#8216;);<br />
echo &#8220;Site Başlığı: &#8220;.$data;<br />
?&gt;</p>
<p>işte bu kadar üst düzey bir bot değil farkındayım  ama kullanışlı ve geliştirilebilir bir fonksiyon olduğunu düşünüyorum.</p>
<p>Not : file_get_contents($url) fonksiyonu ile $url değişkeni içerisindeki adresin kaynak kodunu alıyoruz.</p>
<p>Kaynak : <a href="http://blog.fettahkurtulus.com/index.php/2012/02/09/phpde-basit-bir-bot-ornegi/">blog.fettahkurtulus.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.bilyaz.com/index.php/php-ile-basit-bir-bot-ornegi.html/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Android Absolute Layout</title>
		<link>http://www.bilyaz.com/index.php/absolute-layout.html/</link>
		<comments>http://www.bilyaz.com/index.php/absolute-layout.html/#comments</comments>
		<pubDate>Thu, 16 Feb 2012 15:04:55 +0000</pubDate>
		<dc:creator>Gul YURDAKUL</dc:creator>
				<category><![CDATA[Mobil]]></category>
		<category><![CDATA[Absolutelayout]]></category>
		<category><![CDATA[android layout]]></category>

		<guid isPermaLink="false">http://www.bilyaz.com/?p=1793</guid>
		<description><![CDATA[Kısacası layout için kullanıcı arayüzü diyebiliriz. Xml ie oluşturulur. Layoutları 6 ana grupta toplayabiliriz.  AbsoluteLayout,  FrameLayout, LinearLayout, TableLayout, RelativeLayout, ScrollView. Absolute Layout Absolute Layout’dan başlayalım anlatmaya. Absolute layout son derece basittir. Tek amacı, layout içerisindeki kullanılan nesnenin özel pozisyonunu belirterek yani x ve y koordinatlarını vererek kullanmaktır. Yani, kullanılacak olan nesnelerin yerlerini örneğin tek tek <a href='http://www.bilyaz.com/index.php/absolute-layout.html/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.bilyaz.com%2Findex.php%2Fabsolute-layout.html%2F&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;font=lucida grande&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px;height:30px;margin-top:5px;"></iframe><div align="left" style="float:left;padding:0px 5px 5px 0px;"><a name="fb_share" type="box_count" share_url="http://www.bilyaz.com/index.php/absolute-layout.html/"></a></div><p>Kısacası layout için kullanıcı arayüzü diyebiliriz. Xml ie oluşturulur. Layoutları 6 ana grupta toplayabiliriz.  AbsoluteLayout,  FrameLayout, LinearLayout, TableLayout, RelativeLayout, ScrollView.</p>
<p><strong>Absolute Layout</strong></p>
<p>Absolute Layout’dan başlayalım anlatmaya. Absolute layout son derece basittir. Tek amacı, layout içerisindeki kullanılan nesnenin özel pozisyonunu belirterek yani x ve y koordinatlarını vererek kullanmaktır. Yani, kullanılacak olan nesnelerin yerlerini örneğin tek tek (piksel piksel) belirlemek istiyorsanız bu layoutu kullanabilirsiniz. Şimdi bu konuyla ilgili basit bir uygulama yapalım.</p>
<p><a rel="attachment wp-att-1794" href="http://www.bilyaz.com/index.php/absolute-layout.html/absolutelayout/"><img class="alignnone size-full wp-image-1794" src="http://www.bilyaz.com/images/makale//AbsoluteLayout.png" alt="" width="737" height="558" /></a></p>
<p>Uygulamamızda Ad ve Soyad kısmının girileceği iki tane Edittext ve Gönder butonu kullandık .  Bunların işlevleri şuan için önemli değil. Bizim için konumları önemli. Konumlarını belirlemek için de <strong>layout_x</strong> ve <strong>layout_y</strong> özelliklerini kullanıyoruz.  Diğer layoutları ileriki makalelerde bulabilrsiniz.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bilyaz.com/index.php/absolute-layout.html/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Benzeri Bulma Oyunu</title>
		<link>http://www.bilyaz.com/index.php/benzerbulma.html/</link>
		<comments>http://www.bilyaz.com/index.php/benzerbulma.html/#comments</comments>
		<pubDate>Fri, 27 Jan 2012 21:14:35 +0000</pubDate>
		<dc:creator>Eren GENÇTÜRK</dc:creator>
				<category><![CDATA[C / C++]]></category>
		<category><![CDATA[Proje]]></category>
		<category><![CDATA[Örnek Kodlar]]></category>
		<category><![CDATA[benzer bulma oyunu]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[c++ oyun]]></category>
		<category><![CDATA[object oriented programming]]></category>

		<guid isPermaLink="false">http://www.bilyaz.com/?p=1788</guid>
		<description><![CDATA[Merhaba arkadaşlar. Osmangazi Üniversitesi Object Oriented Programming dersi için yaptığım proje. Proje için gerekli olanları aşağıdaki gibi hoca bize verdi.Kodlamaya proposals kısmının altından devam edeceğim. Bu Kısım fazla önemli değil ingilizce zaten fazla bir şey anladığım da yok. Specification: This is a board game. A sample user interface is given in Fig. 1. Fig. 1. <a href='http://www.bilyaz.com/index.php/benzerbulma.html/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.bilyaz.com%2Findex.php%2Fbenzerbulma.html%2F&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;font=lucida grande&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px;height:30px;margin-top:5px;"></iframe><div align="left" style="float:left;padding:0px 5px 5px 0px;"><a name="fb_share" type="box_count" share_url="http://www.bilyaz.com/index.php/benzerbulma.html/"></a></div><p>Merhaba arkadaşlar.</p>
<p>Osmangazi Üniversitesi Object Oriented Programming dersi için yaptığım proje.</p>
<p>Proje için gerekli olanları aşağıdaki gibi hoca bize verdi.Kodlamaya proposals kısmının altından devam edeceğim.</p>
<p style="text-align: center"><a href="http://www.erengencturk.com.tr/wp-content/uploads/2012/01/game.png"><img class="aligncenter" src="http://www.erengencturk.com.tr/wp-content/uploads/2012/01/game-300x126.png" alt="" width="300" height="126" /></a></p>
<p>Bu Kısım fazla önemli değil ingilizce zaten fazla bir şey anladığım da yok.</p>
<h6><strong>Specification:</strong><br />
This is a board game. A sample user interface is given in Fig. 1.<br />
Fig. 1. Sample user interface of the Find the Same, Get the Fame…<br />
The game has the following rules:<br />
• The game board contains 5×5 columns of letters where each column consists of 10 letters. The<br />
columns will be formed with the letters (A – Z), randomly. The player only sees the top of these<br />
columns. The top items will be closed by default.<br />
• The player plays by entering the coordinates of two columns. This means that the player requests<br />
comparison of the letters at the top of these columns. These two letters will be shown to the player<br />
for a short time and will be closed again, if they are not the same. Otherwise, these two letters will<br />
be removed from the top of the columns and the player will gain 5 points.<br />
• The game will continue until all the letters are removed or more importantly, if no two of the<br />
remaining top letters are the same, i.e., there is no possible improvement. In the second case, all<br />
columns will be filled with new random letters from scratch.<br />
• The player can request to terminate the game by pressing ‘Q’.<br />
• There will be a “Top Ten High Scores” file which holds the points and duration information of the<br />
highest scores where the score is computed by dividing points to duration. When the game ends,<br />
the score of the player will be checked with the scores in this file and inserted if deserved.<br />
• The game can be played by one or two players. When the program starts, single/multiplayer game<br />
choice should be presented to the user. In a multiplayer game, when one player enters her/his<br />
guess for the same cards and s/he is successful, her/his turn will continue, otherwise the next<br />
player will do the guessing. The durations and the points of the players should be counted<br />
separately.<br />
<strong></strong></h6>
<h6><strong>Requirements:</strong><br />
At least, the following classes will be used in the project:<br />
• Stack<br />
• Controller/Manager<br />
• Player<br />
The Stack class should have the default stack implementation without any extra variable or function<br />
definitions. The Player class will be responsible for user input controls with error checks.<br />
The Controller class should control the game rules, manage the screen output and scores.</h6>
<p>Proje 5-6 gün ve her gün 4-5 saatlik bir çalışma sonucu ortaya çıktı.Kodlama yaparken neyin lazım olacağını hangi fonksiyonların kullanılacağını bir kağıda sırası ile yazdım. Öncelikle bir plan oluşturmak neyi nerde nasıl yapabileceğimizin fizibilite çalişması yaparak not etmek bize çok fayda sağlayacagı için bu şekilde başlamayı tercih ettim.Bir söz vardır:”<em>Planlamaya ayrilan</em> bir <em>dakika</em>, Uygulamada bir <em>saat kazandirir.</em>“.Mantık bu <img src='http://www.bilyaz.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  .</p>
<p>Neyse ilk olarak matrix in constructorunu tanımladım ve default olarak tanımlanan matrixin içini ‘-’ ler ile doldurdum default matrixde.Columns ve Rows ların get ve set fonsiyonlarını yazarak kodlamaya devam ettim.Daha sonra herhangibir matrixin içerisini ‘-’ ler ile dolduracağımız MatrixEmpty fonksiyonunu yazdık matrix classında.Yazdığım MatrixFill fonksiyonu ile de matrix in içine random upper harf atadık.MatrixShow ise matrix imimizi göstermek istediğimiz yerde matrixi gösteren fonksiyon.</p>
<p style="text-align: center"><a href="http://www.erengencturk.com.tr/wp-content/uploads/2012/01/game22.png"><img class="aligncenter" src="http://www.erengencturk.com.tr/wp-content/uploads/2012/01/game22-300x153.png" alt="" width="300" height="153" /></a></p>
<p>Matrix fonksiyonunu yazarken karşılaştığım sorunlardan biri random harf üretme idi.Bu problemi ASCII kodu kullanarak ürettiğim sayıları aralık olarak uppercase harflerin ASCII kod sayılarını baz aldık ve daha sonra bunları char a çevirdik.</p>
<p>Game class’ı her nekadar kısa ve önemsiz gözükse de önemli bir işleve sahip.Game class’ı  kullanıcıdan kordinantları almaya yarıyor. Overload ettiğimiz &gt;&gt; ve &lt;&lt; ile de kordinant isteme ve girme noktasında görsellik ve kolaylık sağlıyor bize.</p>
<p>Daha sonra ControllerManager class’ı ile devam ettim kodlamaya.ControllerManager’de  Start_Menu ile başladım kodlamaya. Start_Menu fonksiyonu ile başlangıç ekranında nelerin görüneceğini yazdım.Start_Menu de switch case yapısını kullanarak kullanıcının seçim yapmasını sağladım.</p>
<p style="text-align: center"><a href="http://www.erengencturk.com.tr/wp-content/uploads/2012/01/game7.png"><img class="aligncenter" src="http://www.erengencturk.com.tr/wp-content/uploads/2012/01/game7-300x152.png" alt="" width="300" height="152" /></a></p>
<p>ControllerManager class’ı fonksiyonlarından biri ControlForCordinantes. Bu fonksiyonda girilen kordinantların 0 ile 4 arasında olmasını kontrol ediyoruz. ControlNotSameMember fonksiyonu ile de oyunun bitip bitmediğini kontrol ediyoruz.Burada ControlNotSameMember fonksiyonunu yazarken bayağı uğraş verdim.Ilk başta netin nasıl olacagına kara veremedim sonra vector kullanarak bunu çözebileceğimi anladım.Vector kullanırken burada daha sonraki classda göreceğimiz kullanıcının bildiği harflerin yerine ‘-’ ekleme ile bilinen harfleri matrixten çıkarıyoruz yerine ‘-’ ekliyoruz ve arta kalan harfleri vector tarzda arraya ekliyoruz.Burada vector kullanma sebebim ise bilinen harf sayısı sürekli değişeceği için esnek bir yapı olması.Vectore eklediğimiz harfleri çift for kullanarak baştan sona kontrol ediyor ve aynı harfin var olup olmadığını denetliyoruz.</p>
<p style="text-align: center"><a href="http://www.erengencturk.com.tr/wp-content/uploads/2012/01/game3.png"><img class="aligncenter" src="http://www.erengencturk.com.tr/wp-content/uploads/2012/01/game3-300x153.png" alt="" width="300" height="153" /></a></p>
<p>Ek olarak classtaki Wait fonksiyonu ile de kullandığımız herhangibir yerde proğramı  fonksiyona göderdiğimiz int değer kadar saniye bekleme sağlıyor.</p>
<p>Son olarak Player class’ını yazdım.Kodlamada en çok uğraştıran kısım olan Player class’ı tek ve çok kullanıcı ile oyunun oynanmasını sağlayan, kullanıcının aldığı puan süreyi ismi ile txt dosyasına kaydeden fonksiyonların kodları içeriyor.</p>
<p>Oyunda ve kodlamada en önemli kısım SinglePlayer kısmı.Bu fonksiyonda goto ve if yapısını çok kullandım.Goto yapısı her ne kadar kodlamada elverişli olmasada aklıma gelen tek çözüm yöntemi idi.</p>
<p>İf yapısı ile şartları kontrol ediyor ve şartlar ugun değil ise goto ile ya başa gidiyor yada sona gidiyorduk.Kullanımı sakıncalı fakat kolaydı.</p>
<p style="text-align: center"><a href="http://www.erengencturk.com.tr/wp-content/uploads/2012/01/game4.png"><img class="aligncenter" src="http://www.erengencturk.com.tr/wp-content/uploads/2012/01/game4-300x154.png" alt="" width="300" height="154" /></a></p>
<p>Başlangıcta kullanıcıdan ismini girmesini istiyoruz ve oyuna devam ediyoruz.Başta 3 matrix tanımladım bunun sebebi  1 matrixi random harflerle üretip hafızada tutuyoruz.Oyuncunun bildiği harferi 2. Ürettiğimiz boş matrix e atıyoruz. 3. Matrix ise aracı olarak kulanıyoruz eğer harfler benzer bulunmamış ise harflerin sadece ekranda görünüp sonra tekrar eski haline gelmesi için bilinenlerin hafızada tutulmasını sağlamak amacı ile kullanıyorum.Bunun daha basit yöntemi olacağını biliyorum fakat uzun uğraşlar ile ancak bukadarını yapabildim.Kodlamada en sıkıntılı yer burası idi.</p>
<p>İlk olarak girilen kordinantların doğrulugunu kontrol ediyoruz yani daha önce bilinen harlerin olduğu koordinantmı yoksa ucuk bir koordinantmı diye sonra ise if yapılarında ControllerManager class’ının fonksiyonlarını kullanarak tek tek kontrollerden geçiriyoruz girilen koordinantlarda bulunan harfleri. Şartlara göre kullanıcıya puan ve süre ekleniyor.</p>
<p style="text-align: center"><a href="http://www.erengencturk.com.tr/wp-content/uploads/2012/01/game5.png"><img class="aligncenter" src="http://www.erengencturk.com.tr/wp-content/uploads/2012/01/game5-300x153.png" alt="" width="300" height="153" /></a></p>
<p>MultiPlayer kısmında ise SinglePlayerdeki kodların aynısını kullandım.Ek olarak sadece sıranın hangi kullanıcıda olduğunu beliremek için player1 ve player2 için MultiControl sayısı ekledim.Bu MultiControl sayısı ilk başta her iki oyuncu için 0 ile başlıyor ve 1. Oyuncu oyunu oynamaya başlıyor. Eğer 1. Oyuncu doğru veya yanlış tahminde bulunmuş ise MultiControl sayısı 1. Oyuncu için 1 arttırılıyor. Kontorlu ise 1. Oyuncunun  MultiControl sayısı 2. Oyuncunun MultiControl sayısına eşit ise 1. Oyuncunun sırası geldiğini anlıyoruz fakat ise 1. Oyuncunun  MultiControl sayısı 2. Oyuncunun MultiControl sayısından buyuk ise sıranın 2. Oyuncuda olduğunu anlıyoruz.</p>
<p style="text-align: center"><a href="http://www.erengencturk.com.tr/wp-content/uploads/2012/01/game6.png"><img class="aligncenter" src="http://www.erengencturk.com.tr/wp-content/uploads/2012/01/game6-300x154.png" alt="" width="300" height="154" /></a></p>
<p>Son olarak bu classta TopTenPlayer ve MultiTopTenPlayer ile oyuncuların scorlarını sürelerini isimlerini txt dosyasına kaydetmesini sağladım ve consol oyunu içerisinde kullanıcının scorları görebilmesi için ShowTopTenPlayer ve ShowMultiTopTenPlayer i kodladım. Oyunun kurallarını gösteren Game_Rules ile de oyunun kurallarının ne olduğunu belirttim.</p>
<p>Oyunun kodlaması bunlardan ibaret. GamePlay.cpp de türetilen ControllerManager tarzda türetilen Cstrt nin fonksiyonu olan Start_Menu ile oynu başlatıyoruz ve artık oyun oynanmaya hazır oluyor.</p>
<p style="text-align: center"><a href="http://www.erengencturk.com.tr/wp-content/uploads/2012/01/game8.png"><img class="aligncenter" src="http://www.erengencturk.com.tr/wp-content/uploads/2012/01/game8-300x154.png" alt="" width="300" height="154" /></a></p>
<p>Proje’nin Solution’u (Visual Studio 2010 ile yazılmıştır): <a href="http://www.erengencturk.com.tr/wp-content/uploads/2012/01/Solution.rar">Solution</a></p>
<p>Proje’nin Kaynak Kodları: <a href="http://www.erengencturk.com.tr/wp-content/uploads/2012/01/Source-Codes.rar">Source Codes</a></p>
<p>Kodlara Bakmak için aşşagıdaki linkleride Kulanabilirsiniz:</p>
<p>ControllerManager.cpp : <a href="http://pastie.org/private/sr1xxq6cjd3vfl9kzq2pg">http://pastie.org/private/sr1xxq6cjd3vfl9kzq2pg</a></p>
<p>ControllerManager.h : <a href="http://pastie.org/private/r1xghfhwocxf1mjnmfdpig">http://pastie.org/private/r1xghfhwocxf1mjnmfdpig</a></p>
<p>Game.cpp : <a href="http://pastie.org/private/r2ncliuw1qr0jel4ffoq">http://pastie.org/private/r2ncliuw1qr0jel4ffoq</a></p>
<p>Game.h : <a href="http://pastie.org/private/se1ct4imstgh6b65gfuwow">http://pastie.org/private/se1ct4imstgh6b65gfuwow</a></p>
<p>Matrix.cpp : <a href="http://pastie.org/private/lgxcou0ah6reemgdrumcxa">http://pastie.org/private/lgxcou0ah6reemgdrumcxa</a></p>
<p>Matrix.h : <a href="http://pastie.org/private/bqax9bsmndyw06ivyvwdg">http://pastie.org/private/bqax9bsmndyw06ivyvwdg</a></p>
<p>Player.cpp : <a href="http://pastie.org/private/t9x390ull4xqo2tk2f3gqq">http://pastie.org/private/t9x390ull4xqo2tk2f3gqq</a></p>
<p>Player.h : <a href="http://pastie.org/private/h1dbwptyxgwxqf8wnlwtmg">http://pastie.org/private/h1dbwptyxgwxqf8wnlwtmg</a></p>
<p>GaePlay.cpp : <a href="http://pastie.org/private/kqdlj0anycvea2oln7ktg">http://pastie.org/private/kqdlj0anycvea2oln7ktg</a></p>
<p>Saygılarımla…</p>
<p>Eren GENÇTÜRK</p>
<p>www.erengencturk.com.tr</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bilyaz.com/index.php/benzerbulma.html/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

