Aylık arşivler: Ocak 2012

C#’da kullanılan Char Fonksiyonlar

1-     IsNumber  = Girilen karakter rakam, üstel veya kesirsel ise true değerini verir (ASCII tabloda “üst simge” (‘²’ ve ‘³’ gibi) veya “yarım”, “çeyrek” ifadelerini simgeleyen tekil karakterleri de (‘¼’, ‘½’ ve ‘¾’ gibi) kapsar).

IsNumber(char)

2-     IsPunctuation = Girilen karakter noktalama ise true değerini verir.

IsPunctuation(char)

3-     IsLower = Girilen karakter küçük harf  ise true değerini verir.

IsLower(char)

4-     IsUpper = Girilen karakter büyük harf ise true değerini verir.

IsUpper(char)

5-IsLetter = Girilen karakter harf ise true değerini verir.

IsLetter(char)

6-IsDigit =Girilen karakterin sadece rakam olup olmadığını gösterir.

IsDigit(char)

7-IsLetterOrDigit = Girilen karakter harf veya rakam ise true değerini verir.

IsLetterOrDigit(char)

8-IsWhiteSpace = Girilen karakter boşluk ise true değerini verir.

IsWhiteSpace(char)

Yukarıdaki bazı fonksiyonlar ile yapılmış örnek programın kodları aşağıda verilmiştir.

Formumuza bir textbox ve 4 tane label ekleyelim. Textbox’ın KeyPress olayına aşağıda ki kodları yazalım.


if (char.IsUpper(e.KeyChar))

{

label1.Text += "n"+e.KeyChar;

}

else if (char.IsLower(e.KeyChar))

{

label2.Text += "n" + e.KeyChar;

}else if(char.IsNumber(e.KeyChar))

{

label3.Text+="n"+e.KeyChar;

}else if(char.IsPunctuation(e.KeyChar))

{

label4.Text+="n"+e.KeyChar;

}

 

Veritabanı Giriş

Veritabanı ; Veritabanı en genel tanımıyla, kullanım amacına uygun olarak düzenlenmiş

veriler topluluğudur. Birbirleriyle ilişkileri olan verilerin tutulduğu, mantıksal ve fiziksel

olarak tanımlarının olduğu bilgi depolarıdır. Veritabanları gerçekte var olan ve

birbirleriyle ilişkisi olan nesneleri ve ilişkileri modeller.

 

Veri tabanı, bir kuruluşun uygulama programlarının kullandığı operasyonel

verilerin bütünüdür (toplamıdır). Burada; “kuruluş”, bir okul, üniversite, banka, bir

üretim şirketi, hastane, devlet kuruluşu, vb. olabilir. “Operasyonel veri” bir kuruluşun

çalışabilmesi, işleyebilmesi için kullanılan çok çeşitli verilerdir. Ticari bir  şirket için

müşteri bilgileri, satış bilgileri, ürün bilgileri, ödeme bilgileri, vb., okul için öğrenci

bilgileri, açılan dersler, kimlerin kaydolduğu, öğretmen bilgileri, boş ve dolu derslikler,

sınav tarihleri, vb., hastane için hasta bilgileri, doktor bilgileri, yatakların doluluk

boşluğu, teşhis-tedavi bilgileri, mali bilgileri, vb …

 

Belirli bir konu hakkında toplanmış veriler bir veritabanı programı altında

toplanır.  İstenildiğinde toplanan bilgilerin tümü veya istenilen özelliklere uyanları

görüntülenebilir, yazdırılabilir hatta bilgilerden yeni bilgiler üretilerek bunlar çeşitli

amaçlarla kullanılabilir.

 

Veritabanı Yönetim sistemi ; Veritabanı kurma,yaratma,tanımlama,işletme ve kullanma işlerini yapmayı sağlayan program topluluğudur. Veritabanı Yönetim sistemi(VTYS) veya Database Managament System(DBMS) isim olarakta kullanılır. Aşağıda bilinen VTYS programlarını ve özelliklerini görebiliriz.

 

MS SQL Server: Bir orta ve büyük ölçekli VTYS’dir. ANSI SQL’e eklentiler yazmak

için T-SQL’i destekler.

 

Oracle: Daha çok yüksek ölçekli uygulamalarda tercih edilen bir VTYS’dir. ANSI

SQL’e eklentiler yapmak için PL/SQL geliştirilmiştir.

 

Sybase: Bir orta ve büyük ölçekli VTYS’dir. ANSI SQL’e eklentiler yazmak için T-SQL

komutlarını destekler. Ülkemizde daha çok bankacılık ve kamusal alanlarda tercih

edilmektedir.

 

Informix: Bir orta ve büyük ölçekli VTYS’dir.

 

MySQL: Genellikle Unix-Linux temelli Web uygulamalarında tercih edilen bir

VTYS’dir. Açık kod bir yazılımdır. Küçük-orta ölçeklidir. Özellikle Web için geliştirilmiş

bir VTYS’dir denilebilir.

 

Postrage SQL: Bu da MySQL gibi açık kod bir VTYS’dir.

 

MS Access: Çoklu kullanıcı desteği yoktur.  İşletim sisteminin sağladığı güvenlik

seçeneklerini kullanır. Bunun yanında belli sayıda kayda kadar (1000000 civarı) ya

da belli bir boyutun (yaklaşık 25MB) altına kadar bir sorun çıkartmadan

kullanılabilecek bir küçük ölçekli VTYS’dir.

 

Advantage: Türk programcılar tarafından geliştirilen bir orta ve büyük ölçekli

VTYS’dir.

 

DB/2: IBM’in framework’lere yönelik büyük ölçekli VTYS’dir.

 

Bazı veritabanı terimleri ve açıklamaları

 

Tablo : Tablo verilerin satırlar ve sütunlar halinde düzenlenmesiyle

oluşan veri grubudur.

 

Alan : Yapılandırılmış bilginin her bir kısmını saklamak üzere yapılan tanımlamadır.

 

Primary Key (Birincil Anahtar) :  Bir tablodaki, her bir satırın yerine vekil

olabilecek bir anahtar veridir. Tabloda  bu alana ait bilginin tekrarlanmaması gerekir.

Standart olarak bir tabloda verilerin, fiziksel hafıza üstünde de hangi alana göre

dizileceğini de primary key belirler. Bu, bazen bir tek alan olabileceği gibi, bazen

birden fazla alan da birleşerek bir birincil anahtar oluşturabilir.

 

Unique Key(Tekil Anahtar): Unique Key olarak tanımlanan alan için bir değer

sadece bir kere girilebilir. Bir başka satıra daha aynı verinin  girilmesine izin verilmez.

Primary Key ’den farklı olarak Unique Key, NULL (boşluk) değerini alabilir.

 

Foreign Key (Yabancı Anahtar) : Bir tabloya girilebilecek değerleri başka bir

tablonun belli bir alanında yer alabilecek veri grubu ile sınırlandırmaya ve en önemlisi

de ilişkilendirmeye yarar. Örneğin, olmayan bir kitabın ödünç tablosuna

eklenememesi ve ödünç tablosuna eklenen bir kitabın numarası aracılığıyla detay

bilgilerine erişilmesi gibi. Burada Kitap.KitapNo birincil anahtar alan; Odunc.kitapNo

ise yabancı anahtardır.

 

İlişkisel Veri Tabanları(Relational Database) : Bu sistemde veriler tablo şeklinde saklanır. Bu veri tabanı yönetim sisteminde; veri alış verişi için özel işlemler kullanılır.  Bu işlemlerde tablolar operandlar  olarak  kullanılır.  Tablolar  arasında   ilişkiler  belirtilir. Bu  ilişkiler matematiksebağıntılarla (ilişkilerle) temsil edilir.  Günümüzde hemen hemen tüm veri tabanı yönetim sistemleriilişkisel veri modelini kullanırlar.  İlişkisel modeli 1970 yılında Codd önermiştir. Bu model,  matematikteki ilişki teorisine (“the relational theory”) dayanır.  İlişkisel veri modelinde (Relational Data Model) veriler basit tablolar halinde tutulur. Tablolar, satır ve

sütunlardan oluşur.

String Biçimlendirme Karakterleri

Escape Sequence Komutu Açıklama
a Bell (alert) (bip sesi, uyarı )
b Backspace (geri sil komutu)
n New line (yeni satır)
r Carriage return (enter karakteri)
t Horizontal tab (yatay sekme)
Single quotation mark (tek tırnak simgesi)
Double quotation mark (Çift tırnak simgesi)
\ Backslash (ters slash karakteri)
ooo ASCII character in octal notation (sekizlik karakter kodu)
xhh ASCII character in hexadecimal notation (onaltılık karakter kodu)


@ tırnaktan hemen önce bitişik olarak verildiğinde komut yorumlaması kapatılır ve tırnaklar asasındaki komutlar olduğu gibi gösterilir. Komut yorumlama kapalı iken ” kullanılamaz bunun yerine “ karakteri için “” kullanılır.

View (Görünüm oluşturma)

Tablo görünümleri veri tabanında tanımı olan tablolardan sorgulama

sonucunda elde edilir. Tabloların tersine fiziksel bir yer tutmazlar. Uygulamalarda pek

çok pratiklik sağlarlar.  Görüntü oluşturabilmek için Select cümlesi kullanılması gerekir. Bir görüntü bir yada daha fazla tablodan oluşturulabileceği gibi bir başka görüntüden (view) de

oluşturulabilir.

CREATE VIEW view_adi AS select sorgusu

View’lerin Faydaları.

1-      Gerçek tablo ve alan adlarını gizlemek .

2-      İstemci- sunucu arasındaki trafiği azaltır yani istemciden sunucuya daha kısa sorgular gider.

3-      Karmaşık sorguların sunucu  üzerinde oluşturularak denenmiş olması garanti edilir, hatalı sorguların oluşmasının önüne geçmiş olunur.

4-      Numaralarla ilişkilendirilmiş tabloların diğer alanları kullanılarak okunaklı, anlaşılır, son kullanıcıya uygun tablolar oluşturulması sağlanır.

Örnek View Sorgusu;


CREATE

VIEW `Kitap_View`AS

SELECT

kitaplar.kitap_adi AS Kitap_Adi,

yazarlar.adi AS Yazar_Adi,

yazarlar.soyadi AS Yazar_Soyadi

FROM

kitaplar

INNER JOIN kitap_yazar ON kitap_yazar.kitap_id_fk=kitaplar.kitap_id

INNER JOIN yazarlar ON kitap_yazar.yazar_id_fk=yazarlar.yazar_id ;

Not : View’ler sonuç itibarı ile gerçek anlamdaki tablolar değildir. Bundan dolayı view’ler üstünde ekleme veya güncelleme yaparken çeşitli kısıtlamalar vardır.

C#’da Kontrol Deyimleri

1-if deyimi

if deyimi programın akışını koşula bağlı olarak true yada false sonucunu döndürür.

Tek komut için kullanımı

if(koşul) tek_satir;

if içinde birden çok komut çalıştırılacak ise;

if(koşul)

{

//koşul sağlandığında işlenecek komutlar  (koşul=true)

Komut1;

Komut2;

}else

{

//koşul sağlanmadığında yapılacaklar (koşul=false)

Komut1;

Komut2;

}

Aşağıdaki örnek programı inceleyelim;


int a = 5;

if (a < 6)

MessageBox.Show("Sayı 6 dan küçük");

Yukarıdaki program çalıştığında Sayı 6 dan küçük yazacaktır. Çünkü a değişkenin değeri 6 dan küçüktür. Sadece bir komut işleteceğimiz için blok içinde yazmadık.


int a = 5;

if (a > 6)

{

MessageBox.Show("Sayı 6 dan büyük");

}

if(a <= 6)

{

MessageBox.Show("Sayı 6dan küçük veya eşit");

}

Yukarıdaki program çalıştığında Sayı 6dan küçük yazacak ancak kontrol edilecek a değişkeni için ayrı ayrı if bloğu tanımlamak pratik bir kullanım değildir. Yukarıdaki örneği ikinci bir if bloğu tanımlamak yerine pratik bir şekilde else komutu ile yapabiliriz.


int a = 5;

if (a > 6)

{

MessageBox.Show("Sayı 6 dan büyük");

}

else

{

MessageBox.Show("Sayı 6dan küçük veya eşit");

}

Yapılan karşılaştırmada ikiden fazla olasılık varsa birden fazla else kullanabiliriz.

İf(koşul1)

{

Koşul1 sağlandığında yapılacaklar

}else if(koşul2)

{

Koşul1 sağlanmadığında , Koşul2 sağlandığında yapılacaklar

}else if(koşul3)

{

Koşul1 ve koşul2 sağlanmadığında Koşul3 sağlandığında yapılacaklar

}

Aşağıdaki örneği inceleyelim;


int a = 6;

if (a > 6)

{

MessageBox.Show("Sayı 6 dan büyük");

}

else if(a<6)

{

MessageBox.Show("Sayı 6dan küçük");

}

else if (a == 6)

{

MessageBox.Show("A değişkeninin değeri 6'dır");

}

2- ? : Operatörü

Sadece tek koşul ve koşulun true veya false olması sonucunda tek değişkenin alacağı iki farklı durum söz konusu olduğu karşılaştırmalarda ? : operatörürünü kullanabiliriz. Örnek Program ;


int a = 6;

string sonuc = a > 0 ? "Sıfırdan Büyük" : "Sıfırdan Küçük";

label1.Text = sonuc;

yukarıdaki programın çıktısında Sıfırdan Büyük yazdığını görürüz. Yukarıdaki programı if ile yapalım.


int a = 6;

if (a > 0)

label1.Text = "Sıfırdan Büyük";

else

{

label1.Text = "Sıfırdan Küçük";

}

Yukarıdaki programın çıktısıda ilk örnekteki gibi aynı olur. 2 olasılık söz konusu olduğunda ? operatörünü kullanmak daha pratiktir.

 

3- Switch Case Deyimi

 

Switch Case işlev bakımından if deyimine benzer. Çok sayıda iç içe if kullanıldığı zaman programın okunurluğu zorlaşır bu durumlarda switch case kullanılması önelirilir.

switch(kontrol değişkeni)

{

case değer1:

……….

break;

case değer2:

………..

break;

default: //case durumları dışında kalan tüm değerler için işletilecek

//ortak komutlar varsa seçimlik olarak default bloğu da dahil edilir.

………..

break;

}

Switch Case kullanılarak  Türkçe karakterleri temizleyip son halini label’a yazan program. Formumuza bir label bir tanede textBox ekleyelim ve textBox’ın KeyPress olayına aşağıdaki kodları yazalım.


switch (e.KeyChar)

{

case 'ç':

e.KeyChar = 'c';

break;

case 'ı':

e.KeyChar = 'i';

break;

case 'ş':

e.KeyChar = 's';

break;

case 'ü':

e.KeyChar = 'u';

break;

case 'ö':

e.KeyChar = 'o';

break;

case 'ğ':

e.KeyChar = 'g';

break;

case 'Ç':

e.KeyChar = 'C';

break;

case 'İ':

e.KeyChar = 'I';

break;

case 'Ş':

e.KeyChar = 'S';

break;

case 'Ü':

e.KeyChar = 'U';

break;

case 'Ö':

e.KeyChar = 'O';

break;

case 'Ğ':

e.KeyChar = 'G';

break;

}

label1.Text = e.KeyChar.ToString();