Yazılımcının Günlüğü | YazilimGunlugu.Com
Arama
Makale Kategorileri
Üye Girişi
Şuanki online üyeler()
Aktif üye bulunmamaktadır.


Programcılık Dersleri(C#) : 7

Yazar: Memik YANIK

Kategori: C#.NET & VB.NET

Eklenme Tarihi: 22.07.2009 19:18:11

Bu makalede C# uygulamaları dahilinde veritabanları üzerinde işlem yapılırken ilk öğrenilmesi gerektiğine inandığım konulara giriş yapılmaktadır.

Her ne kadar C# uygulamaları dahilinde veritabanı işlemleri hakkında yazılması gerekenler yüzlerce sayfa tutacak kadar geniş bir konu olsa bile bu derste henüz yolun başında olanların veritabanı işlemleriyle ilgili olarak ilk bilmeleri gerektiğine inandığım konulardan söz edeceğim. En başta belirtmek gerekirse .NET Framework ile gelen ve veritabanları üzerinde işlem yapılırken kullanılan sınıfların hepsine birden ADO.NET adı verilmektedir. 


Visual Studio yani .NET uyumlu programlama dilleri için SQL Server varsayılan veritabanıdır. Kullandığınız bilgisayara ve bağlı olduğunuz ağdaki bilgisayarlardan birisinde SQL Server kurulu değilse Visual Studio ile birlikte verilen SQL Server’ın Express sürümü kullanabilirsiniz. Visual Studio kurulurken ekrana gelen Options Page penceresinde Express sürüm listelenmektedir. Bu derste anlatılanları izlemek için SQL Server veritabanı kullanmak zorunda değilsiniz. SQL Server yerine Access veritabanını kullanabilirsiniz. 

Veritabanı işlemleri yapılırken Visual Studio’nun Server Explorer penceresinden yararlanmak mümkündür. Visual Studio’nun Server Explorer penceresi veritabanı işlemleri için kullanılan bir programın penceresi gibidir. Server Explorer penceresinde veritabanı işlemlerini yaparken herhangi bir projenin açık olması şart değildir. Aşağıda verilen ekran görüntüsünü Server Explorer penceresini açtıktan sonra aldım. Bu penceredeki SERVER, SQL Server’i yüklediğim bilgisayarın adıdır.



C# uygulaması dahilinde yararlanmak istediğiniz veritabanını daha önce hazırlamadıysanız Server Explorer penceresindeki Data Connections seçeneğine ait kısayol menüsünden Create New SQL Server Database komutunu verip veritabanı hazırlayabilirsiniz. Tahmin edeceğiniz gibi kullandığınız bilgisayarda SQL Server'ın herhangi bir sürümü kurulu değilse bu komutu kullanmak anlamlı değildir.



Yeni bir veritabanı hazırlamak üzere kısayol menüsünden bu komutu verirseniz ekrana aşağıda verilen Create New SQL Server Database diyalog kutusu gelir. Veritabanını hangi SQL Server’da tutmak istiyorsanız Server Name kutusuna adını yazmalısınız. Server Name liste kutusunu açıp mevcut SQL Server’ların listelenmesini sağlayabilirsiniz.



Veritabanın saklanacağı SQL Server seçildikten sonra hazırlanacak veritabanın korunma tekniği seçilmektedir. Veritabanlarını koruma konusunda Windows’tan yararlanacaksanız Use Windows Authentication radyo düğmesini seçmelisiniz. Veritabanın koruma yani kimlik doğrulama işleminin SQL Server tarafından yapılmasını istiyorsanız Use SQL Server Authentication radyo düğmesini seçmelisiniz. Bu radyo düğmesini seçerseniz sizden kullanıcı adı ve parolası istenir.

Veritabanını koruma işleminin SQL Server tarafından yapılmasını istediğim için “Use SQL Server Authentication” radyo düğmesini seçtim. Veritabanın korunması tekniği seçildikten sonra New database name kutusuna hazırlanacak veritabanın adı yazılır.




Bu ayarlamalardan sonra OK düğmesini tıklayıp veritabanını hazırladım. Hazırlanan veritabanı Server Explorer penceresinde Data Connections kısmında listelenir. Daha doğrusu hazırlanan veritabanı için otomatik olarak bir Connection yani bağlantı hazırlanmaktadır.


 

Visual Studio’nun Server Explorer penceresinde hazırladığınız veritabanını SQL Server’ın Management Studio programı ile açıp inceleyebilir, yapısında değişiklik ve tablolarına kayıt girişi yapabilirsiniz. Aşağıda verdiğim ekran görüntüsünü yukarıda hazırladığım veritabanını Management Studio ile açtıktan sonra aldım. Management Studio SQL Server’ın Express sürümü ile gelmemekle birlikte Microsoft’un sitesinden indirip kurabilirsiniz. Express sürümün 2008'de kullanıma sunulan kopyasıyla birlikte Management Studio programı verilmeye başlandı.



Yukarıda söylendiği gibi Visual Studio’nun Server Explorer penceresinde veritabanı hazırlandığı zaman otomatik olarak bir Connection hazırlanmaktadır. Server Explorer penceresinde nasıl Connection hazırlandığını anlatmak için otomatik olarak hazırlanan mevcut Connection’ı silip Data Connections seçeneğine ait kısayol menüsünü açtım.



Visual Studio'nun Tools menüsünden Connect to Database komutunu verir veya Server Explorer penceresinde Data Connections’a ait kısayol menüsünden Add Connection komutunu verirseniz ekrana aşağıda verilen Add Connection diyalog kutusu gelir.



Bu diyalog kutusunda ilk olarak Server Name liste kutusunda kendisi için Connection hazırlanmak istenen veritabanını kontrol eden SQL Server yani Intance seçilir. Bağlanmak istediğim “video_clup” adlı veritabanı SERVER adlı bilgisayardaki SQL Server tarafından kontrol edildiği için bunu seçtim. 

Server veya Intance seçiminden sonra kendisi için bağlantı tanımlanmak istenen veritabanın nasıl korunduğu konusunda seçim yapılır. Veritabanını hazırlarken kimlik doğrulama işleminin SQL Server tarafından yapılmasını tercih ettiğim için Use SQL Server Authentication radyo düğmesini seçtim. Ardından kullanıcının adını ve parolasını girdim.

Kendisi için bağlantı hazırlanmak istenen dosyanın nasıl korunduğunu belirttikten sonra Select or enter a database name liste kutusunu açıp bağlantı ile erişim sağlamak istediğim veritabanını seçtim. Dosya seçiminden sonra Text Connection düğmesini tıklayıp bağlantıda herhangi bir sorunun olup olmadığını öğrenebilirsiniz.

Kimlik doğrulama işlemi Windows tarafından yapılıyor olsaydı Add Connection diyalog kutusunda yapılan işlemlerin üzerinde fazla durmaya gerek olmazdı. Kimlik doğrulama tekniği olarak Use Windows Authention’ı seçmiş olsaydım SQL Server tarafından korunan veritabanları Select or enter a database name kutusunda listelenmezdi. Ayrıca yanlış kullanıcı adı veya parola girilirse veritabanları listelenmez.

 

SQL Server Veritabanları Üzerinde İşlem Yapmak

 

C# uygulamaları dahilinde SQL Server veritabanları üzerinde işlem yaparken ilk başvurulması gereken kontrol SqlConnection kontrolüdür. SQL Server veritabanları üzerinde işlem yapılırken yararlanılan SqlConnection, SqlDataAdapter ve SqlCommand gibi kontroller başlangıçta Toolbox’ta listelenmediği için Toolbox’a ait kısayol menüsünden komut verip Choose Toolbox Items diyalog kutusunu ekrana getirmek gerekiyor.




Bu diyalog kutusunda Sql ön adlı bu bileşenler seçilip OK düğmesi tıklanınca SQL Server veritabanları üzerinde işlem yaparken gerek duyulan kontroller Visual Studio’nun Toolbox adlı penceresinde yer almaya başlarlar. Forma SqlConnection nesnesi yerleştirmek istediğim için Toolbox’ta SqlConnection kontrolünü temsil eden düğmeyi seçtim.



Üzerinde işlem yapmak istediğim veritabanı Access veritabanı olsaydı veritabanına bağlanırken OleDbConnection kontrolünden yararlanırdım. SqlConnection kontrolünü temsil eden düğmeyi seçip formu tıklayınca aşağıdaki gibi bir sonuç elde ettim. SqlConnection kontrolü çalışma anında formun üzerinde görüntülenmediği için formun alt kısmına konulmaktadır.



SqlConnectionnesnesinin özelliklerini Properties penceresinde görebilirsiniz. Ancak bu özelliklerden veritabanına bağlanmayla ilgili olanlardan bir tek ConnectionString özelliği değiştirilmeye uygundur. Bu özelliğe ait liste kutusunda, Server Explorer penceresinde daha önce SQL Server veritabanları için tanımlanan bağlantılar ve New Connection adında bir seçenek bulunmaktadır. Bu özelliğe Server Explorer penceresinde tanımlanan mevcut bağlantılardan birisinin adını aktarmak demek, o bağlantının metnini ConnectionString özelliğine aktarmak demektir.



SqlConnection nesnesi için yeni bir bağlantı tanımlamak veya Server Explorer penceresinde listelenecek Connection hazırlamak istiyorsanız New Connection seçeneğini tıklayarak Add Connection diyalog kutusunu ekrana getirebilirsiniz. Bu SqlConnection nesnesinin yukarıdaki sayfalarda hazırladığım bağlantıyı kullanmasını istediğim için ConnectionString özelliğine bu bağlantıya ait metni aktardım.

 

SqlDataAdapter Kontrolü

 

Server Explorer penceresinden yararlanarak hazırladığım bağlantının adını Properties penceresinde SqlConnection nesnesinin ConnectionString özelliğine aktardıktan sonra forma SqlDataAdapter yerleştirdim. Çünkü SqlConnection nesnesi ile erişim sağlanan veritabanındaki bilgileri kullanabilmek için SqlDataAdapter nesnesine gerek vardır. Bu nedenle Toolbox’ta SqlDataAdapter kontrolünü temsil eden düğmeyi seçtim.




Toolbox’tan yararlanıp forma SqlDataAdapter nesnesi yerleştirseniz SqlDataAdapter’in özelliklerini ayarlarken size yardımcı olacak Data Adapter Configuration Wizard kendiliğinden çalışmaya başlar ve ilk olarak bağlantı seçimi yapılan Choose Your Data Connection diyalog kutusu ekrana gelir. Bu arada 2004 yılında yayınlanan ilk C# kitabımda Data Adapter Configuration Wizard’ın sırayla ekrana getirdiği diyalog kutularına yer verdim diye yargılandığımı taktirlerinize sunmak istiyorum. Yani Wizard'a uyarak kabahat(!) işlemiş oldum.



Bu diyalog kutusunda SQL Server veritabanları için Server Explorer penceresinde tanımlanmış mevcut Connection nesneleri listelenmektedir. Bu ekran görüntüsünü aldığım sırada SQL Server veritabanları için hazırlanmış yalnızca bir Connection mevcuttu. Ekranda bu diyalog kutusu varken New Connection düğmesini tıklayıp Server Explorer penceresi ile ilgili Add Connection diyalog kutusunu ekrana getirip yeni bir bağlantı tanımlayabilirsiniz.

Bu SqlDataAdapter nesnesi ile ilgili veritabanı üzerinde işlem yaparken Server Explorer penceresinde tanımlamış olduğum mevcut bağlantıyı kullanmak istediğim için bu bağlantıyı seçip Next düğmesini tıklayıp aşağıda verilen Choose a Command Type diyalog kutusunun ekrana gelmesini sağladım.




Bu SqlDataAdapter nesnesi ile SQL Server veritabanı üzerinde işlem yaparken SQL dilinin SELECT, UPDATE, INSERT ve DELETE deyimlerini kullanarak işlem yapmak istediğim için Use SQL statements radyo düğmesini seçip Next düğmesini tekrar tıklayıp SQL kodu yazılan Generate the SQL statements diyalog kutusunu ekrana getirdim.



Bu diyalog kutusunda söz konusu SqlConnection nesnesiyle erişim sağlanan SQL Server veritabanındaki tablo ve tablonun alanlarını seçmek üzere SQL kodu yazılır. SQL kodunu kendiniz yazmak istemiyorsanız Query Builder düğmesini tıklayıp Query Builder’ı çalıştırabilirsiniz. 

SQL kodu hazırlamak üzere Query Builder penceresi ekrana getirildiğinde söz konusu bağlantı ile erişim sağlanan veritabanındaki tablo, View ve fonksiyonların listelendiği Add Table diyalog kutusu ekrana gelmektedir.


 


Bu ekran görüntüsünü aldığım sırada söz konusu SqlConnection nesnesi ile erişim sağladığım SQL Server veritabanında “filmler” adında bir tek tablo vardı. Hangi tablo ile ilgileniyorsanız veya hangi tablo için SQL kodu yazmak istiyorsanız Add Table diyalog kutusunda o tabloyu seçip Add düğmesini tıklayıp tabloyu sorguya dahil etmelisiniz. 

Sorguya dahil edilen tablonun alanları Query Builder penceresinin üst kısmında listelenir. Aşağıda verilen ekran görüntüsünü “filmler” tablosunu sorguya dahil edip Add Table diyalog kutusunu kapattıktan sonra aldım.




Bu diyalog kutusunda SqlDataAdapter nesnesi ile SQL Server veritabanı üzerinde işlem yaparken kullanılacak SQL kodu hazırlanmaktadır. Söz konusu tablonun hangi alanları ile ilgileniyorsanız o alanları seçmeli veya alanların adlarını SQL koduna kendiniz yazmalısınız.

Bu SQL kodu ile “filmler” tablosundaki bütün kayıtlar bütün alanları ile SqlDataAdapter nesnesinin istifadesine sunulur. Tablodaki bütün kayıtlar ile ilgilenmiyor veya bazı kayıtları filtre etmek istiyorsanız SQL koduna WHERE deyimini ekleyebilirsiniz. Bu sırada OK düğmesini tıklayıp Query Builder’ın çalışmasını sona erdirip Generate the SQL statements diyalog kutusuna döndüm.



Bu sırada Query Builder tarafından hazırlanan SQL kodunda değişiklik yapabilirsiniz. SqlDataAdapter nesnesinin özelliklerini Wizard ile belirleme işlemine devam etmek üzere Next düğmesini tekrar tıklayınca Wizard Results diyalog kutusu ekrana geldi.
Wizard bu diyalog kutusunda kayıt değiştirmek ve silmek için gerekli SQL kodlarını hazırlayamadığını rapor ederse söz konusu tablo için birincil indeks hazırlamamış olabilirsiniz.



Data Adapter Wizard ilgili tablodaki mevcut kayıtları görüntülemek, yeni kayıt girmek, kayıt silmek ve yapılan değişiklikleri veritabanına yansıtmak için gereken kodları otomatik olarak hazırlamaktadır. Hazırlanan bu SQL kodları SqlDataAdapter nesnesinin SelectCommand, InsertCommand, UpdateCommand ve DeleteCommand özelliklerinde saklanan Command nesnelerine aktarılmaktadır. 

SqlDataAdapter nesnesi çalışma anında görüntülenmediği için formun alt kısmındaki panele yerleştirilir. SqlDataAdapter seçili iken Properties penceresinin alt kısmında Configure Data Adapter, Generate Dataset ve Preview Data linkleri bulunmaktadır.




Data Adapter Configuration Wizard ile hazırlamış olduğunuz ile SqlDataAdapter nesnesinin özelliklerinde değişiklik yapacaksanız Configure Data Adapter linkini tıklayarak Data Adapter Configuration Wizard’ı tekrar çalıştırabilirsiniz.

SqlDataAdapter nesnesi ile erişim sağladığınız tablodaki bilgileri görmek veya tablonun içeriği hakkında bilgi edinmek istiyorsanız Preview Data linkini tıklamalısınız. Bu linki tıkladığınızda aşağıda verilen Data Adapter Preview diyalog kutusu ekrana gelir.

 


Bu diyalog kutusunda Data Adapter ile erişim sağlanan tablonun içeriğini listeleyebilmek için ilk olarak Select an object to preview başlıklı kutuda SqlDataAdapter seçimi yapılmalıdır. DataAdapter seçiminden sonra Preview düğmesi tıklanırsa tablonun içeriği Results başlıklı kutuda listelenir.



Query Builder
penceresinde SqlDataAdapter için SQL kodunu yazarken WHERE deyimi ile kayıtların bazılarını filtre etmişseniz Result kutusunda tablodaki bütün kayıtların yerine SELECT deyimi ile çekilen kayıtlar listelenir.

 

DataSet Hazırlamak

 

Formların üzerinde tabloların içeriğini görüntülemek için SqlConnection ve SqlDataAdapter’den başka Dataset nesnesine gerek vardır. SQL kodu yazmayı seviyorsanız DataSet kullanmadan profesyonel programlar geliştirebilirsiniz. Dataset kullanıldığı zaman bazı işlemler pratik olmaktadır. 

Dataset nesnesini Toolbox’tan yararlanarak forma yerleştirmek yerine SqlDataAdapter nesnesi seçili iken Properties penceresinin alt kısmına yerleştirilen Generate Dataset linkini tıklayıp hazırlayabilirsiniz. Forma yerleştirilmiş SqlDataAdapter nesnesine bağımlı olarak hazırlanan Dataset’in özellikleri ister istemez DataAdapter ile veritabanından çekilen verilerin yapısına göre ayarlanır. Properties penceresinde Generate Dataset linkini tıklarsanız ekrana aşağıda verilen Generate Dataset diyalog kutusu gelir.




Projedeki mevcut Dataset’lerden birisini kullanmak istiyorsanız Existing radyo düğmesini seçtikten sonra Dataset seçimini yapmalısınız. Bu ekran görüntüsünü aldığım sırada üzerinde çalıştığım projede herhangi bir Dataset olmadığı için New radyo düğmesini seçtim. Yeni bir Dataset hazırlamak üzere New düğmesi seçildikten sonra Dataset’e verilmek istenen ad yazılır.

Bu diyalog kutusuna yazılan ad DataSet’in DataSetName özelliğine aktarılmaktadır. Dataset üzerinde işlem yapılırken bu özelliğin içeriği kullanıldığı için Dataset’e New başlıklı kutuya yazılan addan farklı bir ad verilmektedir. New başlıklı kutuya “DataSet1” yazılması halinde Visual Studio bu dataset’e “dataSet11” adını vermektedir. Başka bir deyişle yazılan adın sonuna “1” eklenmekte ve adının ilk harfi küçük olarak seçilmektedir.

Generate Dataset
diyalog kutusunun orta kısmında ise projedeki mevcut SqlDataAdapter nesneleri listelenmektedir. Bu ekran görüntüsünü aldığım sırada üzerinde çalıştığım projede bir SqlDataAdapter vardı. Hangi DataAdapter için Dataset hazırlamak istiyorsanız o SqlDataAdapter nesnesini seçmelisiniz. Bu ayarlamalardan sonra OK düğmesini tıklarsanız Dataset hazırlanır ve formun alt kısmındaki panele yerleştirilir.




Generated Dataset
diyalog kutusundan yararlanarak hazırlanan her Dataset için birisi XSD uzantılı olmak üzere 4 dosya hazırlandığı için projedeki Dataset nesnelerini görmek için Solution Explorer penceresine bakabilirsiniz. Forma yerleştirdiğiniz Dataset’i silme gereğini duyduğunuzda bu 4 dosyayı da silmeniz gerekir.


 

Connection nesnesi ile bağlanılan veritabanındaki bilgileri SqlDataAdapter’den yararlanarak Dataset’e aktarabilmek için kod yazmak gerekmektedir. Bu amaçla forma bir düğme yerleştirdim ve düğmenin Click olayını temsil eden metoda aşağıda verdiğim satırı yazdım. 

Burada kullanılan Fill() metodunun aşırı yüklenmiş çok sayıda sürümü olmakla birlikte burada kullanılan şekli 2 parametreye sahiptir. İlk parametrede bilgilerin aktarılacağı Dataset, 2. parametrede ise bilgilerin aktarılacağı DataTable işaret edilmektedir. Burada 2. parametre olarak string bilgi DataTable nesnesinin TableName özelliğine aktarılır. 

Bu arada 2004 yılında yayınlanan C# kitabımda Fill() metodunu bu şekilde kullandığım için okurlarını zirveye çıkarmakla ünlü yerli bir yazar tarafından çalıntı yapmakla suçlanıp dava edildiğimi bilgilerinize sunmak isterim. Microsoft firmasının geliştirdiği SqlDataAdapter'ı beğenmeyenler kendi DataAdapter sınıflarını yazabilirler. Merak edenler Levent Yıldız'ın bu konuyla ilgili makalelerine bakabilirler. 

private void Aktar_Click(object sender, EventArgs e)
 {
    sqlDataAdapter1.Fill(dataSet11, "filmler");    
 }

Bu kodu yorumlamak gerekirse şunlar söylenebilir. Wizard tarafından yapılan seçimlere bağlı olarak SqlDataAdapter nesnesinin SelectCommand özelliğine aktarılan ve SELECT deyimini içeren SQL kodu işletilerek veriler veritabanından çekilmektedir. Çekilen verileri aktarmak üzere Dataset’te TableName özelliği “filmler” olan bir DataTable nesnesi hazırlanmaktadır.

Tekrarlamak gerekirse bu şekilde kullanılan Fill() metodu sayesinde veritabanından çekilecek veriler Dataset’te “filmler” adında bir DataTable’a aktarılır. DataTable’a verilerini çektiğiniz tablonun adından farklı bir ad verebilirsiniz. Bu nedenle fill() metodu aşağıdaki gibi kullanıldığında DataTable nesnesinin TableName özelliğine “sinema” bilgisi aktarılır. 

private void Aktar_Click(object sender, EventArgs e)
 {
    sqlDataAdapter1.Fill(dataSet11, "sinema");    
 }

DataAdapter nesnesinin Fill() metodu ile veritabanından Dataset’e bilgi çekilirken herhangi bir hata ile karşılaşıldığında FillError olayı meydana gelir. SqlDataAdapter nesnesinin bu olayını temsil eden metoda kod yazıp meydana gelecek hataları kontrol altında tutabilirsiniz. 

Yukarıda belirtildiği gibi
Data Adapter Configuration Wizard ilgili tablo üzerinde işlem yapmak için gereken SQL kodlarını hazırlayıp DataAdapter’ın SelectCommand, InsertCommand, UpdateCommand ve DeleteCommand özelliklerinde saklanan Command nesnelerinin CommandText özelliklerine aktarmaktadır. Başka bir deyişle SqlDataAdapter nesnesinin içine 4 SqlCommand nesnesi gömülmektedir. 

Örneğin SqlDataAdapter’in SelectCommand özelliğinde saklanan SqlCommand nesnesinin özelliklerini görmek istiyorsanız Properties penceresinde SqlDataAdapter’in özellikleri listelenirken SelectCommand özelliğin adının önündeki artı(+) işaretini tıklamanız yeterlidir. Aşağıda verilen ekran görüntüsünü veritabanından bilgi çekilirken kullanılan ve adı DataAdapter’in SelectCommand özelliğine aktarılan Command nesnesinin özelliklerini listeledikten sonra aldım.

 



 

DataGridView Kontrolü

 

Yukarıda anlatılan şekilde Dataset nesnesi hazırlandıktan sonra SqlDataAdapter ile erişim sağlanıp içeriği Dataset’e aktarılan tablonun içeriği formun üzerinde görüntülenebilir. Dataset’e aktarılan bilgiler formun üzerinde görüntülenirken DataGridView, TextBox’lar, ListBox’lar veya ComboBox’lar kullanılabilinir.

 

Toolbox’ta DataGridView kontrolünü temsil eden düğmeyi seçip formu tıklarsanız forma DataGridView yerleştirmiş olursunuz. DataGridView’in boyutlarını içeriği görüntülenecek tablonun yapısına veya Query Builder penceresinde seçilen alanlara göre ayarlamak gerekir.

 




DataGridView forma yerleştirildikten sonra bilgilerin hangi Dataset’ten alınacağı belirtilmelidir. Bu amaçla Properties penceresinde DataGridView’in özellikleri listelenirken DataSource özelliğine istenen Dataset’in adı aktarılır.


 


Dataset seçiminden sonra ayrıca DataMember özelliği ile DataTable seçmelisiniz. DataMember özelliği ile DataTable seçimini yapmazsanız içeriği görüntülenecek tabloyu çalışma anında seçebilirsiniz. DataMember özelliği ile DataTable seçerseniz DataGridView’in üzerinde tablonun alanları aşağıdaki gibi listelenir.



Bu hazırlıklardan sonra projeyi çalıştırıp formdaki düğmeyi tıklayıp SqlDataAdapter sayesinde tablonun içeriğini Dataset’e aktarırsanız aşağıdaki gibi bir sonuç elde edersiniz. Bu ekran görüntüsünü aldığım sırada “filmler” adını verdiğim tabloda 2 kayıt vardı.



 

DataGridView nesnesinin DataSource özelliği için DataSet seçme işlemini kod yazarak yapabilirsiniz. Aşağıda verilen satırlar sayesinde DataGridView nesnesinin DataSource ve DataMember özellikleri ayarlanmış olur. Bu arada 2004 yılından yayınlanan C# kitabımda forma yerleştirdiğim Button nesnesine “Aktar” adını verdiğim için yerli bir programcılık kitabı yazarı tarafından suçlanıp yargılandığımı bilgilerinize sunmak isterim. Yani Button nesnelerine Aktar adını vermek tehlike arz ediyor.

 

private void Aktar_Click(object sender, EventArgs e)

 {

     sqlDataAdapter1.Fill(dataSet11, "filmler");

     dataGridView1.DataSource = dataSet11;

     dataGridView1.DataMember = "filmler";

 }

 

Bu ayarlamayı isterseniz aşağıdaki gibi yapabilirsiniz. Çünkü DataSet sınıfı DataTable’leri içeren Tables adında bir koleksiyonu sahiptir. Aşağıda verilen satır ile Tables koleksiyonun ilk elemanın içeriği DataGridView’de görüntülenir.

 

private void Aktar_Click(object sender, EventArgs e)

  {

     sqlDataAdapter1.Fill(dataSet11, "filmler");

     dataGridView1.DataSource = dataSet11.Tables[0];

  }

 

Biraz Reklam

 

C# hakkında ayrıntılı bilgi edinmek istiyorsanız aşağıda resmini verdiğim C# 3.0 kitabıma bakabilirsiniz. En kapsamlı C# kitabı iddiası ile hazırlanan bu kitabı kitapçılardan, Seçkin Yayıncılıktan, HepsiBurada.com'dan veya Kitapyurdu.com'undan temin edebilirsiniz.



 

Yazar Hakkında 1 Yorum Yorum Yaz Yazara ait diğer Makaleler
Tema
Anket
ASP.NET MVC'yi Projeleriniz de kullandınız mı?


En Çok Okunan Makaleler
En Son Eklenen Makaleler
Soru Merkezinde Bekleyenler
Ana Sayfa | Hakkımızda | Editörler | Yazarlar | RSS RSS | İletişim
Yazılım Günlüğü 2007-2013 © Tüm Hakları Saklıdır.