﻿
{"id":211,"date":"2012-03-16T21:57:49","date_gmt":"2012-03-16T21:57:49","guid":{"rendered":"http:\/\/www.gencayyildiz.com\/blog\/?p=211"},"modified":"2012-04-25T07:10:16","modified_gmt":"2012-04-25T07:10:16","slug":"ado-net-datagriddatacolumn-ve-datarow-nesneleri","status":"publish","type":"post","link":"https:\/\/www.gencayyildiz.com\/blog\/ado-net-datagriddatacolumn-ve-datarow-nesneleri\/","title":{"rendered":"ADO.NET &#8211; DataGrid,DataColumn ve DataRow Nesneleri"},"content":{"rendered":"<div id=\"fb-root\"><\/div>\n<p>Bu yaz\u0131mda DataGrid,DataColumn ve DataRow nesnelerinden bahsedece\u011fim.Manuel bir \u015fekilde DataTable olu\u015fturmay\u0131,DataTableler aras\u0131nda DataSet \u00fczerinden ili\u015fki kurmay\u0131 ve ili\u015fkili kay\u0131tlar \u00fczerinden Disconnected \u00e7al\u0131\u015fmay\u0131 g\u00f6rece\u011fiz.<br \/>\n<!--more--> <strong><span style=\"color: #ff0000;\">DataGrid Nesnesi<\/span><\/strong><br \/>\nDataGrid nesnesini verileri g\u00f6r\u00fcnt\u00fclerken s\u0131k\u00e7a kullan\u0131r\u0131z.<br \/>\n<strong><span style=\"color: #ff0000;\">DataColumn Nesnesi<\/span><\/strong><br \/>\nDataTable i\u00e7inde kolon yap\u0131lar\u0131 DataColumn nesnesi sayesinde yap\u0131l\u0131r.<br \/>\n<strong><span style=\"color: #ff0000;\">DataRow Nesnesi<\/span><\/strong><br \/>\nDataTable i\u00e7inde sat\u0131r yap\u0131lar\u0131 DataRow nesnesi sayesinde yap\u0131l\u0131r.<\/p>\n<hr \/>\n<p>\u00d6ncelikle Visual Studio 2010 Toolbox&#8217;\u0131nda DataView nesnesi mevcut de\u011fildir.Nesnemizi ekleyebilmek i\u00e7in Toolbox&#8217;ta ister var olan kategorilerden birine y\u00fckleyebilece\u011fimiz gibi istersekte Toolbox&#8217;\u0131n bo\u015f bir yerine sa\u011f t\u0131klayarak Add Tab diyip kendi olu\u015fturdu\u011fumuz kategoriye ekleyebiliriz.Ben Data kategorisine y\u00fcklemek istiyorum.Bunun i\u00e7in o kategoriye sa\u011f t\u0131klay\u0131p Choose Items diyorum.DataGrid&#8217;i ekliyorum.Art\u0131k nesnemizin Toolbox&#8217;a gelmesi gerekiyor.Formumuza bir tane DataGrid nesnesi ekleyerek devam ediyorum.<br \/>\n\u015eimdi manuel bir \u015fekilde DataTable olu\u015fturmaya bakal\u0131m.<br \/>\n&#8220;Markalar&#8221; ve &#8220;Otomobiller&#8221; adl\u0131 iki adet tablo olu\u015ftural\u0131m.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n        DataTable markalar = new DataTable(&quot;Markalar&quot;);\r\n        DataTable otomobiller = new DataTable(&quot;Otomobiller&quot;);\r\n        DataSet tablolar = new DataSet(&quot;Tablolar&quot;);\r\n        private void Form1_Load(object sender, EventArgs e)\r\n        {\r\n\/\/Markalar------------\r\n            DataColumn MarkaId = new DataColumn(&quot;MarkaId&quot;);\r\n            MarkaId.DataType = typeof(int);\r\n            \/\/Veri tipi int olsun\r\n            MarkaId.AutoIncrement = true;\r\n            \/\/Otomatik arts\u0131n m\u0131?\r\n            MarkaId.AutoIncrementSeed = 1;\r\n            \/\/Ka\u00e7tan ba\u015flas\u0131n?\r\n            MarkaId.AutoIncrementStep = 1;\r\n            \/\/Ka\u00e7ar ka\u00e7ar arts\u0131n?\r\n            DataColumn MarkaAdi = new DataColumn(&quot;MarkaAdi&quot;);\r\n            MarkaAdi.Unique = true;\r\n            \/\/Bu kolonda tekrar eden kay\u0131t olmas\u0131n.Bu kolonun Unique e\u015fsiz,benzersiz,tekil olsun\r\n            MarkaAdi.DataType = typeof(string);\r\n\/\/Otomobiller------------\r\n            DataColumn OtomobilId = new DataColumn(&quot;OtomobilId&quot;);\r\n            OtomobilId.DataType=typeof(int);\r\n            OtomobilId.AutoIncrement = true;\r\n            OtomobilId.AutoIncrementSeed = 1;\r\n            OtomobilId.AutoIncrementStep = 1;\r\n            DataColumn OtomobilMarkaId = new DataColumn(&quot;OtomobilMarkaId&quot;);\r\n            \/\/Bu tablo markalar tablosundaki MarkaId tablosuyla ili\u015fkili olacak.\r\n            OtomobilMarkaId.DataType=typeof(int);\r\n            DataColumn OtomobilModeli = new DataColumn(&quot;Otomobil Modeli&quot;);\r\n            OtomobilModeli.DataType=typeof(string);\r\n            DataColumn OtomobilRengi = new DataColumn(&quot;OtomobilRengi&quot;);\r\n            OtomobilRengi.DataType = typeof(string);\r\n        }\r\n<\/pre>\n<p>Olu\u015fturdu\u011fumuz kolonlar\u0131 tablolara ekleyelim.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n            markalar.Columns.Add(MarkaId);\r\n            markalar.Columns.Add(MarkaAdi);\r\n\r\n            otomobiller.Columns.Add(OtomobilId);\r\n            otomobiller.Columns.Add(OtomobilMarkaId);\r\n            otomobiller.Columns.Add(OtomobilModeli);\r\n            otomobiller.Columns.Add(OtomobilRengi);\r\n<\/pre>\n<p>\u015eimdi ise olu\u015fturdu\u011fumuz tablolarda primary key kolonlar\u0131n\u0131 se\u00e7elim.<br \/>\nOtomobiller tablosunda OtomobilId,Markalar tablosunda ise MarkaId kolonlar\u0131n\u0131 primary key yapal\u0131m.<br \/>\nT-SQL de primary key yapmak asl\u0131nda bir constraint oldu\u011funa g\u00f6re,C# ta da constraint olu\u015fturaca\u011f\u0131z.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nmarkalar.Constraints.Add(&quot;Pr_markaid&quot;, markalar.Columns&#x5B;&quot;MarkaId&quot;], otomobiller.Constraints.Add(&quot;Pr_otomobilid&quot;,otomobiller.Columns&#x5B;&quot;OtomobilId&quot;],true);\r\n<\/pre>\n<p>Yukarda istedi\u011fimiz kolonlar\u0131 primary key yapt\u0131ktan sonra,bu tablolar aras\u0131nda foreign key ili\u015fkilerini kural\u0131m.<br \/>\nDataTable&#8217;ler aras\u0131nda foreign key ili\u015fkisi kurabilmek i\u00e7in bu tablolar\u0131 bir yerde toplamam\u0131z gerekecektir.DataSet nesnesine tablolar\u0131m\u0131z\u0131 ekleyip i\u015fimizi halledebiliriz.Yaz\u0131n\u0131n ba\u015f\u0131nda global olarak olu\u015fturdu\u011fumuz tablolar referans ismiyle DataSet nesnesini zaten olu\u015fturmu\u015ftuk.Bunu kullanal\u0131m;<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\ntablolar.Tables.Add(markalar);\r\ntablolar.Tables.Add(otomobiller);\r\n<\/pre>\n<p>Art\u0131k tablolar DataSet i\u00e7inde oldu\u011funa g\u00f6re ili\u015fki olu\u015fturabiliriz.<br \/>\nMarkalar tablosundaki MarkaId,Otomobiller tablosundaki OtomobilMarkaId tablolar\u0131 aras\u0131nda forign key ili\u015fkisi kurulacakt\u0131r.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\ntablolar.Relations.Add(&quot;for_iliski&quot;,markalar.Columns&#x5B;&quot;MarkaId&quot;],otomobiller.Columns&#x5B;&quot;OtomobilMarkaId&quot;]);\r\n<\/pre>\n<p>DataSet&#8217;in Relations adl\u0131 koleksiyona yukar\u0131daki \u015fekilde ili\u015fkilendirmeyi yap\u0131yoruz.<br \/>\nArt\u0131k DataSet sayesinde ili\u015fkilendirilen tablolar bu DataSetin i\u00e7inde oldu\u011fu i\u00e7in DataGrid nesnesinin DataSource \u00f6zelli\u011fine bu DataSeti ba\u011flayabiliriz.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\ndataGrid1.DataSource=tablolar;\r\n<\/pre>\n<p>Uygulamay\u0131 \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131n\u0131zda ekranda DataGrid nesnesinde olu\u015fturdu\u011fumuz haz\u0131r yap\u0131y\u0131 g\u00f6receksiniz.Kullan\u0131\u015fl\u0131l\u0131\u011f\u0131n\u0131 test edin.\u015eimdilik bu kadar.\u0130yi \u00e7al\u0131\u015fmalar.<\/p>\n<!-- AddThis Advanced Settings generic via filter on the_content --><!-- AddThis Share Buttons generic via filter on the_content -->","protected":false},"excerpt":{"rendered":"<p>Bu yaz\u0131mda DataGrid,DataColumn ve DataRow nesnelerinden bahsedece\u011fim.Manuel bir \u015fekilde DataTable olu\u015fturmay\u0131,DataTableler aras\u0131nda DataSet \u00fczerinden ili\u015fki kurmay\u0131 ve ili\u015fkili kay\u0131tlar \u00fczerinden Disconnected \u00e7al\u0131\u015fmay\u0131 g\u00f6rece\u011fiz.<!-- AddThis Advanced Settings generic via filter on get_the_excerpt --><!-- AddThis Share Buttons generic via filter on get_the_excerpt --><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12,22],"tags":[129,142,144,143],"class_list":["post-211","post","type-post","status-publish","format-standard","hentry","category-c-sharp-c","category-veritabani","tag-ado-net","tag-datacolumn","tag-datagrid","tag-datarow"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/211","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/comments?post=211"}],"version-history":[{"count":0,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/211\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media?parent=211"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/categories?post=211"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/tags?post=211"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}