21 Ocak 2014 Salı

Kim Milyoner Olmak İster...

C# uygulamalarında kim milyoner olmak ister yarışmasını yapacağız... Yarışmada telefon jokerini ve seyirci jokerini yapamıyoruz... Ama %50 jokeri ve Yarı Yarıya jokerlerini yapabiliyoruz... 

Projemiz içerisinde en çok kullandığımız özellik diziler oldu. Çünkü veritabanı kayıt işlemleri yapmadığımız için soruları, cevapları ve cevap şıklarını tutabileceğimiz bir alan olması gerekiyordu. Bu işlemi de dizileri kullanarak yaptık. Zamanlama işlemi için Timer kullandık. Soruları iki kısım olarak ayırdık. 1. Kısımdaki 7 sorunun her biri için 30 saniye süre verdik. Soruları da iki kısım olarak ayarladık. Zor sorular için ikinci diziyi kullandık. 

Yarışma içerisinde paraağacı ile yarışmacının kazandığı para arttırıldı. Programı yaparken bol bol metodları kullandık. Dogrucevapverince metodu burada iki soru türü için kullanılıyor. Sorular dizisi  ve Sorular1 dizisi. Soru sayısı 1 ise direkt sorular geliyor. Soru sayısı 2 ile 6 arasında Sorular dizisinden gelirken, 7 ile 11 arasında ise Sorular1 dizisinden yarışma soruları geliyor.

Şimdi programın arayüzüne bakalım... Program ilk açıldığında aşağıdaki arayüz geliyor... Oyuna başla butonu ile başlıyoruz...



















Programın tasarımı aşağıdaki gibi olacaktır.

















Buradaki button3 yazılı olanlar cevap şıkları olacaktır. Yukarıda Zaman adında bir labelımız var... Süreyi göstermesi için kullanacağız... Paraağacı içinde sırası ile labelları dolduracağız... 

Programın kod kısmına bakalım... Öncelikle kullanmış olduğumuz değişkenleri tanıyalım...
        int zaman = 30;
        int paraagaci = 0;
        int sorusayisi = 1; // Soru sayacımız... Her soruda artıracağız...
        string[] sorular1 = new string[51]; // 1. Kısım soruların olduğu dizi... 
        string[] dogrucevap1 = new string[51];
        string[] buton11 = new string[51]; // Her cevap şıkkı içinde bir dizi tanımladık...
        string[] buton22 = new string[51];
        string[] buton33 = new string[51];
        string[] buton44 = new string[51];

        string[] sorular = new string[49]; // 2. Kısım soruların olduğu dizi... 
        string[] dogrucevap = new string[49];
        string[] buton1 = new string[49];
        string[] buton2 = new string[49];
        string[] buton3 = new string[49];
        string[] buton4 = new string[49];
        string[] para = new string[12]; // Para ağacı için kullanacağımız dizi elemanı...

Program içerisinde ilk aşamada tanımlayacağımız değişkenlerimiz yukarıdakiler... Bunlar global değişkenler olacaktır... 

Soru seçimi için sayı ataması yapacağımız rastgele iki tane değişkenimiz olacak...
        int y = 0; // Rastgele soru gelmesi için atanan değişkenler... 1. Kısım sorular için...
        Random x = new Random();
        int y1 = 0; // 2. Kısım sorular için...
        Random x1 = new Random();

Kullandığımız metodlar aşağıdaki gibidir...







Buradaki metodları sırası ile açıklayalım ve kodlarını görelim... buttongetir() metodu ile başlayalım... Ekranda oyun başladığı zaman kullandığımız metodtur... Cevap şıklarını göstermek için kullanıyoruz...
        void buttongetir()
        {
            button3.Visible = true;
            button4.Visible = true;
            button5.Visible = true;
            button6.Visible = true;
        }

paraagacı() metodumuz kazanılan ödülü göstermek için kullandığımız metoddur... Sorular sıralı olarak geldiği için her soruda bir tane seçeneği göstermemiz yeterli olacaktır... Sırası ile paraagacı seçenekleri gelmektedir. Burada elseif yapısı da kullanılabilir... Her soruya verilen doğru cevapdan sonra paraagacı() metoduna bir defa uğrayıp kazanılan ödül gösterilmektedir...
void paraagacı()
        {
            paraagaci++;
            if (paraagaci == 1) label3.Visible = true;
            if (paraagaci == 2) label4.Visible = true;
            if (paraagaci == 3) label5.Visible = true;
            if (paraagaci == 4) label6.Visible = true;
            if (paraagaci == 5) label7.Visible = true;
            if (paraagaci == 6) label8.Visible = true;
            if (paraagaci == 7) label9.Visible = true;
            if (paraagaci == 8) label10.Visible = true;
            if (paraagaci == 9) label11.Visible = true;
            if (paraagaci == 10) label12.Visible = true;
            if (paraagaci == 11) label13.Visible = true;
        }

Çekil butonu ilk soruya doğru cevap verilmeden aktif olmayacaktır. Bu metod bunu sağlamaktadır.
void cekilbutonugorunum()
        {
            if (sorusayisi >=1 && sorusayisi <= 11)
                button8.Visible = true;
        }

Yeni her soru geldiğinde aşağıdaki metod ile sorusayısı bir artırılmaktadır... sorusayisiniartir() metodu ile bu artış sağlanmaktadır. Soru sayısı 12 ise yarışma bitmiş ve ödül kazanılmıştır...
void sorusayisiniartir()
        {
            sorusayisi++;
            
            if (sorusayisi == 12)
            {
                MessageBox.Show("Tebrikler 1.000.000 TL Kazandınız");
                Application.Restart();
            }
        } 

Bir de yarışmada yanlış cevap verme durumu vardır... Bu durumda ise oyunukaybedince() metodu ile kazanılan ödül gösterilmekte ve doğru cevap gösterilmektedir... Yalnız yanlış cevap durumunda soru sayısına bakılmaktadır... 
Soru sayısı 2 ye kadar ise ödül verilmemektedir... 
Soru sayısı 7 ye kadar ise 1000 TL kazanılmaktadır... 
Soru sayısı 11 e kadar ise 15000 TL kazanılmaktadır... 

void oyunukaybedince()
        {
            if (sorusayisi == 1 || sorusayisi == 2)
            {
                MessageBox.Show("Malesef Yanlış Cevap Verdiniz Oyundan Elendiniz"+"Doğru cevap "    +dogrucevap[y].ToUpper()+   "   Şıkkı Olacaktı");
                Application.Restart();
            }
            else if (sorusayisi == 3 || sorusayisi == 4 || sorusayisi == 5 || sorusayisi == 6 || sorusayisi == 7)
            {
                MessageBox.Show("Malesef Yanlış Cevap Verdiniz Ve 1000 TL Kazandınız" + "Doğru cevap " + dogrucevap[y].ToUpper() + "   Şıkkı Olacaktı");
                Application.Restart();
            }
            else if (sorusayisi == 8 || sorusayisi == 9 || sorusayisi == 10 || sorusayisi == 11)
            {
                MessageBox.Show("Malesef Yanlış Cevap Verdiniz Ve 15.000 TL Kazandınız"+"Doğru Cevap   "    +dogrucevap1[y1].ToUpper()+"    Şıkkı Olacaktı");
                Application.Restart();
            }
        }

dogrucevapverince() metodumuz adından da anlaşılacağı gibi doğru cevap verildiğinde çalışmaktadır... Amaç yeni soru getirmektir... 
void dogrucevapverince()
        {
            buttongetir();
            if (sorusayisi == 1)
            {
                y = x.Next(0, 48); // Sadece ilk soru için böyle bir durum vardır... 
                label2.Text = sorular[y];
                button3.Text = buton1[y];
                button4.Text = buton2[y];
                button5.Text = buton3[y];
                button6.Text = buton4[y];
            }
            else if (sorusayisi>=7 && sorusayisi<=11)
            {
                y1 = x1.Next(0, 50); // 2. Kısım sorular gelmektedir... 7 ve 7 den sonraki sorular için bu kısım çalışacaktır...
                label2.Text = sorular1[y1];
                button3.Text = buton11[y1];
                button4.Text = buton22[y1];
                button5.Text = buton33[y1];
                button6.Text = buton44[y1];
            }
            else if (sorusayisi >= 2 && sorusayisi <= 6)
            {   // normalde sorusayisi <= 7 olması lazım... ama soru sayısından bir fazla olan soru sorulacağı için
                // yani yeni soru sorulacağı için sorusayisi <= 6 aldık...
                y = x.Next(0, 48); // Soru sayısı 7 ye kadar olanlar için bu kısım kullanılmaktadır...
                label2.Text = sorular[y];
                button3.Text = buton1[y];
                button4.Text = buton2[y];
                button5.Text = buton3[y];
                button6.Text = buton4[y];
            }
        }

ciftcevap(string gelensecenek) metodumuz adı üstünde çift cevap jokeri kullanıldığında ve yanlış cevap verildiğinde aktif olacaktır... Hangi yanlış seçeneğe basıldı ise o cevap şıkkı kapatılacaktır... Bu kısma doğru cevap verilmediği takdirde gelecektir... 
void ciftcevap(string gelensecenek)
        {
            //Burada çift cevap jokeri kullanıldığında ve soru yanlış cevaplandığında ne yapılmasını istiyorsak onu yapıyoruz;
            //Ben tıklanan buttonu gizleyeceğim;
            if (gelensecenek == "a")
                button3.Hide();
            else if (gelensecenek == "b")
                button4.Hide();
            else if (gelensecenek == "c")
                button5.Hide();
            else if (gelensecenek == "d")
                button6.Hide();
            cjkulln = true; // Çift joker butonu kullanıldı...
            cjaktif = false; // Çift cevap jokeri kullanılmış oldu...
        }

Yarışmacının gelen cevabını kontrol etmek için aşağıdaki metod kullanılmaktadır... Programın ana ve en önemli kısmı burasıdır... Bu metod ile gelen cevap şıkkı alınmakta ve dogrucevap şıkkı ile kıyaslanmaktadır... Dogru cevap şıkları ayrı bir dizi içerisinde tutulmaktadır... 
1. Kısım sorular için cevaplar dogrucevap[y] dizi değişkeninde,
2. Kısım sorular için cevaplar dogrucevap1[y1] dizi değişkeninde tutulmaktadır... 

void buttonsorularkontrol(string harfgelen)
        {
            if (sorusayisi >= 1 && sorusayisi <= 7)
            {
                if (dogrucevap[y] == harfgelen)
                { // Burası doğru cevap verildiğinde yapılacakların olduğu kısımdır...
                    cekilbutonugorunum();   // Çekil butonu ilk doğru cevaptan sonra gözüküyor... 
                    zaman = 30;             // Zamanlama tekrar 30 sn ye geliyor... 
                    MessageBox.Show("Tebrikler Doğru Cevap Verdiniz...!");
                    dogrucevapverince();    // Yeni soru getiriliyor.. 
                    paraagacı();            // Kazanılan para ağaçta gösteriliyor...
                }
                else
                {
                    if (cjaktif && !cjkulln) // Çift joker hakkı kullanılıyorsa burada kontrol ediliyor...
                        ciftcevap(harfgelen);
                    else
                        oyunukaybedince();   // Cevap yanlış... Oyun kaybedildi...
                }
            }

            else if (sorusayisi >= 8 && sorusayisi <= 12)
            {
                if (dogrucevap1[y1] == harfgelen)
                {
                    cekilbutonugorunum();
                    MessageBox.Show("Tebrikler Doğru Cevap Verdiniz...!");
                    dogrucevapverince();
                    paraagacı();
                }
                else
                {
                    if (cjaktif && !cjkulln)
                        ciftcevap(harfgelen);
                    else
                        oyunukaybedince();
                }
            }
            sorusayisiniartir();
        }

Şimdi de butonlara tıklandığında neler yapılacağını görelim... İlk olarak çıkış butonuna bakalım... Tıklandığında tamamen programdan çıkılmaktadır...
private void button2_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }

Şimdi de form açıldığında ilk yapılmasını istediğimiz işlemleri yapalım. İlk açılış sırasında oyuna başla butonuna basılana kadar diğer kısımları göstermeyeceğiz... Bu sebeple butonları kapatıyoruz...
private void Form1_Load(object sender, EventArgs e)
        {
            int sayi =30;// Yarışmada sorular için verilen zamanlama...
            label15.Text=sayi.ToString();
            button7.Visible = false; // %50 jokeri
            button9.Visible = false; // Çift joker
            label13.Visible = false;
            label14.Visible = false;
            label5.Visible = false;
            label6.Visible = false;
            label7.Visible = false;
            label8.Visible = false;
            label9.Visible = false;
            label10.Visible = false;
            label11.Visible = false;
            label12.Visible = false;
            label13.Visible = false;
            label14.Visible = false;
        }

Cevap şıkları butonu ise aşağıdaki gibi olacaktır. Burada hangi şık işaretlendi ise o seçenek gönderilerek buttonsorularkontrol() metodu çalıştırılmaktadır. Şık kontrolü bu metod üzerinden yapılmaktadır.
private void button3_Click(object sender, EventArgs e)
        {
            buttonsorularkontrol("a");
        } // a şıkkı butonu
        private void button4_Click(object sender, EventArgs e)
        {
            buttonsorularkontrol("b");
        } // b şıkkı butonu
        private void button5_Click(object sender, EventArgs e)
        {
            buttonsorularkontrol("c");
        } // c şıkkı butonu
        private void button6_Click(object sender, EventArgs e)
        {
            buttonsorularkontrol("d");
        } // d şıkkı butonu

Yarı yarıya joker butonunun kodlaması ise aşağıdaki gibidir. Burada joker seçildikten sonra dogru cevap hangisi ise onun dışındaki iki seçenek butonu gizli hale gelmektedir.
private void button7_Click(object sender, EventArgs e)
        {
            if (dogrucevap[y]=="a") // Doğru cevap a ise, a seçeneği dışında iki tane cevap kapatılıyor...
            {
                button4.Visible = false;
                button5.Visible = false;
            }
            if (dogrucevap[y] == "b")
            {
                button3.Visible = false;
                button6.Visible = false;
            }
            if (dogrucevap[y] == "c")
            {
                button4.Visible = false;
                button6.Visible = false;
            }
            if (dogrucevap[y] == "d")
            {
                button3.Visible = false;
                button5.Visible = false;
            }
            button7.Visible = false; // Yarıyarıya jokeri kaldırılıyor... 
        }

Her hangi bir soruda oyundan çekilmek istenilebilir. Bu durumda kazanılan ödül gösterilip oyundan çekilmelidir. Çekil butonu aşağıdaki gibi bu işlemi yapmaktadır. Çekil butonu için önemli olan kaç soruya doğru cevap verildiğidir.
private void button8_Click(object sender, EventArgs e)
        {
            if (sorusayisi==2)
                MessageBox.Show("Oyundan çekildiniz ve 1.000 TL Kazandınız");
            else if (sorusayisi == 3)
                MessageBox.Show("Oyundan çekildiniz ve 2.000 TL Kazandınız");
            else if (sorusayisi == 4)
                MessageBox.Show("Oyundan çekildiniz ve 3.000 TL Kazandınız");
            else if (sorusayisi == 5)
                MessageBox.Show("Oyundan çekildiniz ve 5.000 TL Kazandınız");
            else if (sorusayisi == 6)
                MessageBox.Show("Oyundan çekildiniz ve 7.500 TL Kazandınız");
            else if (sorusayisi==7)
                MessageBox.Show("Oyundan çekildiniz ve 15.000 TL Kazandınız");
            else if (sorusayisi == 8)
                MessageBox.Show("Oyundan çekildiniz ve 30.000 TL Kazandınız");
            else if (sorusayisi == 9)
                MessageBox.Show("Oyundan çekildiniz ve 60.000 TL Kazandınız");
            else if (sorusayisi == 10)
                MessageBox.Show("Oyundan çekildiniz ve 125.000 TL Kazandınız");
            else if (sorusayisi == 11)
                MessageBox.Show("Oyundan çekildiniz ve 250.000 TL Kazandınız");
            Application.Restart();
        }

Yarışmacılara zaman olarak 30 saniye verdik. Timer ın interval değerini 1000 olarak yani 1 sn olarak verelim. Bu sayede her timer olayı gerçekleştiğinde zaman bir saniye açılacaktır. Ama bu süre kısıtlaması 7. soruya kadar yapılacaktır. 7. sorudan sonra süre kısıtlaması kaldırılacaktır. Bunun için timer durdurulacaktır.
private void timer1_Tick(object sender, EventArgs e)
        {
            zaman--;
            label15.Text=zaman.ToString();
            if (zaman == 0)
            {
                MessageBox.Show("Süreniz Bitti Ve Oyundan Elendiniz");
                Application.Restart();
            }
            if (sorusayisi==7)
            {
                timer1.Stop();
                label15.Visible = false;
            }
        }

En son olarak da çift joker hakkı için bir butonumuz var. Bu butonumuz da yarışmacı çift joker hakkını kullanmak istiyorsa karşısına çıkıyor. Burada iki tane değişken tanımlıyoruz. cjaktif değişkeni çift joker hakkının kullanılması durumunda butonu gizliyor. cjkulln ise çift cevabın 1. hakkı için kullanılıyor. Yani 1. cevap yanlış ise bir daha ciftcevap(string gelensecenek) metoduna gitmeyi engelliyor.
bool cjaktif = false, cjkulln = false;
        private void button9_Click(object sender, EventArgs e)
        {
            if (!cjaktif && !cjkulln)
            {
                cjaktif = true;
                button9.Hide();
            }
        }

Şimdi ise soruları ve cevapları tutacağımız dizini ayarlayalım... Bunun için bütün yükleme işlemlerini oyuna başla butonunun içerisinde yapacağız... Bu buton çok uzun olduğu için farklı göstermek amacı ile kırmızı renkli yazı ile gösterdik...
private void button1_Click(object sender, EventArgs e)
        {
            
            sorular1[0] = "2010’da yapılacak olan Dünya Münazara Yarışması’na ev sahipliği yapacak olan ülke aşağıdakilerden hangisidir?";
            sorular1[1] = " Avrupa Birliğinin en fazla önemsediği, her alanda geleceğin teknolojisi olarak adlandırılan bilim dalının adı nedir?";
            sorular1[2] = " UEFA Kupasını alan ilk Türk takımı hangisidir?";
            sorular1[3] = "Dünyanın ilk haritasını çizen ünlü Türk denizcisi kimdir?";
            sorular1[4] = " Şu an görev yapmakta olan Genelkurmay Başkanımızın adı nedir?";
            sorular1[5] = " Tarihte Türk adıyla kurulan ilk Türk devleti hangisidir?";
            sorular1[6] = "Telefonun mucidi kimdir?";
            sorular1[7] = " Amerika Kıtası’nı ikiye ayıran önemli su geçitinin adı nedir?";
            sorular1[8] = " Cumhurbaşkanlığı seçimi kaç yılda bir yapılır?";
            sorular1[9] = "Kuzey Atlantik Paktı’nın kısa yazılışı nedir?";
            sorular1[10] = "Nobel ödülleri hangi ülkede verilmektedir?";
            sorular1[11] = " İlk atom bombası hangi şehre atılmıştır?";
            sorular1[12] = "2010 Kültür Başkenti seçilen ilimiz hangisidir?";
            sorular1[13] = "Türkiye’nin uluslar arası telefon kodu aşağıdakilerden hangisidir?";
            sorular1[14] = "  2003 Eurovision yarışmasında birinci olan sanatçımız kimdir?";
            sorular1[15] = " İstiklal Marşı’mızın bestecisi kimdir?";
            sorular1[16] = "Şuanda görev yapmakta olan Cumhurbaşkanımızın ismi nedir?";
            sorular1[17] = "Altın Palmiye Sinema Ödülü hangi film festivalinde verilmektedir?";
            sorular1[18] = "Türkiye’de erozyonla mücadele amacıyla kurulan vakfın kısa adı nedir?";
            sorular1[19] = " Türk tarihinin en ünlü mimarı kimdir?";
            sorular1[20] = "Türk Medeni Kanunu hangi ülkenin medeni kanunundan esinlenerek hazırlanmıştır?";
            sorular1[21] = " Hababam Sınıfı Filminde “İnek Şaban” karakterini canlandıran sanatçı kimdir?";
            sorular1[22] = "Bulgaristan’ın başkenti neresidir?";
            sorular1[23] = " Devlet Su İşleri Genel Müdürlüğü hangi bakanlığımıza bağlıdır?";
            sorular1[24] = "Mimar Sinan’ın Ustalık Dönemi eseri sayılan Edirne’deki eserinin adı nedir?";
            sorular1[25] = "Yeni Türk Lira’sındaki “Yeni” sözcüğü hangi tarihte atılmıştır?";
            sorular1[26] = " Dünya Ekonomik Forumu yıllık olağan toplantısı hangi ülkede yapılmıştır?";
            sorular1[27] = "turizm ve Kültür Bakanlığı ve UNESCO’nun işbirliği ile  2009 yılını ne yılı ilan edilmiştir?";
            sorular1[28] = "“Sinekli Bakkal” Romanının Yazarı Aşağıdakilerden Hangisidir? ";
            sorular1[29] = " Aşağıda Verilen İlk Çağ Uygarlıklarından Hangisi Yazıyı İcat Etmiştir? ";
            sorular1[30] = "Tsunami Felaketinde En Fazla Zarar Gören Güney Asya Ülkesi Aşağıdakilerden Hangisidir? ";
            sorular1[31] = "Mustafa Kemal Atatürk’ün Nüfusa Kayıtlı Olduğu İl Hangisidir? ";
            sorular1[32] = "Aşağıdakilerden Hangisi Dünya Sağlık Örgütünün Kısaltılmış İsmidir? ";
            sorular1[33] = "Romen Rakamında Hangi Sayı Yoktur? ";
            sorular1[34] = "Bir Gün Kaç Saniyedir? ";
            sorular1[35] = "Üç Büyük Dince Kutsal Sayılan Şehir Hangisidir? ";
            sorular1[36] = "Hangi İlimizde Demiryolu Yoktur? ";
            sorular1[37] = "Hangi Ülkenin İki Tane Başkenti Vardır? ";
            sorular1[38] = "Cevdet Bey Ve Oğulları Eseri Kime Aittir? ";
            sorular1[39] = "Bir Sebepten Dolayı Tek Kulağına Küpe Takan Osmanlı Padişahı Kimdir? ";
            sorular1[40] = "Aşağıdaki Ülkelerden Hangisinin Nüfusu Daha Fazladır ?";
            sorular1[41] = "Aspirinin Hammaddesi Nedir? ";
            sorular1[42] = " 1. Eğitim şuarası hangi yıl, nerede yapıldı?";
            sorular1[43] = "2006 Yılın’da Almanya’da Dünya Futbol Kupası’nda hangi ülke şampiyon oldu?";
            sorular1[44] = "Töreler, topraklar, su davaları, öç almalar gibi gerçek hayata ait yansımaların görüldüğü öyküsü ’’Susuz Yaz‘‘ dışında ’’Yenilmeyen‘‘, “Dağlı ve Muharrem”, “Gülsüm Kıza Ağıt” gibi öykülerinde de yaşadığı dönemin sosyal panoramasını, mozaik işlercesine bütünleyen öykücümüz kimdir?";
            sorular1[45] = "Aşağıdaki isimlerden hangisi Başbakanlık görevi üstlenmiş kişilerden değildir?";
            sorular1[46] = "Türkiye’nin Gümrük Birliği’ne katılımı hangi tarihte gerçekleşmiştir?";
            sorular1[47] = "Churchill ve Roosevelt’in de katıldığı Kahire Konferansı’na (1943) Türkiye Cumhuriyeti adına katılan devlet adamı kimdir?";
            sorular1[48] = "Aşağıdakilerden hangisi “Ulusal Bayram ve Genel Tatiller Hakkında Kanun” a göre Ulusal Bayram’dır?";
            sorular1[49] = "Aşağıdakilerden hangisi İçişleri Bakanlığı’na bağlı değildir?";
            sorular1[50] = "Polis Meslek Eğitim Merkezleri hangi kanuna istinaden açılabilir?";

            dogrucevap1[0] = "d";
            dogrucevap1[1] = "b";
            dogrucevap1[2] = "d";
            dogrucevap1[3] = "a";
            dogrucevap1[4] = "a";
            dogrucevap1[5] = "c";
            dogrucevap1[6] = "b";
            dogrucevap1[7] = "d";
            dogrucevap1[8] = "c";
            dogrucevap1[9] = "a";
            dogrucevap1[10] = "a";
            dogrucevap1[11] = "c";
            dogrucevap1[12] = "d";
            dogrucevap1[13] = "a";
            dogrucevap1[14] = "c";
            dogrucevap1[15] = "c";
            dogrucevap1[16] = "b";
            dogrucevap1[17] = "a";
            dogrucevap1[18] = "d";
            dogrucevap1[19] = "a";
            dogrucevap1[20] = "c";
            dogrucevap1[21] = "b";
            dogrucevap1[22] = "a";
            dogrucevap1[23] = "c";
            dogrucevap1[24] = "a";
            dogrucevap1[25] = "d";
            dogrucevap1[26] = "d";
            dogrucevap1[27] = "c";
            dogrucevap1[28] = "b";
            dogrucevap1[29] = "d";
            dogrucevap1[30] = "b";
            dogrucevap1[31] = "d";
            dogrucevap1[32] = "c";
            dogrucevap1[33] = "a";
            dogrucevap1[34] = "d";
            dogrucevap1[35] = "a";
            dogrucevap1[36] = "d";
            dogrucevap1[37] = "b";
            dogrucevap1[38] = "c";
            dogrucevap1[39] = "d";
            dogrucevap1[40] = "b";
            dogrucevap1[41] = "a";
            dogrucevap1[42] = "c";
            dogrucevap1[43] = "b";
            dogrucevap1[44] = "c";
            dogrucevap1[45] = "c";
            dogrucevap1[46] = "d";
            dogrucevap1[47] = "a";
            dogrucevap1[48] = "c";
            dogrucevap1[49] = "c";
            dogrucevap1[50] = "b";

            buton11[0] = "a) Almanya";
            buton22[0] = "b) İngiltere";
            buton33[0] = "c) Türkiye";
            buton44[0] = "d) Yunanistan";

            buton11[1] = "a) Nükleer Enerji";
            buton22[1] = "b) Nano Teknoloji";
            buton33[1] = "c) Güneş enejisi";
            buton44[1] = "d) Yunanistan";

            buton11[2] = "a) Fenerbahçe";
            buton22[2] = "b) Trabzonspor";
            buton33[2] = "c) Beşiktaş";
            buton44[2] = "d) Galatasaray";

            buton11[3] = "a) Piri reis";
            buton22[3] = "b) Çaka Bei";
            buton33[3] = "c) Fatih Sultan Mehmet";
            buton44[3] = "d) Picasso";

            buton11[4] = "a) Necdet Özel";
            buton22[4] = "b) İlker Başbuğ";
            buton33[4] = "c) Kenan evren";
            buton44[4] = "d) Turgut Özal";

            buton11[5] = "a) Hun Devleti";
            buton22[5] = "b) Osmanlı devleti";
            buton33[5] = "c) Göktürkler";
            buton44[5] = "d) Hazarlar";

            buton11[6] = "a) Erikson";
            buton22[6] = "b) Graham Bell";
            buton33[6] = "c) Freud";
            buton44[6] = "d) Einstein";

            buton11[7] = "a) Cebeli Tarık";
            buton22[7] = "b) Ümit Burnu";
            buton33[7] = "c) Süveyş Kanalı";
            buton44[7] = "d) Panama";

            buton11[8] = "a) 3";
            buton22[8] = "b) 5";
            buton33[8] = "c) 7";
            buton44[8] = "d) 8 ";

            buton11[9] = "a)NATO ";
            buton22[9] = "b)Unicef ";
            buton33[9] = "c)WHO ";
            buton44[9] = "d)UNESCO ";

            buton11[10] = "a)İsveç ";
            buton22[10] = "b)Almana ";
            buton33[10] = "c)Amerika";
            buton44[10] = "d)İNGİLTERE ";

            buton11[11] = "a)Nagazaki ";
            buton22[11] = "b)Iwate ";
            buton33[11] = "c)Hiroşima ";
            buton44[11] = "d)Kyoto ";

            buton11[12] = "a)İzmir ";
            buton22[12] = "b)Ankara ";
            buton33[12] = "c)Adana";
            buton44[12] = "d)İstanbul ";

            buton11[13] = "a)90 ";
            buton22[13] = "b)01 ";
            buton33[13] = "c)49 ";
            buton44[13] = "d)32";

            buton11[14] = "a)Athena ";
            buton22[14] = "b)Kenan Dogulu ";
            buton33[14] = "c)Sertab Erener ";
            buton44[14] = "d)Hadise ";

            buton11[15] = "a)Mehmet Akif ERSOY ";
            buton22[15] = "b)Orhan kemal ";
            buton33[15] = "c)Zeki üngör ";
            buton44[15] = "d)Yahya Kemal ";

            buton11[16] = "a)Recep tayyip erdoğan ";
            buton22[16] = "b)Abdullah gül ";
            buton33[16] = "c)Celal bayar ";
            buton44[16] = "d)Süleyman demirel ";

            buton11[17] = "a)cannes ";
            buton22[17] = "b)berlin ";
            buton33[17] = "c)altın portakal ";
            buton44[17] = "d)auston ";

            buton11[18] = "a)TEV ";
            buton22[18] = "b)AKUT ";
            buton33[18] = "c)AÇEV";
            buton44[18] = "d)TEMA ";

            buton11[19] = "a)mimar sinan";
            buton22[19] = "b)necip dinç";
            buton33[19] = "c)mimar hayrettin";
            buton44[19] = "d)zaha hadid";

            buton11[20] = "a)Almanya";
            buton22[20] = "b) Fransa";
            buton33[20] = "c) İsveç";
            buton44[20] = "d)İngiltere";

            buton11[21] = "a)Şener şen";
            buton22[21] = "b) Kemal sunal";
            buton33[21] = "c) tarık akan";
            buton44[21] = "d)ediz hun";

            buton11[22] = "a) sofya";
            buton22[22] = "b) tahran";
            buton33[22] = "c)atina";
            buton44[22] = "d) erivan";

            buton11[23] = "a) Truizm bakanlığı";
            buton22[23] = "b) İç işleri bakanlı";
            buton33[23] = "c) Çevre ve orman bakanlğı";
            buton44[23] = "d) Bayındırlık ve iskan bakanlğı";

            buton11[24] = "a) selimiye";
            buton22[24] = "b) sultan ahmet";
            buton33[24] = "c) ayasofya";
            buton44[24] = "d) topkapı sarayı";

            buton11[25] = "a) 01.01.2006";
            buton22[25] = "b) 01.01.2007";
            buton33[25] = "c) 12.12.2008";
            buton44[25] = "d) 01.01.2009";

            buton11[26] = "a) İngiltere";
            buton22[26] = "b) Fransa";
            buton33[26] = "c) Almanya";
            buton44[26] = "d) İsveç";

            buton11[27] = "a) Kaşkarlı mahmut";
            buton22[27] = "b) mevlana";
            buton33[27] = "c) katip çelebi-hacı bektaşi veli";
            buton44[27] = "d) mimar sinan";

            buton11[28] = "a) resat nuri";
            buton22[28] = "b) halide edip adıvar";
            buton33[28] = "c)ziya Gökalp";
            buton44[28] = "d) ömer seyfetin";

            buton11[29] = "a) hititler";
            buton22[29] = "b) asurlular";
            buton33[29] = "c) urartular";
            buton44[29] = "d) sümerliler";

            buton11[30] = "a) çin";
            buton22[30] = "b) endonezye";
            buton33[30] = "c) japonya";
            buton44[30] = "d) tayland";

            buton11[31] = "a) selanik";
            buton22[31] = "b) istabul";
            buton33[31] = "c) ankara";
            buton44[31] = "d) gaziantep";

            buton11[32] = "a) UHW";
            buton22[32] = "b) UNİCEf";
            buton33[32] = "c) WHO";
            buton44[32] = "d) Nato";

            buton11[33] = "a) 0";
            buton22[33] = "b) 50";
            buton33[33] = "c) 100";
            buton44[33] = "d) 1000";

            buton11[34] = "a) 86600";
            buton22[34] = "b) 88600";
            buton33[34] = "c) 86000";
            buton44[34] = "d) 86400";

            buton11[35] = "a) kudüs";
            buton22[35] = "b) mekke";
            buton33[35] = "c) istanbul";
            buton44[35] = "d) roma";

            buton11[36] = "a) batman";
            buton22[36] = "b) kütahya";
            buton33[36] = "c) aydın";
            buton44[36] = "d) muğla";

            buton11[37] = "a) senegal";
            buton22[37] = "b) güney afrika";
            buton33[37] = "c) san marino";
            buton44[37] = "d) el salvador";

            buton11[38] = "a) yahya kemal";
            buton22[38] = "b) atilla ilhan";
            buton33[38] = "c) orhan pamuk";
            buton44[38] = "d) ahmet haşim";

            buton11[39] = "a) kanuni sultan süleyman";
            buton22[39] = "b) 4.Murat";
            buton33[39] = "c) 2.Abdülhamit";
            buton44[39] = "d) yavuz sultan selim";

            buton11[40] = "a) fransa";
            buton22[40] = "b) almanya";
            buton33[40] = "c) ispanya";
            buton44[40] = "d) Türkiye";

            buton11[41] = "a) söğüt";
            buton22[41] = "b) köknar";
            buton33[41] = "c) kavak";
            buton44[41] = "d) meşe";

            buton11[42] = "a) 1923-izmir";
            buton22[42] = "b) 1920-izmir";
            buton33[42] = "c) 1921-ankara";
            buton44[42] = "d) 1924-istanbul ";

            buton11[43] = "a) fransa";
            buton22[43] = "b) italya";
            buton33[43] = "c) ingiltere";
            buton44[43] = "d) ispanya";

            buton11[44] = "a) reşat nuri güntekin";
            buton22[44] = "b) hüseyin rahmi gürpınar";
            buton33[44] = "c) necati cumalı";
            buton44[44] = "d) peyami safa";

            buton11[45] = "a) celal bayar";
            buton22[45] = "b) nihat erim";
            buton33[45] = "c) erdal inönü";
            buton44[45] = "d) abdullah gül";

            buton11[46] = "a) 1997";
            buton22[46] = "b) 1994";
            buton33[46] = "c) 1991";
            buton44[46] = "d) 1995";

            buton11[47] = "a) ismet inönü";
            buton22[47] = "b) celal bayar";
            buton33[47] = "c) şükrü saraçoğlu";
            buton44[47] = "d) fethi okyar";

            buton11[48] = "a) 23 nisan";
            buton22[48] = "b) 19 mayıs ";
            buton33[48] = "c) 29 ekim";
            buton44[48] = "d) 30 agustos";

            buton11[49] = "a) jandarma";
            buton22[49] = "b) emniyet genel mudurlugu";
            buton33[49] = "c) gumruk musteşarlıgı";
            buton44[49] = "d) sahil guvenlik";

            buton11[50] = "a) PVSK";
            buton22[50] = "b) ETK";
            buton33[50] = "c) PYÖK";
            buton44[50] = "d) İİK";

           
                sorular[0] = "Aşağıdakilerden hangisi milli bir maçta 4 gol atan futbolcularımızdan değildir?";
                sorular[1] = "Aşağıdakilerden hangisi en fazla milli olan futbolcumuzdur?";
                sorular[2] = "Aşağıdakilerden hangisi Avrupa Birliği’ne üye devletler arasında yer almaz?";
                sorular[3] = "Birleşmiş Milletler Güvenlik Konseyi’nin daimi üyesi olan ülkeler aşağıdakilerden hangisidir?";
                sorular[4] = "Dünya İnsan Hakları Günü hangi gün kutlanır?";
                sorular[5] = "Aşağıdakilerden hangi ikisi 1 Ocak 2007 tarihi itibari ile Avrupa Birliği’ne tam üye olan ülkelerdendir?";
                sorular[6] = "FIFA tarafından 2006 yılının en iyi futbolcusu kim seçilmiştir?";
                sorular[7] = "2006-2007 UEFA Kupasını hangi takım kazanmıştır?";
                sorular[8] = "Amerika Basketbol Liginde (NBA) oynayan ilk Türk oyuncu kimdir";
                sorular[9] = "Mehmet OKUR hangi takımın formasını giymektedir?";
                sorular[10] = "Aşağıdaki takımlardan hangisi 2006-2007 sezonu sonunda Süper Lige yükselen takımlardan değildir?";
                sorular[11] = "Aşağıdakilerden hangisi 2008 Avrupa Eleme Grubu’ndaki rakiplerimizden değildir?";
                sorular[12] = "2007 yılında yapılan 60. Cannes Film Festivali “Altın Palmiye” ödülünü kazanan film hangisidir?";
                sorular[13] = "“Yaşamın Kıyısında” filmi ile 2007 yılında düzenlenen 60. Cannes Film Festivalinde en iyi senaryo ödülü kazanan filmin yönetmeni kimdir?";
                sorular[14] = "23 Mayıs 2007 günü Atina’da oynanan Milan-Liverpol maçı sonucu Şampiyonlar Ligi Kupasını kazanan Milanın gollerini atan futbolcu kimdir?";
                sorular[15] = "2007 yılı Mayıs ayında İstanbulda düzenlenen Sony Ericsson WTA Tour İstanbul Cup 2007 Uluslar arası Bayanlar Tenis Turnuvası’nı kazanan bayan tenisçi kimdir ?";
                sorular[16] = "2006 yılı Kültür Bakanlığı “Kültür ve Sanat Büyük Ödülü”nü alan, özellikle “Mona Roza” isimle şiiri ile tanınan şair, yazar ve düşünce adamı kimdir?";
                sorular[17] = "14. Altın Koza Film Festivalinde (2007) en iyi film ödülü alan sinema filimi aşağıdakilerden hangisidir?";
                sorular[18] = "Türkiye de kaç tane büyük şehir belediyesi vardır?";
                sorular[19] = "Gerekli önlemleri alıp sonra Allah’a güvenmek hangi kavramla ifade edilir?";
                sorular[20] = "İslam dininde karşılık  beklemeden yapılan her güzel davranışa ne ad verilir?";
                sorular[21] = "Abdesti olmayan bir kişi  aşağıdakilerden hangisini yapamaz?";
                sorular[22] = "BBC hangi ülkenin TV kanalıdır?";
                sorular[23] = "Bilgisayar çalışırken bilgilerin geçici olarak üzerine kayıt edildiği birime ne ad verilir?";
                sorular[24] = "Çini işlemeciliğiyle ünlü ilimiz hangisidir?";
                sorular[25] = "Xbox 360 oyun konsolu hangi firmaya ait bir üründür?";
                sorular[26] = "Vücuttaki en küçük yapı taşına ne denir?";
                sorular[27] = "Blok terimi hangi spor dalına aittir?";
                sorular[28] = "Sinüs boşluklarının iltihaplanmasından kaynaklı oluşan hastalık?";
                sorular[29] = "Seçeneklerde sunulanlardan hangisi kanda bulunmaz?";
                sorular[30] = "Plankton adı verilen canlılar nerede yaşar?";
                sorular[31] = "Pisagor Teoremi hangi bilim dalıyla ilgili teoremdir?";
                sorular[32] = "Pearl harbor baskınında hangi ülke amerika ya saldırmıştır?";
                sorular[33] = "Meryem ana evi hangi ilimizde bulunmaktadır?";
                sorular[34] = "LG markasının açılımı nedir?";
                sorular[35] = "Kutan adıyla bilinen kuş hangisidir?";
                sorular[36] = "Kuran-ı Kerimin kalbi olarak zikredilen sure hangisidir?";
                sorular[37] = "Kilis ilinin plaka kodu nedir?";
                sorular[38] = "Kışlalarda hafif hastaların tedavi edildiği yer?";
                sorular[39] = "Kanı kalbe götüren damarlara ne denir?";
                sorular[40] = "Japon alfabesinde kaç harf vardır?";
                sorular[41] = "Isıyı en çok çeken reank hangisidir?";
                sorular[42] = "İnsan vücudunda iki farklı damar sistemi ile beslenen tek organ hangisidir?";
                sorular[43] = "insan kafasinda kac kemik vardir ?";
                sorular[44] = "İngiliz ölçü birimi olan inç kaç cm'ye tekabül etmektedir?";
                sorular[45] = "İmam bayıldı yemeğinin ana malzemesi nedir?";
                sorular[46] = "İç organların hastalıklarıyla cerrahi müdahaleye başvurmadan ilaç ile tedavi eden bilim dalı hangisidir?";
                sorular[47] = "en çok komşusu olan ülke hangisidir?";
                sorular[48] = "Elektrik akımının voltajını değiştiren aygıtlara ne ad verilir?";
                // Zor sorular burada bitiyor... 49 dan itibaren kolay sorular başlıyor...

                dogrucevap[0] = "b";
                dogrucevap[1] = "d";
                dogrucevap[2] = "c";
                dogrucevap[3] = "d";
                dogrucevap[4] = "b";
                dogrucevap[5] = "c";
                dogrucevap[6] = "a";
                dogrucevap[7] = "b";
                dogrucevap[8] = "d";
                dogrucevap[9] = "b";
                dogrucevap[10] = "b";
                dogrucevap[11] = "d";
                dogrucevap[12] = "d";
                dogrucevap[13] = "d";
                dogrucevap[14] = "c";
                dogrucevap[15] = "a";
                dogrucevap[16] = "b";
                dogrucevap[17] = "d";
                dogrucevap[18] = "c";
                dogrucevap[19] = "a";
                dogrucevap[20] = "b";
                dogrucevap[21] = "d";
                dogrucevap[22] = "c";
                dogrucevap[23] = "b";
                dogrucevap[24] = "a";
                dogrucevap[25] = "c";
                dogrucevap[26] = "d";
                dogrucevap[27] = "a";
                dogrucevap[28] = "b";
                dogrucevap[29] = "c";
                dogrucevap[30] = "a";
                dogrucevap[31] = "b";
                dogrucevap[32] = "a";
                dogrucevap[33] = "b";
                dogrucevap[34] = "c";
                dogrucevap[35] = "a";
                dogrucevap[36] = "c";
                dogrucevap[37] = "d";
                dogrucevap[38] = "c";
                dogrucevap[39] = "b";
                dogrucevap[40] = "d";
                dogrucevap[41] = "a";
                dogrucevap[42] = "c";
                dogrucevap[43] = "d";
                dogrucevap[44] = "b";
                dogrucevap[45] = "a";
                dogrucevap[46] = "a";
                dogrucevap[47] = "c";
                dogrucevap[48] = "a";

                buton1[0] = "a) hakan sukur";
                buton2[0] = "b) tanju çolak";
                buton3[0] = "c) Rıza Saporel";
                buton4[0] = "d) Oktay Dereli";

                buton1[1] = "a) Hakan Şükür";
                buton2[1] = "b) Tugay KErimoğlu";
                buton3[1] = "c) Alpay Ozalan";
                buton4[1] = "d) Rüştü Recper";

                buton1[2] = "a) Almanya";
                buton2[2] = "b) Belçika";
                buton3[2] = "c) Norveç";
                buton4[2] = "d) Malta";

                buton1[3] = "a) Almanya";
                buton2[3] = "b) Fransa";
                buton3[3] = "c) Çin";
                buton4[3] = "d) Fransa ve Çin";

                buton1[4] = "a) 27 Aralık";
                buton2[4] = "b) 10 Aralık";
                buton3[4] = "c) 27 Nisan";
                buton4[4] = "d) 1 Eylül";

                buton1[5] = "a) Macaristan-Yunanistan";
                buton2[5] = "b) Polonya-Macaristan";
                buton3[5] = "c) Bulgaristan-Romanya";
                buton4[5] = "d) Romanya-Malta";

                buton1[6] = "a) Zidane";
                buton2[6] = "b) Carnovara";
                buton3[6] = "c) Nedvet";
                buton4[6] = "d) Ronaldinho";

                buton1[7] = "a) Barcelona";
                buton2[7] = "b) Sevilla";
                buton3[7] = "c) Espanyol";
                buton4[7] = "d) Real Madrid";

                buton1[8] = "a) Mehmet OKUR";
                buton2[8] = "b) İbrahim KUTLU AY";
                buton3[8] = "c) Hidayet TÜRKOĞLU";
                buton4[8] = "d) Mirsad TÜRKCAN";

                buton1[9] = "a) Miami Heat";
                buton2[9] = "b) Utah Jazz";
                buton3[9] = "c) Chichago Bulls";
                buton4[9] = "d) Detroid Pistons";

                buton1[10] = "a) Gençlerbirliği";
                buton2[10] = "b) İstanbulspor";
                buton3[10] = "c) İstanbul B.B Spor";
                buton4[10] = "d) Kasımpaşa";

                buton1[11] = "a) Yunanistan";
                buton2[11] = "b) Norveç";
                buton3[11] = "c) Moldova";
                buton4[11] = "d) İsveç";

                buton1[12] = "a) Yasamın Kıyısında";
                buton2[12] = "b) Tarantiono";
                buton3[12] = "c) Coen Biraderler";
                buton4[12] = "d) 4 Ay 3 Hafta 2 Gün";

                buton1[13] = "a) Yüksel Aksu";
                buton2[13] = "b) Julian Schabel";
                buton3[13] = "c) Osman Sınav";
                buton4[13] = "d) Fatih Akın";

                buton1[14] = "a) Kaka";
                buton2[14] = "b) Pirlo";
                buton3[14] = "c) İnzaghi";
                buton4[14] = "d) gattuso";

                buton1[15] = "a) Elena Demetieve";
                buton2[15] = "b) Aravane Reazi";
                buton3[15] = "c) Maria Sharapova";
                buton4[15] = "d) Venüs Williams";

                buton1[16] = "a) Hilmi Yavuz";
                buton2[16] = "b) Sezai KArakoç";
                buton3[16] = "c) Gülten Dayıoğlu";
                buton4[16] = "d) Fazıl Hüsnü Dağlarca";

                buton1[17] = "a) Cenneti Beklerken";
                buton2[17] = "b) Dondurmam Gaymak";
                buton3[17] = "c) Takva";
                buton4[17] = "d) Beyneminel";

                buton1[18] = "a) 14";
                buton2[18] = "b) 15";
                buton3[18] = "c) 16";
                buton4[18] = "d) 18";

                buton1[19] = "a) Tevekkül";
                buton2[19] = "b) Tefekkül";
                buton3[19] = "c) Teesür";
                buton4[19] = "d) Tedbir";

                buton1[20] = "a) Zekat";
                buton2[20] = "b) Sadaka";
                buton3[20] = "c) Fidye";
                buton4[20] = "d) Hosgörü";

                buton1[21] = "a) Namaz Kılamaz";
                buton2[21] = "b) Habeyi Tavaf Edemez";
                buton3[21] = "c) Kuranı Tutamaz";
                buton4[21] = "d) Hepsi";

                buton1[22] = "a) Almanya";
                buton2[22] = "b) Fransa";
                buton3[22] = "c) İngiltere";
                buton4[22] = "d) İtalya";

                buton1[23] = "a) Harddisk";
                buton2[23] = "b) Ram";
                buton3[23] = "c) Anakart";
                buton4[23] = "d) İşlemci";

                buton1[24] = "a) Kütahya";
                buton2[24] = "b) Bursa";
                buton3[24] = "c) Ankara";
                buton4[24] = "d) İzmit";

                buton1[25] = "a) Sony";
                buton2[25] = "b) Windows";
                buton3[25] = "c) Microsoft";
                buton4[25] = "d) Wii";

                buton1[26] = "a) Atom";
                buton2[26] = "b) Organ";
                buton3[26] = "c) Doku";
                buton4[26] = "d) Hücre";

                buton1[27] = "a) Basketbol";
                buton2[27] = "b) Futbol";
                buton3[27] = "c) Tenis";
                buton4[27] = "d) Voleybol";

                buton1[28] = "a) Faranjit";
                buton2[28] = "b) Sünizit";
                buton3[28] = "c) Grip";
                buton4[28] = "d) Nezle";

                buton1[29] = "a) Alyuvar";
                buton2[29] = "b) Akyuvar";
                buton3[29] = "c) Fosfat";
                buton4[29] = "d) Hemoglobin";

                buton1[30] = "a) Denizde";
                buton2[30] = "b) Karada";
                buton3[30] = "c) Hayvan Vücudunda";
                buton4[30] = "d) İnsan Vücudunda";

                buton1[31] = "a) Tarih";
                buton2[31] = "b) Matematik";
                buton3[31] = "c) Biyoloji";
                buton4[31] = "d) Kimya";

                buton1[32] = "a) Japonya";
                buton2[32] = "b) Çin";
                buton3[32] = "c) Kore";
                buton4[32] = "d) Almanya";

                buton1[33] = "a) Balıkesir";
                buton2[33] = "b) İzmir";
                buton3[33] = "c) Ankara";
                buton4[33] = "d) Konya";

                buton1[34] = "a) Line Good";
                buton2[34] = "b) Like Good";
                buton3[34] = "c) Life is Good";
                buton4[34] = "d) Line Great";

                buton1[35] = "a) Saka";
                buton2[35] = "b) Bülbül";
                buton3[35] = "c) Kanarya";
                buton4[35] = "d) Papağan";

                buton1[36] = "a) Bakara Suresi";
                buton2[36] = "b) Fatiha Suresi";
                buton3[36] = "c) Yasin Suresi";
                buton4[36] = "d) Nas Suresi";

                buton1[37] = "a) 49";
                buton2[37] = "b) 59";
                buton3[37] = "c) 69";
                buton4[37] = "d) 79";

                buton1[38] = "a) Klinik";
                buton2[38] = "b) Poliklinik";
                buton3[38] = "c) Revir";
                buton4[38] = "d) Muayehane";

                buton1[39] = "a) Atar Damar";
                buton2[39] = "b) Toplar Damar";
                buton3[39] = "c) Aort Damarı";
                buton4[39] = "d) Toplayan Damar";

                buton1[40] = "a) 16";
                buton2[40] = "b) 26";
                buton3[40] = "c) 36";
                buton4[40] = "d) 46";

                buton1[41] = "a) Siyah";
                buton2[41] = "b) Beyaz";
                buton3[41] = "c) Kırmızı";
                buton4[41] = "d) Yeşil";

                buton1[42] = "a) Kalp";
                buton2[42] = "b) Böbrek";
                buton3[42] = "c) Karaciğer";
                buton4[42] = "d) Akciğer";

                buton1[43] = "a) 19";
                buton2[43] = "b) 29";
                buton3[43] = "c) 39";
                buton4[43] = "d) 49";

                buton1[44] = "a) 2,34";
                buton2[44] = "b) 2,54";
                buton3[44] = "c) 2,74";
                buton4[44] = "d) 2,44";

                buton1[45] = "a) Patlıcan";
                buton2[45] = "b) Patates";
                buton3[45] = "c) Soğan";
                buton4[45] = "d) Pırasa";

                buton1[46] = "a) Dahiliye";
                buton2[46] = "b) Kardiyoloji";
                buton3[46] = "c) Nüroloji";
                buton4[46] = "d) Onkoloji";

                buton1[47] = "a) Amerika";
                buton2[47] = "b) Kore";
                buton3[47] = "c) Çin";
                buton4[47] = "d) Japonya";

                buton1[48] = "a) Translatör";
                buton2[48] = "b) Transistör";
                buton3[48] = "c) Diyot";
                buton4[48] = "d) Bobin";
                
                label1.Visible = false;
                button1.Visible = false;
                button2.Visible = false;
                button3.Visible = true;
                button4.Visible = true;
                button5.Visible = true;
                button6.Visible = true;
                button7.Visible = true;
                button9.Visible = true;
                label2.Visible = true;

                dogrucevapverince(); // ilk soru gelmesi için...
        }

Programın çalışması sırasında oluşan bazı ekran görüntüleri aşağıdaki gibidir. 1. soruya doğru cevap verildikten sonraki bir görüntü.



















İlerleyen sorulardan bir görüntü. Hala zaman kısıtlaması var.




















İlerleyen sorulardan bir örnek görüntü. 30000 TL kazanılmış durumda.




















2 Ocak 2014 Perşembe

Veritabanı Ders Uygulamaları - 11... Structın Veritabanı Bağlantılarında Kullanımı...

Yaptığımız uygulamalarda veritabanı bağlantılarını metodlar kullanarak yapabiliyoruz... İşlem kolaylığı açısından metodlar her zaman kullanışlı olmaktadır... Ama unutmamak lazım ki struct kullanarak bilgisayarımızın performansını artırabiliriz... 100 - 200 satırın olduğu bir veritabanı için çok bir farklılık göremeyebilirsiniz... Ama 10000 - 20000 verinin olduğu bir programda performans önemlidir... Struct tam da veritabanı bağlantıları için istediğimiz olay değildir aslında... Classları kullanmak daha mantıklı olacaktır... Kod kalabalıklığını kaldırmak ve erişilebilirliği daha rahat sağlamak için Classları daha sonraki örneklerimizde kullanacağız... 
Bu örneğimizde ise struct kullanımına bir örnek daha vermiş olacağız... Dosya açma, kapatma, silme gibi temel işlemleri struct üzerinden yapacağımız gibi, aynı zamanda struct içerisinde metodları kullanacağız... 

1 - Öncelikle okul adında aşağıdaki veritabanımızı hazırlıyoruz... Bu veritabanını daha önce defalarca kullandık...










2 - Form tasarımımız sol taraftaki gibi olacaktır... Program çalıştığında da sağ taraftaki gibi olacaktır...

3 - Database komutlarımız için using kısmında oledb tanımlamasını yapınız...

4 - Veritaban adında bir tane struct tanımlaması yapınız... 4-9 arasındaki maddelerde yazan bütün komutları struct içerisinde yapacaksınız...  baglanti ve komut adında iki tane public erişim türünde değişkenimizi tanımlayınız... baglanti oledbconnection, komut oledbcommand sınıf türünde olacaktır... 

5 - Structımızın ilk metodu olarak ac adında veritabanını çağıracağımız ve açacağımız bir metod tanımlayacağız... Bu metodu string bir parametre alacak şekilde tanımlayınız... Bağlantıları kullandığınız değişkenlere göre ayarlanacak şekilde aşağıdaki gibi yapabilirsiniz...

baglanti = new OleDbConnection("Provider=Microsoft.Jet.Oledb.4.0; Data Source="+veritabanadi+".mdb");
komut  = new OleDbCommand();
baglanti.Open();

Burada daha önce kullanmadığımız bir işlem yapıyoruz... Parametre ile gelen değişkenimizin içerisinde veritabanı dosyasının adını veriyoruz ve bunu veritabanıadı parametre değişkeni ile çağırıyoruz... Bu şu anlama geliyor... Farklı veritabanı dosyalarımızı da çağırabiliriz...  

6 - Bağlantıları ac adında bir metod ile struct içerisinde açtığımız gibi kapat adında bir metod ile de kapatacağız... Aşağıdaki metodu struct içerisinde yazınız...
public void kapat()
            {
                baglanti.Close();
            }

7 - Veritabanından silmek istediğimiz kişiler için bilgisil adında bir metodu struct içerisinde hazırlayacağız... Bunun için yine bir string parametre tanımlayacağız ve bu parametreye sorguyu göndereceğiz... Bu metodun içeriği aşağıdaki gibi olacaktır... Yalnız metodun  parametre değişkenini, commandTexte atamayı unutmayın...

komut.Connection = baglanti;
komut.CommandText = // Buraya parametre değişkenini yazınız...
komut.ExecuteNonQuery();


8 - Aşağıdaki metod tanımlamasını yapınız... Bu metod bize girdiğimiz isme karşılık diğer bilgilerini verdirecek... 
public void bilgiver ( string sorgu, string gelenisim, ListBox gelenlist)
            {

            }

Bu tanımlamada önemli bir kısım vardır... O da ListBox gelenlist parametre tanımlamasıdır... Daha önce böyle bir tanımlama yapmamıştık... Metodların, Classların, Structların içerisinde C# nesnelerini direkt adları ile kullanamıyoruz... Bir metodun içerisinde listbox1.items.add yazmaya çalıştığınızda hata verecektir... Çünkü bunlar ana programın parçalarıdır ve bu kısımlar da kullanılmalarına izin verilmemektedir... Ama kullanmak istediğimiz elemanı kendi sınıfında parametre olarak tanımladıktan sonra istediğimiz gibi kullanabiliyoruz... Burada Form1 de kullanmış olduğumuz listbox1 i istediğimiz gibi çağırıp kullanabileceğiz... gelenlist aslında bizim listbox1 nesnemiz olacaktır... 

9 - bilgiver metodumuzun içerisinde girilen ismi arattırıp veritabanından gelen isimler ile kıyaslayacağız... Eğer isim var ise gelenlist adındaki listbox parametremize ekleyeceğiz... Bu sayede ismin bilgileri listbox1 in içerisinde gözükmüş olacaktır...  Bunu daha önceki örneklerimizde defalarca yaptık... Yinede aşağıdakine benzer bir örnek ile işlemimizi yapabiliriz... 

komut.CommandText = // Buraya veritabanını sorgulayacak olan parametreyi yazın; 
komut.Connection = baglanti;
OleDbDataReader oku = komut.ExecuteReader();
while (oku.Read())
{
         if (// Buraya gelenisim ile veritabanındaki ismi kıyaslayacak komutu yazınız...)
        {  
               // gelenisim veritabanında var ise buraya listboxa eklenecek bilgileri sırası ile ekleyin...
               // ad, soyad, yas, numara bilgileri sırası ile eklensin...

        }
}
oku.Close();


10 - Structımızın içeriği bu metodla beraber bitmiş oldu... Şimdi sıra ara ve sil butonlarımızın içeriğini hazırlamakta... Bunun içinde ilk olarak ara butonumuzu hazırlayacağız... Veritaban adındaki structımızı bir değişken ile çağıralım... 
Örneğin veritaban veri = new veritaban();

11 - Veritabanımızı açmak için aşağıdaki komutu kullanalım... Benim veritabanı dosyamın adı okul olduğu için aşağıdaki komut ile bağlantıları açıyorum... 
veri.ac("okul");

12 - Aşağıdaki sorguyu bilgiver adındaki struct metoduna gönderelim... bilgiver isimli metoda 3 tane parametre tanımlamıştık... 
* Select * From ogrenci sorgusu ilk parametre olacaktır... 
* İsmi girdiğimiz textbox ikinci parametre olacaktır... İsmi büyük harfler ile gönderelim ki küçük - büyük harf karışımı olmasın...
* listbox1 de üçüncü parametremiz olacaktır... 

13 - Aşağıdaki komut ile de veritabanımızı kapatalım...
veri.kapat();

14 - Sil butonumuzu hazırlayalım... 10, 11 ve 13. maddelerdeki komutlar aynen bu buton içinde geçerli olacaktır... Yalnız 12. maddedeki gibi sorgumuzu göndermemiz gerekecektir... Bunun içinde textboxa girilen ismi silecek olan bir sorgu gönderiniz... 

15 - Uygulama bu işlem ile birlikte bitmiştir... Sizde bu uygulamaya veri ekleyecek ve veri düzenleyecek bir çalışma yapınız... 

31 Aralık 2013 Salı

Veritabanı Ders Uygulamaları - 10... Struct Kullanımı...

1 - isyeri adında aşağıdaki veritabanını oluşturun... 
Bu veritabanı için sadece yas alanını sayı olarak tanımlayınız... 

2 - Aşağıdaki gibi form sayfası oluşturunuz... 

3 - Program çalıştığı zaman aşağıdaki gibi bir sonuç verecektir... Bu sonucu struct kullanmadan da yapabiliriz ama struct bize performans açısından artı sağlamaktadır... Struct ile ilgili genel bilgi almak için tıklayınız...













4 - Kod kısmına geçelim... Veritabanı komutlarını kullanabilmek için Data.OleDb sınıfını çağıralım...

5 - isyeri adındaki veritabanımızı çağıralım... oledbconnection sınıfını kullanarak baglanti adında bir değişken tanımlayalım...

6 - Sql sorgulaması yaptırabilmek için komut adında oledbcommand sınıfına ait bir değişken tanımlayalım...

7 - Bir tane struct tanımlayalım... ad,soyad,sehir,yas,ulke adında değişkenler tanımlayalım...
Struct tanımlanırken aşağıdakine benzer bir örnek kullanılabilir... Bu yapı her yerde kullanılabilecek şekilde tanımlanmalıdır...
Struct agac
{
          public string yaprak;
          public string govde;
          public int meyvesayisi;
}

8 - Program açıldığın da listboxın içeriğini doldurabilmek için Form Load da komutları yazıyoruz...

9 - Veritabanı bağlantısını açıyoruz...

10 - Veritabanından bütün bilgileri, oku adında  oledbdatareader sınıfından tanımladığımız değişkene getiriyoruz...

11 - Bir while döngüsü ile oku değişkenimiz içindeki verileri okutuyoruz...
While (oku.Read) 
{
            // işlemler
}

12 - Bu while döngüsünün içerisinde işlemler kısmında öncelikle bir değişken tanımlayacağız... Bu değişken struct yapısını çağıracak ve onun özelliklerini kullanacaktır... 
Örneğin yukarıdaki struct için Agac govde = new Agac(); şeklinde tanımlanabilir...

13 - Oku değişkenimize almış olduğumuz bilgileri sırası ile structta tanımlamış olduğumuz değişkenlere atayacağız... 
Örneğin govde.yaprak = oku[0].ToString();  gibi...

14 - Yine bu while döngüsü içerisinde atamış olduğumuz değişkenleri listboxa ekliyoruz...
Örneğin listBox1.Items.Add(govde); gibi...

15 - Veritabanı bağlantısını kapatıyoruz... 

16 - Aşağıdaki metodu struct içerisine yazarak ToString metodunu eziyoruz... Çünkü struct a bilgiler alınırken nesne olarak alınıyor ve veritabanındaki bütün veriler ekleniyor... Bu durumda yazdırabilmek için metodu bir daha tanımlıyoruz... Çünkü sadece listbox içerisinde adları görmek istiyoruz...
public override string ToString()
            {
                return Ad; // listboxda etiketlenirken sadece Ad alanı ile etiketleniyorlar... 
            }

17 - Listboxda seçilenleri görmek için listboxın selectedindexchanged olayını kodlayacağız... 

18 - Seçili olan elemana ait verileri getirebilmek için aşağıdaki kodu listboxın içerisine yazıyoruz...
Agac secilinesne = (Agac)listBox1.SelectedItem;

19 - Labellarımıza sırası ile seçili olan nesnemizin değerlerini aktarıyoruz... 
label1.Text = secilinesne.yaprak;

Programımızı çalıştırıyoruz... Bu örnek ile struct yapısının neden kullanılması gerektiğini de öğrenmiş oluyoruz...
* Performans açısından avantajlı...
* Veritabanını sürekli olarak aç kapa yapmak zorunda değiliz...
* Struct ile tanımladığımız nesneleri istediğimiz gibi kullanabiliyoruz...  

Veritabanı Ders Uygulamaları - 3


30 Aralık 2013 Pazartesi

1 - Struct - Giriş...


Modülde ki teorik anlatımı ile struct yapısı aşağıdaki gibidir...
Nesne tabanlı programlama beş veri tipini destekler. Bunlar Class, Struct, Enum, Interface ve Delegate tipleridir. Bu öğrenme faaliyetinde Yapı (struct) veri tipini ele alacağız.

Aralarında mantıksal bir ilişki bulunan ama farklı türdeki verilerin bir arada bulunması gereken durumlarla karşılaşılabilir. İşte bu durumlarda belli bir grup verinin bir arada tutulması için oluşturulan yeni birime yapı (struct) denir.

Yapılar değer türündedir. Dolayısıyla belleğin yığın (stack) bölümünde tutulurlar.

Bellek kullanım bakımından yığın (stack) ve öbek (heap) olmak üzere ikiye ayrılır.

Yığın bölümünde veriler üst üste gelecek şekilde depolanırlar. Yeni bir veri eklendiğinde bu belleğin en üst bölgesine yerleştirilir. LIFO (Last In First Out) mantığına göre çalışır. Yani son giren ilk çıkar. Verilere erişim basit olduğu için hızlıdır.

Öbek kısmında ise boş bir alan oluşturulur ve veriler rastgele yerleştirilir. Verilere erişim karmaşık olduğundan daha yavaştır.

Değer türleri belleğin yığın (stack) bölümünde tutulurken; referans türler belleğin öbek (heap) bölümünde tutulur. Örneğin sınıflar(class) referans türünde olduklarından dolayı belleğin öbek (heap) bölümünde tutulur.

Yapıları tanımlamak için ‘struct’ anahtar sözcüğünü kullanırız. Bir yapının genel tanımlanma şekli aşağıdaki gibidir.
struct yapi-ismi
{
    yapi-elemanlari-listesi;
}

Genel tanımdan sonra söylenebilecek olan durum şudur... Structlar çok yoğun bir şekilde işlemciyi veya belleği yoracak olan durumlarda kullanılır... Çünkü kullanıldıktan sonra bellekten silinir... Böyle olunca sistemi yormaz... Onun dışında aslında classlardan her hangi bir farklılıkları yoktur... Hatta class kullananlar için struct kullanımı performans istemiyorsa gerekmektedir... 

Aşağıda basit bir örnek yapılmıştır... Bu örnek normalde struct kullanılmadan da rahatlıkla yapılabilir... Veri girişi için giris adında bir adet struct tanımlanmıştır... Structların içerisinde değişkenler tanımlanabildiği gibi metodlarda tanımlanabilir... 

Giris structın da tanımlanan goster adındaki metoda gelen bilgiler ekranda sonuc olarak gösterilmektedir... Structı çağırmak için yeni nesne tanımlaması kullanılmalıdır... 

giris gondermesaj = new giris();

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApplication5
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        struct giris
        {
            // Tanımlama sırasında public erişim seçeneği kullanılarak her yerden ulaşılması sağlanmaktadır... 
            public string goster(int no, string ad, string soyad, int yas)
            {
                string mesaj = "Numarası = " + no + "... Adı = " + ad + "... Soyadı = " + soyad + "... Yaşı =  " + yas + "..."; 
                return mesaj; // Structan geri dönecek olan bilgidir... 
            }
        }
        private void button1_Click(object sender, EventArgs e)
        {
            giris gondermesaj = new giris(); // Bir nesneyi çağırır gibi gondermesaj adında bir tanımlama yapıyoruz... 
            MessageBox.Show(gondermesaj.goster(int.Parse(textBox1.Text), textBox2.Text, textBox3.Text,    int.Parse(textBox4.Text))); // Bilgiler içerisinde sayı olanlar structa, int.parse ile gönderilmektedir...
        }
    }
}

Yine aynı şekilde yapılmış olan aşağıdaki örnekte ise struc içerisinde değişkenler tanımlanmıştır... Bu yapı içerisindeki değişkenlerde sırası ile çağrılmıştır... Bu kullanıma bakılırsa daha çok değişkenlerin karmaşasını ortadan kaldıran bir yapıdadır...

struct ogrenci
        {
            public string ad; // Her yerde kullanılması için Public tanımlama yapılmıştır... 
            public string soyad;
            public string sınıf;
            public int no;
          }
        ogrenci ogren = new ogrenci(); // ogren adında structı kullanacak yapı tanımlanıyor...
        private void Form1_Load(object sender, EventArgs e)
        {
            ogren.ad = "ibrahim"; // Structa bilgiler gönderiliyor...
            ogren.soyad = "delibalta";
            ogren.sınıf = "2-c";
            ogren.no = Convert.ToInt16("1453");
        }
        private void button1_Click(object sender, EventArgs e)
        {
            listBox1.Items.Add(ogren.ad);// Structa gönderilen bilgiler listboxda gösteriliyor...
            listBox1.Items.Add(ogren.soyad);
            listBox1.Items.Add(ogren.sınıf);
            listBox1.Items.Add(ogren.no);
        }

15 Aralık 2013 Pazar

Veritabanı - 12... Comboboxdan DataGridViewe Bilgi Getirmek...

Comboboxda yaptığımız tercihler önemlidir... Yaptığımız tercih işlemine göre programda bir şeylerin değişmesini isteriz... Hatta veritabanından bazı bilgilerin gelmesi veya veritabanına bilgi kaydetmeyi bile isteyebiliriz... Bu program parçasında veritabanın da olan tarih verilerine göre garanti süresi devam eden bilgisayar parçalarını göstereceğiz... Bunun için aşağıdaki veritabanını kullanacağız... 



Veritabanımızın adı bilsay, tablomuzun adı ise Stok olacaktır... 

Burada Alınan Tarih ve Garanti alanları bizim için önemli olacaktır... Alınan Tarih üzerine garanti süresini yıl olarak ekleyeceğiz... Çıkan tarih eğer şu anki tarihden daha büyük ise garanti süresi devam ettiği için datagridview de göstereceğiz... Ama bunu sadece stokta kalan ürünler için göstereceğiz... Bu durumda Kalan alanı = 0 olanlar için garanti süresine bakmayacağız... 

Programımızın Form sayfası aşağıdaki gibi olacaktır... Comboboxın listelerine program açılmadan Hepsi ve Garanti seçeneklerini ekleyelim... 

Program çalıştığı zaman aşağıdaki gibi bir görüntü olacaktır... 

Garanti seçimi yapıldıktan sonra aşağıdaki gibi gözükecektir... 

Programımızın kodları aşağıdaki gibidir;

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;

namespace WindowsFormsApplication4
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        OleDbConnection baglanti = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=bilsay.accdb");
        OleDbCommand komut = new OleDbCommand();
        OleDbDataAdapter da;
        DataSet ds = new DataSet();

        void doldurdatagridview1(string sorgu)
        {
            ds.Clear(); // Datagridview her doldurulduğunda bir önceki veriler gözükmemesi için temizleniyor...

            baglanti.Open();
            komut.CommandText = sorgu;
            komut.Connection = baglanti;

            da = new OleDbDataAdapter(komut);
            da.Fill(ds,"StokTablo"); // Burada kullanılan "StokTablo" ismi datagridview olaylarının hepsinde kullanılır...
            dataGridView1.DataSource = ds;
            dataGridView1.DataMember = "StokTablo";
            dataGridView1.Columns["Kimlik"].Visible = false; // Kimlik alanı datagridviewde gözükmesin...
            dataGridView1.Columns["Kalan"].Visible = false; // Kalan miktarı datagridviewde gözükmesin...
            baglanti.Close();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            doldurdatagridview1("Select * From Stok"); // Veritabanındaki bütün veriler gösteriliyor...
        }

        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (comboBox1.Text == "Garanti") // Garanti süresi devam edenler
                doldurdatagridview1("Select *  From Stok Where DateAdd('yyyy',[Garanti],[Alınan Tarih])>Now()  And [Kalan]<>0");
            else if (comboBox1.Text == "Hepsi") // Stokta olan ve olmayan hepsi gözüküyor...
                doldurdatagridview1("Select * From Stok"); 
        }

        private void button4_Click(object sender, EventArgs e)
        {
            Application.Exit(); // Programı tamamen sonlandırmak için kullanılır... 
        }
    }
}

Program kod satırında bazı önemli noktalar vardır. 
*  ds.Clear();
DataGridView içerisini temizleyen komuttur... Çünkü combobox her seçim yapıldığında DataGridView temizlenmelidir... Aksi takdirde veriler üst üste binecek ve hepsi gözükecektir...

*  dataGridView1.Columns["Kimlik"].Visible = false; 
DataGridView içerisinde verintabanın da olan alanlardan göstermek istemediğimiz olursa bu komut satırı ile göstermeyebiliriz... Kimlik alanı ve Kalan alanı veritabanın da olmasına rağmen DataGridView de gösterilmemektedir... 

* doldurdatagridview1("Select *  From Stok Where DateAdd('yyyy',[Garanti],[Alınan Tarih])>Now()  And [Kalan]<>0");
DateAdd komutu verilen tarihin üstüne istenilen kadar tarih eklemektedir... Buradan yyyy ifadesi yerine m veya d ifadesi kullanılırsa yıl yerine, ay veya gün eklenerek yeni tarih bulunabilmektedir... Now() ise bilgisayarın tarihini göstermektedir... Çıkan tarih ile bilgisayarın tarihi kıyaslanmaktadır... 

And ifadesi birden fazla şart olması durumunda kullanılmaktadır... Biz burada Stokta olmayan ürünleri göstermek istemediğimiz için [Kalan]<>0 ifadesini kullanmaktayız... <> ifadesi eşit değil anlamındadır... 

14 Aralık 2013 Cumartesi

Veritabanı - 11... Veritabanından Combobox a Bilgi Almak...

Access veri tabanında kayıtlı olan verilerimizden bazılarını Combobox a ekleyebiliriz... Yapmak istediğimiz uygulamada Access de bulunan sütunlardan bir tanesini tamamen Comboboxa ekleyeceğiz... Aynı zamanda Comboboxdan seçim yapıldığında da Richtextboxa seçime göre diğer sütundaki bilgilerin gelmesini sağlayacağız...  

Access veritabanını aşağıdaki gibi oluşturun... Tablomuzun ismi Yeniurun olacaktır... Veritabanı adımız ise Bilsay olacaktır... 


Aşağıdaki formu oluşturunuz... Formda bir tane Combobox, bir tane Richtextbox olacaktır... 

Kodlarımıza Form_Load olayından başlayacağız... Bu sayede form açıldığında Comboboxa veriler eklenmiş olacaktır... Bu işlemleri yaparken hem comboboxa verilerin çağrılması kısmında hemde richtextboxa verilerin çağrılması kısmında benzer işlemleri kullanacağımız için metod yöntemi ile bilgileri alacağız... 

Program çalıştığı zaman aşağıdaki gibi olacaktır... Comboboxa veritabanındaki bilgiler gelecektir... Comboboxdan seçim yapıldığında ise Richtextboxa bilgiler gelecektir...

Programımızın kodları aşağıdaki gibidir;

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.OleDb;

namespace WindowsFormsApplication6
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
         OleDbConnection baglanti = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=bilsay.accdb");
        OleDbCommand komut = new OleDbCommand();

        void veritabanisorgu(int gelenindex, string sorgu) // Metodumuz...
        {
            baglanti.Open();
            komut.CommandText = sorgu;
            komut.Connection = baglanti;

            OleDbDataReader oku = komut.ExecuteReader(); //Aldığımız bilgilerimizi depomuza atıyoruz...

            if (gelenindex==0) // Combobox için 0, Richtextbox için 1 değerini gönderiyoruz... 
            {
                while (oku.Read()) //Comboboxa verileri ekliyor...
                    comboBox1.Items.Add(oku[0].ToString());
            }
            else if (gelenindex==1) // Richtextbox için çalışacak kısım... 
            {
                while (oku.Read()) // Richtextbox a verileri ekliyor... 
                   richTextBox1.Text= oku[1].ToString();
            }
            oku.Close();
            baglanti.Close(); 
        }
        private void Form1_Load(object sender, EventArgs e) // Formun hemen girişinde comboboxa verileri ekliyoruz...
        {  // Metoda gönderirken sorgu ile birlikte bir de sütun numarasını gönderiyoruz... 
            veritabanisorgu(0,"SELECT * FROM Yeniurun");
        }

        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        { // comboboxdan seçim yapıldıktan sonra sorguyu gönderiyoruz... 
            veritabanisorgu(1,"SELECT * FROM Yeniurun Where [Adı]='" + comboBox1.Text + "'"); 
        }
    }
}