{"id":268,"date":"2009-04-27T10:35:00","date_gmt":"1970-01-01T00:00:00","guid":{"rendered":"http:\/\/www.yazilimmutfagi.com\/?p=268"},"modified":"2009-04-27T10:35:00","modified_gmt":"1970-01-01T00:00:00","slug":"dataset-kavrami-ii","status":"publish","type":"post","link":"https:\/\/www.yazilimmutfagi.com\/index.php\/2009\/04\/27\/dataset-kavrami-ii\/","title":{"rendered":"Dataset Kavrami &#8211; II"},"content":{"rendered":"<p style=\"margin: 0cm 0cm 0pt; text-indent: 35.4pt;\" class=\"MsoNormal\"><span style=\"font-size: small; font-family: Times New Roman;\">Dataset, Veri kaynagindan (veritabani xml dosyasi) yakalanmis bir verinin hafizada keslenmesini saglar ve ADO.NET mimarisinin &ouml;nemli komponenti durumundandir. Bir &ouml;nceki makalemizde datasetimizin i&ccedil;erisine bir tane datatable eklemis ve daha fazla DataTable&#8217;inda eklenebilecegini belirtmistik. Datasetler; DataRelation objesiyle iliskilendirilen DataTable koleksiyonlaridir. Table&#8217;lar arasinda UniqueConstraint and ForeingConstraint objeleri ile veri b&uuml;t&uuml;nl&uuml;g&uuml;n&uuml; artirabiliriz. Veri tabanlarimizdaki veri b&uuml;t&uuml;nl&uuml;g&uuml;n&uuml; de bu sekilde programlara yansitmis oluruz. Bu konuyla ilgili &ouml;rnegimiz asagida yer almaktadir.<\/span><\/p>\n<p style=\"margin: 0cm 0cm 0pt; text-indent: 35.4pt;\" class=\"MsoNormal\"><span style=\"font-size: small; font-family: Times New Roman;\">Asagidaki &ouml;rnekte iller tablosu ve il&ccedil;eler tablosunu dinamik olarak kodlarla nasil iliskilendirecegimizi g&ouml;recegiz. <\/span><span style=\"font-size: small; font-family: Times New Roman;\">Ilceler Tablosu (PK_Ilce_ID, Ilce_Ad) Iller Tablosu (PK_Il_ID, FK_Ilce_ID, Il_Ad) olsun . <\/span><\/p>\n<p style=\"margin: 0cm 0cm 0pt; text-indent: 35.4pt;\" class=\"MsoNormal\">&nbsp;<a href='www.yazilimmutfagi.com'>.<\/a><\/p>\n<p style=\"margin: 0cm 0cm 0pt;\" class=\"MsoNormal\"><span style=\"font-size: small; font-family: Times New Roman;\">&nbsp;&nbsp;&nbsp; <span style=\"color: blue;\">private<\/span> <span style=\"color: blue;\">static<\/span> <span style=\"color: blue;\">void<\/span> VeriBaglantisi(<span style=\"color: blue;\">string<\/span> connectionString)<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style=\"color: green;\">\/\/Belirtecegimiz baglanti c&uuml;mleri ile veritabani baglantisi ger&ccedil;eklestirilir<\/span><br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style=\"color: blue;\">using<\/span> (SqlConnection connection = <span style=\"color: blue;\">new<\/span> SqlConnection(connectionString))<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style=\"color: green;\">\/\/&nbsp;&nbsp;&nbsp;Ilceler Tablsu i&ccedil;in SqlDataAdapter olusturulur<\/span><br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SqlDataAdapter adapter = <span style=\"color: blue;\">new<\/span> SqlDataAdapter();<br \/>\n<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style=\"color: green;\">\/\/&nbsp;Bir tablo&nbsp;adi ile map edilir<\/span><br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; adapter.TableMappings.Add(<span style=\"color: maroon;\">&quot;Table&quot;<\/span>, <span style=\"color: maroon;\">&quot;Iller&quot;<\/span>);<br \/>\n<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style=\"color: green;\">\/\/&nbsp;Baglanti a&ccedil;ilir<\/span><br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; connection.Open();<br \/>\n<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style=\"color: green;\">\/\/ Ilce verilerini getirmek &uuml;zere SqlCommand olusturulur<\/span><br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SqlCommand command = <span style=\"color: blue;\">new<\/span> SqlCommand(<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style=\"color: maroon;\">&quot;SELECT PK_Il_ID,&nbsp;Il_Ad FROM dbo.Iller;&quot;<\/span>,<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; connection);<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; command.CommandType = CommandType.Text;<br \/>\n<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style=\"color: green;\">\/\/&nbsp; SqlDataAdapter in&nbsp;SelectCommand set edilir<\/span><br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; adapter.SelectCommand = command;<br \/>\n<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style=\"color: green;\">\/\/ DataSet i&ccedil;i doldurulur.<\/span><br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DataSet dataSet = <span style=\"color: blue;\">new<\/span> DataSet(<span style=\"color: maroon;\">&quot;Iller&quot;<\/span>);<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; adapter.Fill(dataSet);<br \/>\n<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style=\"color: green;\">\/\/&nbsp;Ayni islemler Iller tablosu i&ccedil;in ger&ccedil;eklestirilir<\/span><br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style=\"color: green;\">\/\/&nbsp;Ilclerer tablosu&nbsp;Il tablosunun &ccedil;ocugu durumundadir<\/span><br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SqlDataAdapter ilcelerAdapter = <span style=\"color: blue;\">new<\/span> SqlDataAdapter();<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ilcelerAdapter.TableMappings.Add(<span style=\"color: maroon;\">&quot;Table&quot;<\/span>, <span style=\"color: maroon;\">&quot;Ilceler&quot;<\/span>);<br \/>\n<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SqlCommand ilcelerCommand = <span style=\"color: blue;\">new<\/span> SqlCommand(<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style=\"color: maroon;\">&quot;SELECT PK_Ilce_ID,&nbsp;Ilce_Ad FROM dbo.Ilceler;&quot;<\/span>,<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; connection);<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ilcelerAdapter.SelectCommand = ilcelerCommand;<br \/>\n<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style=\"color: green;\">\/\/ DataSet i&ccedil;i doldurulur.&nbsp;<\/span><br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ilcelerAdapter.Fill(dataSet);<br \/>\n<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style=\"color: green;\">\/\/&nbsp;baglanti kapatilir<\/span><br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; connection.Close();<br \/>\n<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style=\"color: green;\">\/\/&nbsp;Iki tablo arasinda iliski kurulur<\/span><br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style=\"color: green;\">\/\/ based on the SupplierID.<\/span><br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DataColumn anaColumn =<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dataSet.Tables[<span style=\"color: maroon;\">&quot;Iller&quot;<\/span>].Columns[<span style=\"color: maroon;\">&quot;PK_Il_ID&quot;<\/span>];<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbnbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DataColumn cocukColumn =<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dataSet.Tables[<span style=\"color: maroon;\">&quot;Ilceler&quot;<\/span>].Columns[<span style=\"color: maroon;\">&quot;FK_Il_ID&quot;<\/span>];<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DataRelation&nbsp;iliskilendirme =<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style=\"color: blue;\">new<\/span> System.Data.DataRelation(<span style=\"color: maroon;\">&quot;IllerIlceler&quot;<\/span>,<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; anaColumn, cocukColumn);<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dataSet.Relations.Add(iliskilendirme);<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<\/span><\/p>\n<p style=\"margin: 0cm 0cm 0pt;\" class=\"MsoNormal\"><span style=\"font-size: small; font-family: Times New Roman;\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; B&ouml;ylelikle her yeni bir ilce olustugunda var olamayan bir ili Ilceler tablosuna koymamiza olanak kalmayacaktir. Veri b&uuml;t&uuml;nl&uuml;g&uuml; bu sayede veritabanin disina &ccedil;ikmistir ve&nbsp;tablolar arasindaki iliskiler&nbsp;olasi hatalarin &ouml;n&uuml;ne ge&ccedil;memize yardimci olacaktir. <\/span><\/p>","protected":false},"excerpt":{"rendered":"<p>Dataset, Veri kaynagindan (veritabani xml dosyasi) yakalanmis bir verinin hafizada keslenmesini saglar ve ADO.NET mimarisinin &#246;nemli komponenti durumundandir. Bir &#246;nceki makalemizde datasetimizin i&#231;erisine bir tane datatable eklemis ve daha fazla DataTable&#39;inda eklenebilecegini belirtmistik. &#8230;.<\/p>\n","protected":false},"author":554,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[407],"tags":[4612,4168,4906,4907,4611,5849,5971],"_links":{"self":[{"href":"https:\/\/www.yazilimmutfagi.com\/index.php\/wp-json\/wp\/v2\/posts\/268"}],"collection":[{"href":"https:\/\/www.yazilimmutfagi.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.yazilimmutfagi.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.yazilimmutfagi.com\/index.php\/wp-json\/wp\/v2\/users\/554"}],"replies":[{"embeddable":true,"href":"https:\/\/www.yazilimmutfagi.com\/index.php\/wp-json\/wp\/v2\/comments?post=268"}],"version-history":[{"count":0,"href":"https:\/\/www.yazilimmutfagi.com\/index.php\/wp-json\/wp\/v2\/posts\/268\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.yazilimmutfagi.com\/index.php\/wp-json\/wp\/v2\/media?parent=268"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.yazilimmutfagi.com\/index.php\/wp-json\/wp\/v2\/categories?post=268"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.yazilimmutfagi.com\/index.php\/wp-json\/wp\/v2\/tags?post=268"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}