Nesne tabanlı
programcılıkta olmazsa olmazlardan biri nesnelerdir . Günlük yaşantımıza
da baktığımızda aslında her şey bir nesnedir . Programcılığın amaçları
arasında da hayatımızı kolaylaştırmak olduğuna göre ürettiğimiz
çözümlerde nesnelerden yararlanmalıyız . Hayatımızda ki nesneleri
programlarımızda sınıflar olarak nitelendiriyoruz . Örnek vermek
gerekirse çalışanlar , öğrenciler , banka hesabı gibi . Basit bir
uygulama ile sınıfların nasıl tanımlandığına

bir göz atalım .
 
   class
sinifin_adi
   {
      //sınıfın üyeleri
    }
   class
ogrenci
   {
      public int
ogrID;
      …
      …
   }
      Öğrenci
adında basit bir sınıf tanımladık ve bu sınıfımızın ogrID adında
tekbir üyesi oldu . Bu üyemizi tanımlarken public anahtar sözcüğü
kullandık . Bu sözcüğe erişim değiştirici denir . Buna benzer
dört farklı erişim değiştiricisi vardır . Bu konuya yeri gelmişken
deyineyim .

Erişim Değiştiricisi

Özelliği

   private Bu tür üyelere tanımlayıcı
sınıf dışında erişilemez , türetilen sınıflardan bile .
   protected Bu tür üyelere sınıf dışında
görünmezler . Sadece türetilen sınıflardan erişilebilir .
   public Bu tür üyelere her yer den
erişilebilir .
   internal Kodun bulunduğu göre public ve
protected türlerinin bir karışımıdır .
      Bu bilgileri de verdikten sonra şimdide sınıfların üyelerinden bahsedelim .
Aklınızı karıştırmamak için basit tanımlarını verip bu konuyu hemen
geçmek istiyorum . Çünkü verecek olduğum her başlık nesne yönelimli
programlamada birer konu başlığı .
 
   Alanlar :
Sınıf içerisinde tanımlanan değişkenlere
denir .
   Yöntemler : Sınıfın alanları
üzerinde çalışan gerçek koddur . Sınıflara davranış özelliklerini verir
.
   Özellikler : Bunlar
sayesinde bir sınıfın alanlarına bir erişimci yönteminin var olup
olmadığını bilmeden public alanlarmış gibi erişilebilen bir istemci
yazabiliriz .
   Sabitler : Değiştirilmeyen
bir değeri olan bir alandır .
   Dizinleyiciler : Değerleri
almak , ayarlamak için bir nesneyi kolayca dizinlememizi sağlar .
   Olaylar : Bir kod parçasının
çalışmasını sağlayan şeylerdir . Fare hareketi , tıklama işlemi gibi .
   İşleçler : Standart
matematiksel işleçleri bir sınıfa ekleyerek  , bu işleçler
sayesinde daha yetenekli yazabilmemize olanak sağlar .
 
      Sınıflar ve nesne yönelimli
yazılım hakkındaki bu temel bilgileri aldıktan sonra örnek uygulamalar
ile pekiştirelim . İlk örneğimizde basit bir uygulama yapalım .
Sınıfımızın bir fonksiyonu olsun ve ekrana herhangi bir metni yazdıralım
bu fonksiyon sayesinde .
 
static void Main(string[]
args)
{
ilkSinif.ilkFonksiyon();
}
}
class ilkSinif
{
public static void ilkFonksiyon()
{
Console.WriteLine("İlk Sınıf
Uygulaması");
Console.ReadLine();
}

}

 
      Öncelikle gördüğümüz gibi
hazırlamış olduğumuz bir sınıf içerisindeki bir fonksiyona , eğer erişim
değiştiricisinden dolayı bir engel verilmemiş ise
sinif_adi.fonksiyon_adi
şeklinde ulaşabiliriz . Bu örneğimizde birde önemli bir nokta var oda

static kelimesi . Eğer örneğimizde
fonksiyonumuzu static olarak tanımlamamış olsa idik uygulamamızı
derlerken şu hata ile karşılaşırdık : "Error 1 An object reference is
required for the nonstatic field, method, or property ‘classmakale_1.ilkSinif.ilkFonksiyon()’
"
Bu hatayı Main() fonksiyonumuz static bir fonksiyon olduğu için
static bir fonksiyon içinden static olmayan çağıramıyor olmamızdan verir
. Eğer static yapmadan çağırmak istiyorsak o zaman Main() içerisinde
yavru bir üye tanımlamamız gerekir . Oda şu şekilde yapılıyor :
 
static void Main(string[]
args)
{
ilkSinif yavruUye =
new
ilkSinif
();
yavruUye.ilkFonksiyon();
}
}
 
      Yavru üye tanımlamayı da
öğrendikten sonra makalemize daha detaylı bir örnek ile devam edelim .
Bir bisiklet sınıfımız olsun bu sınıfa ait bazı üyeler olsun bu
üyeler sayesinde bisikletin maliyet ve satış fiyatlarını hesaplayalım .
 
static void Main(string[]
args)
{
double tekerlek;
double demiraksam;
double cant;
double pedal;
double satisF;
bisiklet yeniBisiklet =
new
bisiklet
();

Console.WriteLine("\tTekerlek
Birim Fiyatını Giriniz"
);
tekerlek = Double.Parse(Console.ReadLine());
Console.WriteLine("\t\nDemir
Aksam Fiyatını Giriniz"
);
demiraksam = Double.Parse(Console.ReadLine());
Console.WriteLine("\t\nCant
Birim Fiyatını Giriniz"
);
cant = Double.Parse(Console.ReadLine());
Console.WriteLine("\t\nPedal
Fiyatını Giriniz"
);
pedal = Double.Parse(Console.ReadLine());
satisF=yeniBisiklet.satisFiyatiHesapla(tekerlek,demiraksam,cant,pedal);
Console.WriteLine("\t\nBisikletin
satış fiyatı = {0} YTL"
,satisF);
Console.ReadLine();

}
}
class
bisiklet

{
private double tekerlekbFiyati;
private double demiraksamFiyati;
private double cantbFiyati;
private double pedalFiyati;
private const double iscilik=52.5;
public double mFiyati;
public double sFiyati;

private double
maaliyetFiyatiHesapla()
{
mFiyati = (tekerlekbFiyati * 2) + demiraksamFiyati +
pedalFiyati;
mFiyati += (cantbFiyati * 2) + iscilik;
return mFiyati;
}
public double
satisFiyatiHesapla(double
tekerlek, double demiraksam,
double cant,
double pedal)
{
tekerlekbFiyati = tekerlek;
demiraksamFiyati = demiraksam;
cantbFiyati = cant;
pedalFiyati = pedal;
return (maaliyetFiyatiHesapla()
* 120)/100;
}

}

 
      Bu uygulamamızda kullanıcıdan
alığımız birim fiyatlara göre belirli bir işçilik ekleyerek bir maliyet
fiyatı ve bu maliyete de belirli bir kar oranı ekleyerek satış fiyatını
bulmaya çalıştık . Burada
maaliyetFiyatiHesapla()
fonksiyonunu private yapma sebebimiz ise bu fonksiyona dışardan
erişilmesini istememizdir . Yazımızı burada tamamlıyoruz . Umarım
faydalı olur .
 



ACCESS’DE Kİ KAYITLARI LİSTELEME VE KAYIT EKLEME(WINDOWS APP.)


 


            Bu
makalemizde C#’ta ADO.NET ile access veri tabanına bağlanıp veri
tabanındaki kayıtları nasıl okuyacağımızı ve veri tabanına nasıl veri
ekleyebileceğimizi anlatmaya çalışacağım.


 


           
Uygulamamıza geçmeden önce ADO.NET hakkında kısaca bilgi vermek
istiyorum.


.Net teknolojisinde
veri tabanı erişim sınıflarının genel adına ADO.NET diyoruz. ADO.NET,
.Net teknolojisi için geliştirilmiş yeni bir veri erişim teknolojisidir.
ADO.Net’in amaçları arasında;


 


           
*İlişkisel veya ilişkisel olmayan verilere kolay erişim.


           
*Kendinden önceki uygulamalardan daha fazla veri kaynağını
destekleyebilecek             


            
kapasite artışı.          


           
*Internet üzerinden çok katmanlı uygulamalara destek


            *XML ile
ilişkisel veri erişimini birleştirmek.


 


            ADO.NET’in
temel isim alanı (namespace) “System.Data” dır. Örneğin SQL ile
çalışırken ayrı ayrı hem “System.Data.SqlClient” hem de
“System.Data.OleDb” isim alanlarını kullanabiliriz.
“System.Data.SqlClient” isim alanı yanlızca SQL sunucu için optimize
edilmiştir. Access veri tabanı ile çalışacaksak “System.Data.OleDb” isim
alanını kullanmamız gerekir.


 


            ADO.NET
hakkında bu kısa bilgiden sonra uygulamamıza geçelim. Öncelikle erişim
sağlayıp üzerinde işlem yapacağımız access veri tabanımızı oluşturalım.
Ben aşağıdaki gibi bir veri tabanı hazırladım.


 


ACCESS
VERİ TABANI


 



 
  
 


 


 



Hazırladığımız veri tabanını hard diskimizde herhangi bir yere kayıt
edelim. Ben bu uygulamada veri tabanını d sürücüsüne kaydediyorum.


 


Veri
tabanını hazırladıktan sonra uygulamamızı nasıl geliştireceğimize karar
vermeliyiz.


 


HAZIRLIK


 



1-)Veri tabanına bağlantı için kullanılacak provider ve data source
nedir?



            Provider=Microsoft.Jet.OleDb.4.0  (Access’e bağlantı için
gerekli provider)



            Data Source=D:/sirket.mdb


 



2-)Veri Tabanı ile işlemler için kullanılacak nesnelerimiz nelerdir?



            Aşağıdaki gibi 4 adet nesne oluşturmamız gerekiyor.



            Connection 

 baglan
(Veri tabanına bağlantı için)



            Command    
→ 
sec ve ekle (Seçme ve ekleme işlemleri için)



            DataReader


oku (Okuma yapmak için)


 



3-)Form Tasarımını ve programın nasıl çalışacağını belirleyelim.



Formumuzun üzerine şekildeki gibi 2 buton, 4 label ve 4 textbox
ekliyoruz. Oku butonuna her bastığımızda veri tabanındaki kayıtları
textbox1 ve textbox2 de listeleyelim. Ekle butonuna bastığımızda ise
textbox3 ve textbox4’e yazdığımız veriler Access veri tabanına eklensin.


Ön
hazırlığımızı yaptıktan sonra artık kodlarımızı yazmaya başlayabiliriz.
İşin en güzel kısmı da burası:)


 


WINDOWS
APPLICATION


 



           

Visual
studio 2005 C#’da Windows application açıyoruz. Formumuzu yukarıdaki
gibi tasarladıktan sonra kodları yazmaya başlıyoruz.


 


using

System.Data.OleDb;


//Access ile işlemler için gerekli isim alanını tanımladım.

 


namespace

ADO.NET_AccessInsertveSelect_

{

   
public
partial
class
Form1 : Form

    {

       
public Form1()

        {

           
InitializeComponent();

        }

 

       
// Bağlantıda ve diğer işemlerde kullanacağım
nesneleri global           


        //olarak tanımladım.


OleDbConnection

baglan = new
OleDbConnection
(); //bağlantı için


OleDbCommand

sec = new
OleDbCommand
();    //Tablodaki
kayıtları seçmek için 


OleDbCommand

ekle = new
OleDbCommand
();   //Tabloya kayıt
eklemek için 


OleDbDataReader

oku;                     //okuma işlemini
yapmak için


 


//Formumuza çift tıklayarak kod satırına geliyoruz.

       

private

void Form1_Load(object
sender, EventArgs e)

        {

           
//Form açılır açılmaz veri tabanına
bağlantının

           
//kurulması için form1_load içinde access e
bağlanıyorum.

baglan.ConnectionString="Provider=Microsoft.Jet.OleDb.4.0;Data
Source=d:/sirket.mdb;"
;

           
//baglantıyı açıyorum.

           
baglan.Open();

           
//aşagıdaki komutu şu şekilde de
kullanabiliriz.

           
//sec.Connection=baglan;

           
//ikiside aynı işi yapar yani sec komutunun


            //baglan ile çalışacağını…

            sec
= baglan.CreateCommand();

           
//firmalar tablosundaki tüm kayıtlar
seçiliyor.

            sec.CommandText
= "SELECT * FROM firma";

           
//seçilen bu kayıtlar ExecuteReader()
fonksiyonu

           
//DataReader nesnesi sayesinde okunuyor

            oku
= sec.ExecuteReader();

           
//Okuma işlemi oku butonuna tıkandığında
olacağı için

           
//read() fonksiyonunu altta button1_Click
içinde kullanacağız.


 

        }


//Formumuzun üzerindeki Button1’e çift tıklayarak kod satırına geliyoruz

 

       
private void
button1_Click(object sender,
EventArgs e)

        {

           
try

            {

             
//Burada try ve catch kullanıyoruz

              //çünkü
veri tabanındaki kayıtların hepsi

             
//okunup okunacak veri kalmadığı zaman
catch’in içindeki hata


              //oluşuyor.

               
oku.Read();

               
//Acsess’ki no sütununu textbox1′de göster

              
 textBox1.Text = "" + oku["firma
no"
];

               
//Acsess’ki firma sütununu textbox2′de göster

               
textBox2.Text = "" + oku["firma
adı"
];

            }

           
catch (InvalidOperationException)

            {

               
//veri tabanındaki tüm kayıtlar okunup

               
//okunacak veri kalmadığı zaman aşağıdaki
mesaj veriliyor.

               
MessageBox.Show("Okunacak
veri kalmadı."
);

            }

 

        }


//Formumuzun üzerindeki Button2’e çift tıklayarak kod satırına geliyoruz

       

private

void button2_Click(object
sender, EventArgs e)

        {

           
try

            {

               
//Buradaki try catch’i ise hatalı veri
girişini önlemek


                //için kullandık

               
//Örneğin Textbox’lara veri girmeden ekle
butonuna basarsak

               
//catch’in içindeki mesaj verilir.

 

               
ekle = baglan.CreateCommand();

     
          //textbox3′e girilen değeri firma
no sütününa


                //textbox4′e girilen  değeri firma adı sütununa ekle

ekle.CommandText
= "INSERT INTO firma([firma no],[firma adı])
VALUES(‘"
+ textBox3.Text+"’,'"
+ textBox4.Text + "’)";           

           
if (ekle.ExecuteNonQuery() == 1)

            {

  
//Buradaki if i ise şunun için kullandık;

  
//eğer ExecuteNonQuery fonksiyonu doğru bir
şekilde çalışmışsa yani 1 se

  
//yani veri doğru bir şekilde eklenmişse
aşağıdaki mesajı ver.

               
MessageBox.Show("Veri
Eklendi."
);

            }

            }

           
catch(OleDbException)

            {

               
//hatalı veri girişinde verilecek mesaj.

               
MessageBox.Show("Hatalı
veri girişi yaptınız."
);

            }

        }}}

Artık
programımızı çalıştırarak veri tabanındaki kayıtları okuyabilir ve kayıt
ekleyebiliriz.

Bir sonraki
makalede görüşmek üzere…

İyi çalışmalar…

 

            Programcılıkta bilindiği üzere tüm
diller de hata oluşma olasılığı çok yüksektir . Bu hatalar gerek
kullanıcılar tarafından gerekse programın çalıştırılması için gerekli
olana diğer yardımcı unsurların düzgün olarak çalışmamasından dolayı
ortaya çıkabilir . Bu hataları yakalamak , yok etmek gerçekten de güçtür
. Oluşabilecek hataları teker teker göz önüne alarak kontrollere
bağlanır . Ancak bu işi tek tek yapmak zor olur hatta gözden kaçanlar
olursa işimiz daha da zorlaşacaktır . C# `ta bu hataları yakalamak ,
önlemek için bazı yöntemler bulunmaktadır . Bu yazımda bunlar dan try-catch
ve try-catch-finally bloklarından bahsedeceğim .

 

Try-Catch
Blokları

 

            Try – Catch bloklarında ;  try
içerisine hataya sebep olabilecek kodların , catch içerisine ise eğer
bir hata oluşur ise programın ne yapacağını , ne şekilde devam edeceğini
belirttiğimiz kodları yazarız . Kullanımını şu şekildedir :

 


            try


            {


                //Hataya sebep
olabilecek kodların yazıldığı bölüm

    
       }


            catch


            {


                //Programın hata
sonrası nasıl devam edeceğinin belirtildiği bölüm


            }

 

            Şimdi bir örnek yardımı ile konuyu
pekiştirelim . Diyelim ki programımızda bir kişinin maaşını hesaplıyoruz
. Bunun için kullanıcıdan çalışanın birim saat ücretini ve kaç saat
çalıştığını alıyoruz . Eğer kullanıcı bu bölümlere sayısal değer dışında
bir giriş yapar ise , almış olduğumuz değeri sayısal bir değere
dönüştüremeyeceğimiz için ve bu değerler ile matematiksel işlem
yapamayacağımız için programımızda hata oluşacaktır .

 


private

void btnHesapla_Click(object
sender,System.EventArgs e)


            {


                int bsUcreti,
acSaati;


                try


                {


                    bsUcreti = int.Parse(textBox1.Text);


                    acSaati = int.Parse(textBox2.Text);


                }


                catch


                {


                    MessageBox.Show("Lütfen
Sayısal Değerler Giriniz"
);


                }


            }

 

 

            Eğer direk olarak hatanın ne olduğunu
kullanıcıya aktarmak istiyor iseniz catch bloğunu şu şekilde
değiştirmelisiniz

 


catch
(Exception
hataID)

{

     
MessageBox.Show(tihs,"Hata
Oluştu"+
hataID);

}

 

 

Try –
Catch – Finally

 

Try – Catch bloklarına
ek olarak birde Try – Catch – Finally bloklaı vardır . Buradaki fark ise
eğer herhangi bir hata oluşsun yada oluşmasın her durumda yapılması
gereken bir iş var ise finally bloğu içerisinde yazılabilir .  Örneğin
bir veritabanı uygulaması geliştiriyorsunuz . Bu tarz işlemlerde
veritabanına bağlanıp yapmak istediğiniz işlemi tamamladıktan sonra
mutlaka veritabanını kapatmak istersiniz . Buda ne demektir yapacağınız
iş başarılı olsun yada olmasın her durumda veritabanına olan
bağlantınızı sonlandıracaksınız . İşte bu gibi durumları finally bloğu
içerisinde belirtilir . Kullanımı da şu şekildedir .

 

 


private

void btnBilgiGuncelle_Click(object
sender,System.EventArgs e)


            {


               


                try


                {


                    bsUcreti = int.Parse(textBox1.Text);


                    acSaati = int.Parse(textBox2.Text);


                }


                catch


                {


                    MessageBox.Show("Lütfen
Sayısal Değerler Giriniz"
);


                }


                  finally


                {


                  bglanti.Close();


                }

 


            }

 

Tekrar Merhaba
arkadaşlar . C# Derslerine Console Application bölümü ile bir giriş
yapıp biraz ilerlemiştik . Şimdi kaldığımız yerden birazdan görsel
çalışarak devam edelim.Peki Windows Application ile nasıl çalışacağız
dersek ilk olarak nasıl açacağız bu pencereyi ? Bu pencereyi Console
Application bölümünü açtığımız gibi New Project penceresini açarak
ulaşabiliriz . Açılan pencereden bu sefer Windows Application `ı
seçeceğiz. Daha sonra karşımıza aşağıdaki gibi bir pencere açılacak .

Artık bu pencere bizim çalışma alanımız olacak .
Kısaca bu pencereyi bir tanıyalım derslerde ilerledikçe daha iyi
tanıyacağınızdan eminim. Form1 olarak nitelendirilen  bölüm programımızı
derlediğimizde karşımıza çıkacak olan penceredir . Tüm nesneler (
butonlar , labellar , textboxlar …) bu pencere üzerinde barınacak .
Solda bulunan Pointer , Label , Buton … ları üzerinde barındıran bölüm
Araç Çubuğumuz ( Toolbox) . Sağdaki bölüm ise Nesnelerimizin
özelliklerini değiştirebileceğimiz bir bölümdür ( Properties ) . Örneğin
Şu anda Form1 aktif olduğu için Form1 in özellikler penceresi açık
durumda . Şimdi isterseniz küçük bir örnekle hem Windows Application `nın 
nasıl çalıştığını hemde nesneleri tanımaya başlayalım .

 

Öncelikle 1 adet textbox , 1 adet botun ve 2
adet label `ı araç çubuğu olarak nitelendirdiğimiz bölümden bildiğimiz
sürükleyip bırakma yöntemi ile Form1 üzerine bırakalım .

Textbox
:
Programı
çalıştırdığımızda içerisine bir şeyler yazabileceğimiz bir nesnemizdir .
Yada otomatik olarak program tarafından da bir şeyler yazdırabiliriz .

Buton :
Tetikleyicidir . Butona tıkladığınızda programı işler yapması için onay
vermiş olursunuz .

Label :
İse üzerine ya program başlamadan önce bilgilendirme amaçlı olarak
yazıların yazıldığı yada programın çalışması esnasında bir şeyler
yazması için kullanabiliriz .

 

Örnek – 1 ) : İsim
Yazdırma

Yukarıda bahsettiğimiz nesneleri Form1 üzerine
ekledikten sonra nesneler üzerinde otomatik olarak gelen yazıları
silmeyle işe başlayalım ( button1 , label1 gibi ) . buton1 üzerine 1
kere tıklayalım daha sonra sağ taraftaki özellikler bölümünden  Text 
bölümünü bulalım yan tarafında button1 yazıyordur o yazıyı silip oraya
İsim Yazdırma  yazalım ve enter tuşuna basarak onaylayalım . Eğer
properties ekranı pencerenizde görünmüyor ise nense üzerinde sağ tuş
tıklayarak açılan pencerenden properties ` i işaretleyerek de
ulaşabilirsiniz .   Bu yöntemi takip ederek  label ve textbox üzerindeki
yazıları da silelim. Ve formumuza şöyle bir görnüm verelim

Bu işlemlerde bittikten sonra buton1 üzerinde çift
tıklayarak aşağıdaki gibi bir pencereyi açalım 

 

src="win1_files/image001.jpg" v:shapes="_x0000_s1025">

 

imlecin yanıp söndüğü bölüme aşağıdaki kod bloğunu
yazalım ve ilk programımız çalıştıralım.

 

 


int

secim=int.Parse(textBox1.Text);


                        switch(secim)


                        {


                             case
1: label1.Text="Tahir";


                                  
break
;


                             case
2: label1.Text="Mehmet Salih";


                                  
break
;


                             default
: label1.Text="1 yada 2 giriniz Demiştim !";


                                  
break
;


                        }

 

 

 

Bu örnekte ne yapmaya çalıştık ? Bu örneğimizde bir
tektbox tan aldığımız bir değeri ince integer olan secim e aktardık .
daha sonra bunu switch ile gelen sayıya göre label da neler yazacağını
belirlemiş olduk . Tüm bu işlemler buton a basıldığı zaman gerçekleşiyor
çünkü tüm kod bloğunu button1_click yani buton a tıklandığı zaman
çalışması için görevlendirildi .

 

Örnek – 2 ) : 1 den 10 a
kadar olan sayıların kareleri

Bu örneğimiz için 1 tane buton 1 tanede label
eklemeniz yeterli olacaktır . Formu aşağıdaki gibi tasarlayalım

daha sonra buton a çift tıklayalım ve şu şekilde
bir kod bloğu yazalım


 


int

karebul(int i)


            {


                  return i*i;


            }


            private
void button1_Click(object
sender, System.EventArgs e)


            {


                  int a;


            for (a=1;a<=10;a++)


            {


                  label1.Text += a+ " sayısının karesi =" +
karebul(a)+ "\n";


                                          }


            }


 

 

gördüğünüz gibi button1_Click üzerine basit bir
fonksiyon yazdık . Ve buton a basıldığında bu fonksiyon çağrılıyor .

 

Örnek – 3 ) : Maximum
Bulma

Bu örneğimizde textboxlar dan alacağımız iki değeri
karşılaştırıp label ve textbox a en büyüğünü yazdıracağız. Bu form
tasarımında 3 adet textbox , 1 adet buton , 1 adet label ekleyerek
aşağıdaki  tasarımı oluşturalım.

daha sonra buton a yükleyeceğimiz kod bloğu şu
şekilde

 


double

maxbul(double sayi1 ,
double sayi2)


      {


            return(Math.Max(sayi1,sayi2));


      }


            private
void button1_Click(object
sender, System.EventArgs e)


            {


             double deger1=double.Parse(textBox1.Text);


      double deger2=double.Parse(textBox2.Text);


      textBox3.Text=maxbul(deger1,deger2).ToString();


label1.Text=maxbul(deger1,deger2).ToString();


            }

 

Bu örnekte yapmış olduğumuz işlemde iki farklı
textbox tan aldığımız değerleri double olan deger1 ve deger2
değişkenlerine aktarıp maxbul fonksiyonuna gönderip sonucu da  textbox3
ve label1 e yazdırmak oldu .

 

 

Örnek – 4 ) : Üye Girişi

Bu örneğimizde bir kullanıcı giriş penceresi örneği
vereceğiz . Önceden bir kullanıcı adı  – şifresi belirleyeceğiz ve
programı derlediğimizde bu değerleri doğru yada yanlış girişimize göre
label a bir şeyler yazdıracağız . Bu tasarım için 3 adet label , 2
textbox , 1 buton eklememiz yeterli olacaktır .

Daha sonra buton a ekleyeceğimiz kod bloğu
aşağıdaki gibi olacaktır .

 


bool

login(string kadi,int
pass)


            {


                  if(kadi=="tahir"
&& pass==1234)


                  {


                        return
true;


                  }


                  else


                  {


                        return
false;


                  }


            }


            private
void button1_Click(object
sender, System.EventArgs e)


            {


            string kadi=textBox1.Text;


            int pass=int.Parse(textBox2.Text);


                  if(login(kadi,pass)==true)


                  {


                        label3.Text="Hoşgeldin Sahip";


                  }


                  else


                  {


                        label3.Text="Sen de Kimsin ?";


                  }


            }

 

Burada bahsetmek istediğim
bool
fonksiyonu . Bu şekilde bir fonksiyon tanımladığımız da bize
doğru yada yanlış şeklinde değer döndürür.  if içerisinde de kem
kullanıcı adı hem de şifreyi kontrol edilmesi var .

 

Örnek – 5 ) : Yıldız
Çizme

Bu örneğimizde bir fonksiyon tanımlayacağız ve
kullanıcıdan alacağımız değere göre örneğin 3 yazarsa kullanıcı 3 e 3
lük bir yıldızlardan oluşan kare çizeceğiz

her zaman ki gibi buton kod bloğumuz aşağıdaki gibi
olacak .

 


void

yildiz(int deger)


            {


                  for(int
i=0;i<deger;i++)


                  {


                        for (int
j=0;j<deger;j++)


                        {


                             label1.Text+=" * ";


                        }


                        label1.Text+="\n";


                  }


            }


            private
void button1_Click(object
sender, System.EventArgs e)


            {


            label1.Text=" ";


                  int a=int.Parse(textBox1.Text);


                  yildiz(a);


            }

 

 


**Araç Çubuğumuzdan ( Toolbox ) birkaç nesne
daha tanıyalım

 

Main Menü :
Açılır menü oluşturmak için kullanılır ( Dosya , Düzen menüleri gibi ) .
Açılır menülere eklediğimiz metinlere görev atamak için üzerinde çift
tıklamamız yeterlidir .

 

Context Menü :
Form üzerinde yada form üzerinde bulunan nesneler üzerinde sağtuş ile
tıkladığımızda açılacak olan menüdür . Context menü oluşturduktan sonra
o nesnenin yada formun özellikler ( properties ) bölümünden Context menü
seçeneğini seçmeinz yeterlidir .

 

Picture Box :
İçerisine resim  ekleyebileceğimiz bir seçenek. Özellikler (properties)
bölümünden  Image sayesinde içerisine resim alabiliriz . Size Mode ile
resmin boyutunu ayarlayabiliriz  .

 

Month Calendar :Formumuza
takvim eklemek için kullanılır . Özelliklerinden MaxSelectionCount `u 1
seçersek takvim üzerinde sadece tekli seçim olanağı sağlar ç Eğer
işaretlenen tarihi ekrana yazdırmak istiyorsanız örneğin label`a

 

label1.Text =
monthCalendar1.SelectionStart.ToShortDateString ( ) ;

 

Eğer ToShortDateString ( )  yerine 
ToLongDateString ( ) yazsaydık 26 Kasım 2005 cumartesi gibi uzun tarih
şeklinde yazardı .

 

Timer :
Formumuzda saat ile ilgili işlemler yapabilmek için kullanırız .

 

label1.Text = DateTime.Now.ToLongTimeString
( ) ;
ile ekranda dijital bir saat oluşturabiliriz.

 

Tool Tip :
Eklemiş olduğumuz butonun üzerine geldiğimizde kullanıcıyı yönlendirmek
için görünecek küçük mesaj kutuları göstermek için kullanılır . Butonun
özellikleri ( properties ) bölümünden Tool Tip bölümüne yazarız .

 

 Tab Control :
Çeşitli pencereler oluşturmak için kullandığımız bir şeçenektir .

 

Tab Pagelerin isimlerini değiştirmek için
Özellikler ( properties ) bölümünden Tab Pages Collection `dan
değiştirebilirsiniz .

 

List Box :
İçerisinde geçici olarak listeler oluşturmak için kullanılır ( Eğer Item
Colection bölümünden kalıcı eklemez isek )

 

Combo Box :
Açlılır liste oluşturmak için kullanılır . Verileri önceden eklemek için
özellikler bölümünden Items Collection yardımı ile ekleyebiliriz .

 

ListView :
Excel çalışma sayfası şeklinde hücrelerden oluşmuş geçici kayıt alanı
oluşturmak için kullanılır . Aynı anda bir nesne için üç özellik
kaydetmek istiyorsanız çok kullanışlıdır . Örneğin bir kişinin adı ,
soyadı ve cep telefonu bilgilerini  kaydetmek için listview`i
kullanabilirsiniz .

 

**Şimdi hep beraber hem listview`e hem de listbox
`a katır yapan bir örnek yapalım .

 

Örnek – 6 ) : Bilgi
Kaydetme

Bu örneğimizde öğrencilerin isimlerini , okul
numaralarını ve sınıflarını alacağız . 3 bilgiyi listview`e sadece okul
numarasını da listbox`a kaydedeceğiz .  3 adet textbox , bir tane
listbox,1 tane listview , 1 tane buton ve 1 tanede combobox ekleyelim
formumuza .

 


ListViewItem deger; // listview nesnesi için bir değişken
tanımlıyoruz


                  string []depo=new
string [4]; //listviewde
saklayacağımız


            // 4 değer için bir dizi tanımlaması yapıyoruz


                  // isim bölü boşmu kontrolü


                        if
(textBox1.Text==null)


                        MessageBox.Show("isminizi giriniz");


                  else


                  {


                        mykayit.gelenAd=textBox1.Text;


                        depo[1]=mykayit.gelenAd;


                  }


                  //okul no boş mu kontrolü


                  if(textBox2.Text==null)


                        MessageBox.Show("lütfen okul numaranızı
giriniz");


                  else


                  {


                        mykayit.gelenNo=textBox2.Text;


                        depo[2]=mykayit.gelenNo;


                  }


                  //sınıf bilgisi boş mu kontolü


                  if(textBox3==null)


                        MessageBox.Show("lütfen sınıfınızı
giriniz");


                  else


                  {


                  mykayit.gelenSinif=int.Parse(textBox3.Text);


                        depo[3]=mykayit.gelenSinif.ToString();


                  }


                  if(textBox1.Text!=null
&& textBox2.Text!=null &&
textBox3.Text!=null)


                  {


                  //eğer okul no daha önceden girilmemiş ise
kayıt işlemi                   //gerçekleşir bunu Contains ile
listboxta varmı kontrolü


                  //sağlıyor


                        if(listBox1.Items.Contains(mykayit.gelenNo)==false)


                        {


                             deger=new
ListViewItem(depo);


                             listView1.Items.Add(deger);


                            
listBox1.Items.Add(mykayit.gelenNo);


                        }


                        else


                             MessageBox.Show("kayıt daha önceden
girilmiş");


                  }


                  else


                        MessageBox.Show("kayıt boş alanladan
dolayı gerçekleşmedi");


            }


 


            private
void checkBox1_CheckedChanged(object
sender, System.EventArgs e)


            {


                  //Combobox `ın işaret durumu değiştiğinde
listbox`görünür


                  //yada görünmez kılmak  için


                  if(checkBox1.Checked==true)


                        listBox1.Visible=true;


                  else


                        listBox1.Visible=false;


            }


 


            private
void Form1_Load(object
sender, System.EventArgs e)


            {


                  //Form başlarken listbox ı gizlemek iin


                        listBox1.Visible=false;


            }

 

While ==> Bu komut sayesinde döngüler elde edebiliriz . Peki ama döngü nedir ? Döngü elimizde belirbir kriter vardır örneğin başta bir sayı belirleriz bu sayı şu değerden küçük olana kadar şu işlemi gerçekleştir tarzı ifadelerdir. Bir örnekle bunu daha iyi anlayacağımızdan eminim . ilk başta bir a sayısı tanımlayalım ve bı a sayısı 10 dan küçük olanakadar 1 er artsın .

Örnek :

int a=0;

while(a<10)

{

a=a+1;

Console.Write(“-“+a);

}

Console.Read( ) ;

Bu örneği biraz irdeleyelim , neler yaptık bir bakalım . a<10 ifadesi sayesinde a 10 dan küçük ise aşağıdaki blogu işleme koyacaktır . ilk başta a yı 0 olarak tanımlamıştık ama bakın blok içinde a=a+1 ifadesi sayesinde ayı bir arttırdık. yani a 1 oldu artık . Bu sayede ekrana 1 den 10 a kadar yazdırmış olduk .

!***! Burda dikkat etmemiz gereken bir nokta var a=a+1 ifadesi eğer Console.Write ın altında yer alsaydı ozaman 0 dan 9 a kadar yazardı bu tarz ifadelerde sıra çok önemlidir . Şimdi bir örnek daha yapalım . Bu sefer kullanıcıdan 5 tane değer alalım ve bu 5 sayının ortalamsını ekrana yazdıraım .

 Örnek :  

int sayac,toplam,gdeger;

double ortalama;

toplam=0;

sayac=1;

while(sayac<=5)

{

Console.WriteLine(“ Bir sayi giriniz “);

gdeger= int.Parse(Console.ReadLine( ) ) ;

toplam=toplam+gdeger;

sayac=sayac+1;

}

ortalama=toplam/5;

Console.Write(“ 5 sayinin ortalamasi =”+ortalama) ;

 

Kod

Anlamı

\ b

Backspace

\ n

Satırsonu

\ r

Enter

\ t

Tab

\ 0

Null ( boş )

\ a

Zil sesi

\ v

Bir sonraki satıra geçiş

 

for ==> for ilede döngüler elde ederiz . Kullanımı while `a gör biraz farklılık göstermektedir . Diğer bölümlerde olduğu gibi for ` u da bir örnek üzerinde daha iyi anlayacağımızdan eminim. Diyelim ki bizden 1 den 100 e kadar birer birer yazmamız istenizlidi nasıl bir yol izleriz . Burda dikkat edeceğimiz noktalar ilk olarak başlangıç eğerimşz olacak oda 1 . Daha sonra Enson değerimiz kaçtır oda 100 . Ve son olarak ifademiz kaçar büyüyecek birer birer dediğine göre 1 er artarak sayımız büyüyecek . Güzel şimdi kodumuzu yazabiliriz .

for tanımlamanın genel yöntemi

for (ilk değer ; son değer ; artış miktarı )

komut ;

Örnek :

int a;

for(a=1 ; a<=100 ; a++)

{

Console.Write(a+”-“);

}

Console.Read( ) ;

Örnek : (8 den 88 ` e 8 er 8 er yazalim )

int a;

for(a=8 ; a<=88 ; a+=8)

{

Console.Write(a+"-");

}

Console.Read( );

switch / case ==> Şartlı dallanma olarak nitelendirbileceğimiz bir seçenektir . Bir eğişken veya ifade , birkaç ayrı değerle karşılanmakta , hangisiyle eşit ise program o kola dallanmaktadır . Yani kullanıcıdan bir değer girmesini isterdiniz kullanıcının girmiş olduğu değere göre kod bölümleri çalıştırırsınız . Diyelimki bir ana menü oluşturdunuz işte 1 – toplama , 2-çarpma , 3-sin(x) olsun kullanıcı 1 e basarsa toplama işlemi 2 ye basarsa çarpma işlemi , 3 e basarsa girdiği açı eğerinin sinüsüü hesaplayan bir pencere ile karşılaşır .

Şimdilik dersimiz bukadar arkadaşlar , eğer takıldığınız bir yer yada sormak istediğiniz bir bölüm olursa tahirmutlu@bilyaz.com adresinden iletişime geçebilirsiniz yada iletişim forumumuzdanda bizimle haberleşebilirsiniz. Başka derslerde görüşmek üzere .

 

 

Ana Komutlar nelerdir ?

Console.Write ( ) ; ==> Ekrana bişiler yazdırmak için kullanılır

Consoe.WriteLine ( ) ; ==> Ekrana bişiler yazdırmak için kullanılır

*** Write ile WriteLine arasındaki fark : Write ( )da yazılması gereken yazıldıktan sonra imleç yazının yanında kalır ( örneğimizdeki gibi ) . WriteLine ( ) da ise işlem bitince imleç bir alt satıra iner .

Console.ReadLine ( ) ; ==> ekrana girlen değeri bir değere aktarır daha sonra kullanmak üzere

Console.Read ( ) ; ==> Beklemeyi sağlar .

Şimdilik bu 4 komut bizim işimizi rahatlıkla görecektir .

Örnek :

string isim;

Console.WriteLine ( “ Ismin Ne ? “ );

isim=Console.ReadLine ( ) ;

Console.WriteLine ( “Merhaba “ + isim ) ;

Console.Read ( ) ;

Örnek :

int a,b;

Console.WriteLine(“ Litfen bir sayi giriniz “);

a=int.Parse(Console.ReadLine( ) );

Console.WriteLine(“ Litfen bir sayi daha giriniz “);

b=int.Parse(Console.ReadLine( ) );

Console.WriteLine(“ sayilarin toplami “ +( a+b) );

Şimdi bu örneği analiz edelim bahsetmediğimiz birkaç noktaya değinelim.

a=int.Parse(Console.ReadLine( ) ); bu kod parçacığında ilk örneğimizden farklı olarak int.Parse ile karşılaştık . Normalde ReadLine ( ) ile bir değer atadığımızda bu değer string (metinsel) olur . Bu değeri sayıya çevirmek için kullanılır . int.parse sayesinde tam sayıya dönüşümü sağlanıyor . Eğer dönüşüm yaptırmazsak Sayısal İşlemleri ( +,-,*,/ …) yaptıramayız .

Biraz biraz ilerlemeye devam edelim. Programlama dillerinde karşılaştırmalar çok yapılır onlara göre kod blokları işleme alınır yada işlem görmezler peki bu karşılaştırmalar nasıl yapılır . şimdi bir tablo yardımı ile bu karşılaştırmaları gösterelim .

 

İşlem

C# ta ifadesi

Örnek kullanım

Eşit

= =

A = = B

Eşit değil

! =

A ! = B

Büyüktür

>

A > B

Küçüktür

<

A < B

Büyük eşittir

> =

A > = B

Küçükeşittir

< =

A < = B

 

C# ta taki kullanımlardan bitanesi de eğer şu koşl sağlanırsa bunu yada bunları yap şeklinedir. Böyle bir ifadeyi kullanabilmek için if komutunu kullanabiliriz

if ==> Bu komut sayesinde , bir veya birden fazla şartın gerçekleşmesine bağlı olarak bir komut yada komut bloğunun çalışmasını sağlayabiliriz. if genel olarak şu şekilde kullanılır

if(şart / koşul – lar )

komut ;

yada

 if(sart / kosul – lar )

{

komut1 ;

komut2 ;

.

.

}

 

Örnek :

int a=3;

int b=3;

if(a= = b)

Console.WriteLine(“ a esittir b”);

else

Console.WriteLine(“ a b ye esit degil “);

Çalıştırdığınızda a eşittir b yazması gerekir . peki gerçek doğru çalışıp çalışmadığını nasıl kontrol edeceğiz . Örneğin b değerini 4 olarak değiştirin . ozaman a b ye eşit değil yazması gerekir . burdaki else if eğer koşulu doğrulamazsa bunu yap için kullanılır .

  Örnek :

int a,b;

Console.WriteLine(“ Litfen bir sayi giriniz “);

a=int.Parse(Console.ReadLine( ) );

Console.WriteLine(“ Litfen bir sayi daha giriniz “);

b=int.Parse(Console.ReadLine( ) );

  if ( a > b)

Console.WriteLine(“ {0} ile {1} in farki = {2} “,a,b,(a-b));

if(a<b)

Console.WriteLine(“ {0} ile {1} in toplami = {2} “,a,b,(a+b));

else

Console.WriteLine(“ {0} ile {1} in çarpimi = {2} “,a,b,(a*b));

Console.Read( );

Bu örnektede daha önce bahsetmediğimiz {0} , { 1} ler var . bunlar neler bnlar “ işaretinden sonra yerleştirdiğimiz a,b nin değerlerinin yazılmasınız sağlarlar .

Programlama dillerinde işlem sıraları vardır . Bu sıra şöyledir

 
1.
Parantez içleri
2.
% , * , /
3.
+,-

Not : aynı sıradaki işlem sıralarında işlemler soldan sağa doğru yapılır

Örnek :

int r;

Console.WriteLine(“Lütfen Dairenin Yariçapini Giriniz “);

r=int.Parse(Console.ReadLine( ) ) ;

Console.WriteLine(“ Yariçapi {0} olan dairenin alani = {1}”,r,(Math.PI*r*) ) ;

Bu örneğimizde Math.PI ifadesiyle karşılaştık bu ifade C# ta otamatik olarak pi sayısnı yazdırmak yada bu sayı ile işlemler yaptımak içi kullanılır .

Math. nin kullanimi ==>

 
Programdayken Math. yazdığınızda soldaki gibi bir pencere ile karşılaşırsınız . Gördüğünüz gibi içerisinde bir çok matematikse işlemi barındırıyor . İşte bunlar üsalma,kök bulma, açısal işlemler … gibi . Örneğin Pow iki sayı değeri alır bunlardan birincisi taban değerini diğeri ise üs değerini üstlenir . yazımıda Math.Pow(a , b ) gibidir . ve a=2 , b=4 gibi bir değere sahipse sonuç olarak 16 yi verir bizlere .
 

Alıştırma 1.1 ==> Kullanıcı bir sayı girsin ve bu sayı eğer 80 e eşit ve büyük ise başarıyla geçti yazsın, 60 a eşit ve büyük ise ekranda geçti değil ise kaldı yazsın .

Alıştırma 1.2 ==> Kullanıcıdan bir açı değeri alınız bu açı değerini aldıktan sonra ekrana bu açının sinüs , cosünüz , tanjant , cotanjant değerlerini ekrana yazdırınız .

Bu yazıda Access
veri tabanındaki kayıtları Console uygulamasında nasıl listeleyeceğimizi
anlatmaya çalışacağım.

            İlk
olarak Access de aşağıdaki gibi bir veri tabanı oluşturalım.

Bu hazırladığımız
veri tabanını hardiskimizde herhangi bir yere kayıt edelim. Ben bu
uygulamada veri tabanını C sürücüsüne kaydediyorum. Doğal olarak Access
e bağlantıda kullanılacak data source de aşağıdaki gibi oluyor.

   


Data
Source=C: /okul.mdb   (.mdb Access in uzantısıdır.)

Veri tabanını
hazırladıktan sonra bu veri tabanına c# ta ADO.NET ile nasıl bağlantı
kurup buradaki verileri nasıl okuyacağımıza geçelim. Bu işlemi Console
uygulaması olarak yapacağız.

 

1-) Console
Application

 

 İşlemleri nasıl
yaptığımızı kodun ve kodun nasıl çalıştığını adım adım anlatmaya
çalışacağım.

 


//ADO.NET in temel isim zayı(namespace) System.Data dir.


//Örneğin SQL ile çalışırken ayrı ayrı hem SqlClient hem de OleDb isim
uzaylarını kullanabiliriz.


//SqlClient isim uzayı yalnızca sql sunucu için optimize edilmiştir.


//Access veri tabanı ile çalışacaksak System.Data.OleDb isim uzayını
kullanmamız gerekir.

 

           

using

System.Data.OleDb;

 


namespace

ConsoleApplication1

{

   
class Program

    {

       
static void
Main(string[] args)

        {

 


// Access ile bağlantı için gerekli provider ı yazıyoruz.


// Veri tabanımızın yerini belirtiyoruz.


 


string

kaynak="Provider=Microsoft.Jet.OleDb.4.0;
Data
Source=c:/okul.mdb;";


//Connection sınıfından baglan nesnemizi türetiyoruz.

           
OleDbConnection baglan =
new
OleDbConnection
(kaynak);

 


//bağlantımızı açıyoruz

           
baglan.Open();

 


//Bağlantı açıldıktan sonra aşağıdaki mesaj yazdırılıyor.

           
Console.WriteLine("Bağlantı
açıldı…"
);

 


//OleDbCommand sınıfından komut nesnesini türetiyoruz.

           
OleDbCommand komut =
new
OleDbCommand
();

 


//komut nesnesinin baglan nesnesi ile çalışacağını belirtiyoruz.

           
komut = baglan.CreateCommand();

 


//Komut nesnemizin ne iş yapacağını yazıyoruz.


//Aşağıdaki sql komutundan da anlaşılacağı gibi komut sınıf tablosundaki
//tüm kayıtları seçiyor.

           
komut.CommandText = "SELECT * FROM sınıf";

 


//OleDbDataReader nesnemizi türetiyoruz.

           
OleDbDataReader oku;

 


//ExecuteReader() fonksiyonu CommandText deki komutu çalıştırır.


//Yani aşağıdaki kodun açıklaması komut.CommandText = "SELECT * FROM
//sınıf"; çalıştırarak seçme işlemini yap. Okuma işlemi ise Read()
//fonksiyonuyla yapılar

           
oku = komut.ExecuteReader();

 


//Dos ekranında çıktının daha düzenli görünmesi için aşağıdakileri
yazdırıyoruz.


//burada \t{0} demek tab tuşuna basılmış gibi boşluk bırak ve birinci
//eleman olarak No yu yaz,


//boşluk bırak İsim i yaz gibi.. Ekranda aşağıdaki gibi görünür.

src="es3_files/image001.jpg" v:shapes="_x0000_s1025">

           
Console.WriteLine("\t{0}\t{1}\t{2}","No","İsim","soyad");

           
Console.WriteLine("\t{0}\t{1}\t{2}","—–","—–","—–");

 

 


//Sıra kayıtları okumak için döngü kurmaya geldi. Döngü kuruyoruz çünkü
veri tabanımızda birden fazla kayıt var.


//Aşağıda while döngüsü veri tabanındaki kayıtlar bitene kadar çalışır
ve //okunacak kayıt kalmayınca döngüden çıkar.


//Okuma işlemini görüldüğü gibi while ın içinde Read() fonksiyonuyla
//yapıyoruz.

           
while (oku.Read())

            {

  
Console.WriteLine("\t{0}\t{1}\t{2}",oku["no"],oku["isim"],oku["Soyad"]); 

            }

 


//Son olarak kayıtlarımızın tümünü okuyunca bağlantımızı kapatıp mesaj
veriyoruz ve görüntünün ekranda beklemesi için Console.Read()
fonksiyonunu kullanıyoruz.

           
baglan.Close();

           
Console.WriteLine("Bağlantı
kapandı…"
);

           
Console.Read();

      }

   }

}

 

 

Kodumuzu yazmayı
bitirdikten sonra çalıştıralım.

Görüldüğü gibi
Access veri tabanındaki kayıtların tümünü listelemiş olduk. Bir sonraki
yazıda aynı uygulamanın Windosw Application da nasıl yapıldığını
anlatacağım.

İyi çalışmalar…

Günümüze kadar geliştirilen profesyonel yada profesyonel
olmayan yazılımların büyük bölümünde verilerin gerek bir dosyada gerekse
veritabanlarında saklanması , bu verilere erişilmesi ve verilerin kullanılması
gerekmiştir . Verilerin  saklanması için birçok dosya türü ve veritabanından
bahsetmek mümkün . Bu yazımda sizlere SQL Server da bulunan bir veritabanına ve
Access bir veritabanına nasıl bağlanabileceğimizi birer örnek uygulama ile
sizlere aktarıyor olacağım .

            .NET teknolojilerinde SqlClient , OleDb ve Data
isim uzayları sayesinde veritabanlarına bağlanabilir , veritabanı işlemlerini
gerçekleştirebiliriz .

            İlk örneğim de SQL Server 2005 üzerinde bulunan
bir veritabanına bağlanıyor olacağız . Bunun için yukarıda da bahsettiğim gibi
öncelikle System.Data.SqlClient isim uzayını
projemize dahil ediyorum .


using

System.Data.SqlClient;


namespace

WindowsApplication1

{

   
public
partial
class
Form1 : Form

    {

       
public Form1()

        {

           
InitializeComponent();

        }

 

       
private void
btnSqlebaglan_Click(object sender,
EventArgs e)

        {

           
//server=bölümüne . yerine localhost yada
veritabanının  bulunduğu sunucunun ismini yazabilri

           
//eğer sunucu ayarlarınızda kullanıcı adı ve
şifre ile bağlanmaya ayarlamış iseniz

           
//bağlantı cümlemiz ==> "server=.;database=urunler;uid=sa;password=1234;"
şeklinde olacaktı

           
//sa = server admib

           
SqlConnection baglanti =
new
SqlConnection
("server.;database=urunler;trusted_onnection=true;");

 

           
// .Open() fonksiyonu sayesinde bağlantımı
açabiliriz

           
baglanti.Open();

 

           
//bağlantı durumunu bir labele yazdırabiliriz
açık yada kapalı mı?

           
lblDurum.Text = baglanti.State.ToString();

 

           
// .Close() fonkksiyonu ile işimiz bitince
bağlantımızı kapatıyoruz

           
baglanti.Close();

 

        }

 

    Gördüğünüz gibi veritabanına bağlanması
bu kadar kolay bir işlem . Şimdi örneğimizi biraz inceleyelim . Bağlantı
cümlenizde server= bölümüne bağlanmak istediğiniz sunucunu adını
yazacaksınız . Eğer kendi bilgisayarınızda sunucuya bağlanıyor iseniz
localhost
yada sadece “ .” yazmanız yeterli olacaktır.  Bağlantımızı
açmak için kullandığımız .Open( ) fonksiyonu  ve bağlantımızı işimiz
bittikten sonra kapattığımız .Close( ) fonksiyonu System.Data.SqlClient
isim uzayı ile birlikte gelmektedir . Veri tabanı işlemlerimizde işimiz
bittikten sonra bağlantımızı koparmamız çok önemlidir .

   

   
İkinci örneğimizde
de Access üzerinde bulunan bir veritabanına bağlanıyor olacağız . Bu uygulamamız
için de öncelikle System.Data.OleDb isim
uzayını projemize ekliyoruz .

 


using

System.Data.OleDb;


namespace

WindowsApplication1

{

   
public
partial
class
Form1 : Form

    {

       
public Form1()

        {

            InitializeComponent();

        }

 

       
private void
btnAccesseBaglan_Click(object sender,
EventArgs e)

        {

           
// Access için bir bağlantı nesnesi
oluşturuyoruz

           
OleDbConnection baglanti =
new
OleDbConnection
();

 

            //
Oluşturduğumuz nesnenin bağlantı cümlesini yazıyoruz

           
baglanti.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data
Sorce=uygulama.mdb"
;

 

           
// Bağlantımızı .Open() fonksiyonu ile
açıyoruz

           
baglanti.Open();

 

            //
Bağlantımızın açılıp açılmadığını kontrol için labelimize durumu
yazdırıyoruz

           
lblSonuc.Text = baglanti.State.ToString();

 

           
// ve işimiz bittikten sonra bağlantımızı
kapatıyoruz .

           
baglanti.Close();

 

        }

 

    Bu iki uygulamamız ile aslında ADO.NET
ile programlamaya giriş yapmış olduk . Uygulamalarınızda kullanacağınız
veritabanına bağlantılarının ADO.NET ` in bize sağladığı kolaylıkları da bir
nebze olsun görmüş olduk . Yazı dizime  veritabanı işlemleri ile devam etmek
istiyorum . Umarım bu yazım da okuyucularıma yardımcı olmuşumdur .

© 2010 bilyaz.com , Programlama Makaleleri, Yazılım Makaleleri , Örnek Kodlar , Eğitim Videoları , C#,ASP.NET,SQL,PHP Suffusion WordPress theme by Sayontan Sinha