104
Tolga GÜYER 02.11.2011 VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

Embed Size (px)

Citation preview

Page 1: VB.Net Örnek Uygulamalar

Tolga GÜYER

02.11.2011

VB.Net Örnek Uygulamalar

Page 2: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 2

İçindekiler Uygulama No: 1 – Buraya Basmayın! ...................................................................................................... 4

Uygulama No: 2 – Vücut-Kitle İndeksi ..................................................................................................... 5

Uygulama No: 3 – Burçlar ........................................................................................................................ 7

Uygulama No: 4 – Not Hesapla................................................................................................................ 9

Uygulama No: 5 – Ders Ekle .................................................................................................................. 11

Uygulama No: 6 – Ders Kodu ................................................................................................................. 12

Uygulama No: 7 – Geçme Notu ............................................................................................................. 13

Uygulama No: 8 – Numara Oluştur ....................................................................................................... 15

Uygulama No: 9 – İl ve İlçe .................................................................................................................... 17

Uygulama No: 10 – Kimlik Ekle .............................................................................................................. 18

Uygulama No: 11 – E-Posta Adresi Oluşturma ...................................................................................... 20

Uygulama No: 12 – Olaylar-1 ................................................................................................................. 21

Uygulama No: 13 – Dört İşlem .............................................................................................................. 23

Uygulama No: 14 – Ardışık Sayıların Toplamı ........................................................................................ 24

Uygulama No: 15 – Mekanik Sayaç ....................................................................................................... 25

Uygulama No: 16 – Asal Sayı Testi ......................................................................................................... 26

Uygulama No: 17 – Pi Sayısının Yaklaşık Hesabı .................................................................................... 27

Uygulama No: 18 – Kuvvet ve Faktöriyel Hesabı ................................................................................... 29

Uygulama No: 19 – İç İçe Döngü ........................................................................................................... 30

Uygulama No: 20 – 153 Sayısı ............................................................................................................... 31

Uygulama No: 21 – Pisagor Üçlüleri ...................................................................................................... 32

Uygulama No: 22 – Collatz Problemi ..................................................................................................... 33

Uygulama No: 23 – Kaprekar Sayıları .................................................................................................... 35

Uygulama No: 24 – Kaprekar Sabiti ....................................................................................................... 37

Uygulama No: 25 – Mükemmel Sayılar ................................................................................................. 39

Uygulama No: 26 – Aritmetik Ortalama ve Standart Sapma ................................................................. 40

Uygulama No: 27 – Renk Aktarımı......................................................................................................... 42

Uygulama No: 28 – Fonksiyon Kullanımı 1 ............................................................................................ 44

Uygulama No: 29 – Fonksiyon Kullanımı 2 ............................................................................................ 45

Uygulama No: 30 – Palindrom ............................................................................................................... 48

Uygulama No: 31 – Palindrom/Liste ...................................................................................................... 49

Page 3: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 3

Uygulama No: 32 – Metin İstatistikleri .................................................................................................. 50

Uygulama No: 33 – Anahtarlı Metin Şifreleme ..................................................................................... 52

Uygulama No: 34 – Anahtarlı Metin Şifre Çözme .................................................................................. 54

Uygulama No: 35 – Veritabanı Uygulaması 1 ........................................................................................ 55

Uygulama No: 36 – Veritabanı Uygulaması 2 ........................................................................................ 57

Uygulama No: 37 – Veritabanı Uygulaması 3 ........................................................................................ 59

Uygulama No: 38 – Veritabanı Uygulaması 4 ........................................................................................ 60

Uygulama No: 39 – Veritabanı Uygulaması 5 ........................................................................................ 62

Uygulama No: 40 – Veritabanı Uygulaması 6 ........................................................................................ 65

VERİTABANI UYGULAMALARI HAKKINDA ÖZET BİLGİ ........................................................................... 75

Uygulama No: 41 – Veritabanı Uygulaması 7 ........................................................................................ 78

Uygulama No: 42 – Veritabanı Uygulaması 8 ........................................................................................ 81

Uygulama No: 43 – Anket ...................................................................................................................... 85

Uygulama No: 44 – Anket Göster .......................................................................................................... 88

Uygulama No: 45 – Veritabanı Uygulaması 9 ........................................................................................ 95

Uygulama No: 46 – Veritabanı Uygulaması 10 ...................................................................................... 97

Uygulama No: 47 – Veritabanı Uygulaması 11 .................................................................................... 100

Page 4: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 4

Uygulama No: 1 – Buraya Basmayın!

Açıklama : Metin kutusuna herhangi bir metin girilmemiş ise butona basıldığında tepki veriliyor.

Ekran Görüntüsü

Açıklamalı Kodlar Public Class Form1 Private Sub basma_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles basma.Click If giris.Text = "" Then ‘Eğer metin kutusu boş ise… MsgBox("Basmayın demiştim") basma.BackColor = Color.Red ‘Buton kırmızı oluyor. Else basma.BackColor = Color.GreenYellow ‘Aksi halde yeşile dönüyor. End If End Sub End Class

Page 5: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 5

Uygulama No: 2 – Vücut-Kitle İndeksi

Açıklama : Girilen ağırlık ve boy verilerine göre vücut-kitle indeksi belirleniyor ve kişinin girdiği ağırlık sınıfı görsel destekle sunuluyor.

Ekran Görüntüsü

Açıklamalı Kodlar Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click TxtVki.Text = TxtKilo.Text / (TxtBoy.Text * TxtBoy.Text) ‘Vücut kitle indeksi=ağırlık (kg) / boyun (m) karesi. If TxtVki.Text <= 19 Then TxtSonuc.Text = "Zayıf" PictureBox1.ImageLocation = "zayif.jpg" End If

Page 6: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 6

If TxtVki.Text >= 20 And TxtVki.Text < 25 Then TxtSonuc.Text = "İdeal sınırlarda" PictureBox1.ImageLocation = "ideal.jpg" End If If TxtVki.Text >= 25 And TxtVki.Text < 30 Then TxtSonuc.Text = "Hafif şişman" PictureBox1.ImageLocation = "hafif_sisman.jpg" End If If TxtVki.Text >= 30 And TxtVki.Text < 35 Then TxtSonuc.Text = "Şişman" PictureBox1.ImageLocation = "sisman.jpg" End If If TxtVki.Text >= 35 And TxtVki.Text < 45 Then TxtSonuc.Text = "Sağlık açısından önemli" PictureBox1.ImageLocation = "saglik_acisindan_tehlike.jpg" End If If TxtVki.Text >= 45 And TxtVki.Text < 50 Then TxtSonuc.Text = "Aşırı şişman" PictureBox1.ImageLocation = "cok_sisman.jpg" End If If TxtVki.Text >= 50 Then TxtSonuc.Text = "Morbid (ölümcül) şişman" PictureBox1.ImageLocation = "morbid.jpg" End If End Sub End Class

Page 7: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 7

Uygulama No: 3 – Burçlar

Açıklama : Date-Time Picker kontrolünden seçilen tarihe göre kişinin burcunun ne olduğu belirleniyor ve görsel destekle sunuluyor.

Ekran Görüntüsü

Açıklamalı Kodlar Public Class Form1 Dim gun, ay As Integer Private Sub DateTimePicker1_ValueChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles DateTimePicker1.ValueChanged gun = DateTimePicker1.Value.Day ‘Sadece gün bilgisi alınıyor. ay = DateTimePicker1.Value.Month ‘Sadece ay bilgisi alınıyor. If (ay = 12 And gun >= 23) Or (ay = 1 And gun <= 20) Then TxtBurc.Text = "OĞLAK" PictureBox1.ImageLocation = "oglak.jpg" End If If (ay = 9 And gun >= 22) Or (ay = 10 And gun <= 23) Then TxtBurc.Text = "TERAZİ" PictureBox1.ImageLocation = "terazi.jpg" End If If (ay = 1 And gun >= 21) Or (ay = 2 And gun <= 19) Then TxtBurc.Text = "KOVA" PictureBox1.ImageLocation = "kova.jpg" End If If (ay = 2 And gun >= 20) Or (ay = 3 And gun <= 20) Then TxtBurc.Text = "BALIK" PictureBox1.ImageLocation = "balik.jpg" End If

Page 8: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 8

If (ay = 3 And gun >= 21) Or (ay = 4 And gun <= 20) Then TxtBurc.Text = "KOÇ" PictureBox1.ImageLocation = "koc.jpg" End If If (ay = 4 And gun >= 21) Or (ay = 5 And gun <= 21) Then TxtBurc.Text = "BOĞA" PictureBox1.ImageLocation = "boga.jpg" End If If (ay = 5 And gun >= 22) Or (ay = 6 And gun <= 21) Then TxtBurc.Text = "İKİZLER" PictureBox1.ImageLocation = "ikizler.jpg" End If If (ay = 6 And gun >= 22) Or (ay = 7 And gun <= 23) Then TxtBurc.Text = "YENGEÇ" PictureBox1.ImageLocation = "yengec.jpg" End If If (ay = 7 And gun >= 24) Or (ay = 8 And gun <= 23) Then TxtBurc.Text = "ASLAN" PictureBox1.ImageLocation = "aslan.jpg" End If If (ay = 8 And gun >= 24) Or (ay = 9 And gun <= 23) Then TxtBurc.Text = "BAŞAK" PictureBox1.ImageLocation = "basak.jpg" End If If (ay = 10 And gun >= 23) Or (ay = 11 And gun <= 22) Then TxtBurc.Text = "AKREP" PictureBox1.ImageLocation = "akrep.jpg" End If If (ay = 11 And gun >= 23) Or (ay = 12 And gun <= 22) Then TxtBurc.Text = "YAY" PictureBox1.ImageLocation = "yay.jpg" End If End Sub End Class

Page 9: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 9

Uygulama No: 4 – Not Hesapla

Açıklama : Girilen ara sınav ve genel sınav notları kullanılarak geçme notu hesaplanıyor ve bu geçme notuna karşılık gelen harf notu belirleniyor.

Ekran Görüntüsü

Açıklamalı Kodlar Public Class Form1 Dim vize, final As Integer Dim gecme As Double Private Sub Txt_Final_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles Txt_Final.TextChanged ‘Final notunun girildiği metin kutusu değişirken… If Txt_Final.Text <> "" And IsNumeric(Txt_Final.Text) Then ‘Eğer final metin kutusu dolu ve sayısal veri ise… If Txt_Final.Text > 100 Then ‘Eğer girilen final değeri 100 den büyük ise… MsgBox("Hatalı Giriş!") Txt_Final.Clear() TxtGecme.Clear() TxtHarf.Clear() TxtGecme.BackColor = Color.White Else ‘Aksi halde, yani final 100 den küçük… If Txt_Vize.Text <> "" And IsNumeric(Txt_Vize.Text) Then vize = Txt_Vize.Text final = Txt_Final.Text gecme = 2 * vize / 5 + 3 * final / 5 ‘vizenin %40’ı + finalin %60’ı TxtGecme.Text = gecme If gecme >= 50 Then TxtGecme.BackColor = Color.GreenYellow Else TxtGecme.BackColor = Color.Red End If End If Else ‘Ya final alanı boş, ya da girilen değer sayısal değil. TxtGecme.Clear()

Page 10: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 10

TxtHarf.Clear() TxtGecme.BackColor = Color.White End If End Sub Private Sub Txt_Vize_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles Txt_Vize.TextChanged ‘Aynı şeyler vize notu için de yapılıyor. If Txt_Vize.Text <> "" And IsNumeric(Txt_Vize.Text) Then If Txt_Vize.Text > 100 Then MsgBox("Hatalı Giriş!") Txt_Vize.Clear() TxtGecme.Clear() TxtHarf.Clear() TxtGecme.BackColor = Color.White Else If Txt_Final.Text <> "" And IsNumeric(Txt_Final.Text) Then vize = Txt_Vize.Text final = Txt_Final.Text gecme = 2 * vize / 5 + 3 * final / 5 TxtGecme.Text = gecme If gecme >= 50 Then TxtGecme.BackColor = Color.GreenYellow Else TxtGecme.BackColor = Color.Red End If End If Else TxtGecme.Clear() TxtHarf.Clear() TxtGecme.BackColor = Color.White End If End Sub Private Sub TxtGecme_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles TxtGecme.TextChanged ‘Geçme notu alanı değişirken harf notu hesaplanıyor. If TxtGecme.Text <> "" Then If TxtGecme.Text >= 90 Then TxtHarf.Text = "AA" ElseIf TxtGecme.Text >= 80 Then TxtHarf.Text = "BA" ElseIf TxtGecme.Text >= 70 Then TxtHarf.Text = "BB" ElseIf TxtGecme.Text >= 60 Then TxtHarf.Text = "CB" ElseIf TxtGecme.Text >= 50 Then TxtHarf.Text = "CC" ElseIf TxtGecme.Text >= 40 Then TxtHarf.Text = "DC" ElseIf TxtGecme.Text >= 30 Then TxtHarf.Text = "DD" ElseIf TxtGecme.Text >= 20 Then TxtHarf.Text = "FD" Else TxtHarf.Text = "FF" End If End If End Sub End Class

Page 11: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 11

Uygulama No: 5 – Ders Ekle

Açıklama : İki adet metin kutusundan alınan bilgilerle oluşturulan ders kodu ve adı liste kutusuna ekleniyor. Daha sonra liste kutusundan seçilen ders silinebiliyor.

Ekran Görüntüsü

Açıklamalı Kodlar Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click ListBox1.Items.Add(TextBox1.Text + " " + TextBox2.Text) ‘Ders kodu ve adı metinleri birleştirilerek liste kutusuna aktarılıyor. End Sub Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click ListBox1.Items.Clear() End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click ListBox1.Items.Remove(ListBox1.SelectedItem) ‘Liste kutusundan seçili olan seçenek siliniyor. End Sub End Class

Page 12: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 12

Uygulama No: 6 – Ders Kodu

Açıklama : Metin kutusuna girilen ders kodu ve adı ayrıştırılarak iki ayrı liste kutusuna ekleniyor.

Ekran Görüntüsü

Açıklamalı Kodlar Public Class Form1 Dim dersin_kodu, dersin_adi, ders As String Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click ders = TextBox1.Text dersin_kodu = Strings.UCase(Strings.Left(ders, 6)) ‘Ders kodu, büyük harfe dönüştürülen metnin soldan 6 karakteri alınarak ayrıştırılıyor. dersin_adi = Strings.Right(ders, Strings.Len(ders) - 6) ‘Ders adı, metnin sağdan uzunluğu-6 karakteri alınarak ayrıştırılıyor. ListBox1.Items.Add(dersin_kodu) ListBox2.Items.Add(dersin_adi) TextBox1.Clear() End Sub End Class

Page 13: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 13

Uygulama No: 7 – Geçme Notu

Açıklama : Metin kutusuna girilen numara bilgisi kullanılarak öğrencinin giriş yılı ve fakültesi belirleniyor. Arasınav ve Final notları kullanılarak geçme notu ve bu nota karşılık gelen harf notu hesaplanıyor.

Ekran Görüntüsü

Açıklamalı Kodlar Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim Notu As Integer Dim Yil As String Dim Fak, numara As String Yil = Strings.Left(TextBox1.Text, 2) ‘Eğer giriş yılının son iki hanesi 50’den küçükse 2000’li yıllar olduğunu anla ve başına 20 ekle. Aksi halde başına 19 ekle: If Yil < 50 Then ListBox1.Items.Add("20" + Yil) Else ListBox1.Items.Add("19" + Yil) End If numara = TextBox1.Text Fak = Strings.Mid(numara, 3, 2) If Fak = "01" Then ListBox2.Items.Add("Mühendislik") ElseIf Fak = "02" Then ListBox2.Items.Add("Eğitim Bil.") ElseIf Fak = "03" Then ListBox2.Items.Add("Hukuk") ElseIf Fak = "04" Then ListBox2.Items.Add("iletişim") Else ListBox2.Items.Add("Diğerleri") End If ListBox3.Items.Add(TextBox2.Text + " " + TextBox3.Text) Notu = (TextBox4.Text * 0.4) + (TextBox5.Text * 0.6)

Page 14: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 14

ListBox4.Items.Add(Notu) If Notu <= 100 And Notu > 89 Then ListBox5.Items.Add("AA") ElseIf Notu > 84 Then ListBox5.Items.Add("BA") ElseIf Notu > 79 Then ListBox5.Items.Add("BB") ElseIf Notu > 74 Then ListBox5.Items.Add("CB") ElseIf Notu > 69 Then ListBox5.Items.Add("CC") ElseIf Notu > 64 Then ListBox5.Items.Add("DC") ElseIf Notu > 59 Then ListBox5.Items.Add("DD") ElseIf Notu > 49 Then ListBox5.Items.Add("FD") ElseIf Notu < 50 Then ListBox5.Items.Add("FF") End If TextBox1.Text = "" TextBox2.Text = "" TextBox3.Text = "" TextBox4.Text = "" TextBox5.Text = "" TextBox1.Focus() End Sub End Class

Page 15: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 15

Uygulama No: 8 – Numara Oluştur

Açıklama : Açılan kutudan (ComboBox) seçilen fakülteye göre öğrenci numarası oluşturuluyor. Giriş yılı sistem zamanından alınıyor ve her fakülte için sıra numaraları ayrı sayaçlarda tutuluyor.

Ekran Görüntüsü

Açıklamalı Kodlar Public Class Form1 Dim fakulte_adi, fakulte_kodu, sira, numara As String Dim egt_sayac, muh_sayac, huk_sayac, tip_sayac, sayac As Integer Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged fakulte_adi = ComboBox1.Text If fakulte_adi = "Eğitim Bilimleri Fakültesi" Then fakulte_kodu = "04" egt_sayac = egt_sayac + 1 sayac = egt_sayac ElseIf fakulte_adi = "Mühendislik Fakültesi" Then fakulte_kodu = "03" muh_sayac = muh_sayac + 1 sayac = muh_sayac ElseIf fakulte_adi = "Hukuk Fakültesi" Then fakulte_kodu = "02" huk_sayac = huk_sayac + 1 sayac = huk_sayac ElseIf fakulte_adi = "Tıp Fakültesi" Then fakulte_kodu = "01" tip_sayac = tip_sayac + 1 sayac = tip_sayac End If ‘Sıra numarasının basamak sayısına göre başına ekleyeceği sıfır sayısına karar veriyor: If Strings.Len(sayac.ToString) = 1 Then sira = "000" + sayac.ToString ElseIf Strings.Len(sayac.ToString) = 2 Then sira = "00" + sayac.ToString ElseIf Strings.Len(sayac.ToString) = 3 Then sira = "0" + sayac.ToString Else sira = sayac.ToString

Page 16: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 16

End If numara = Strings.Right(System.DateTime.Today.Year, 2) + fakulte_kodu + sira ‘Sistem saatinden bugünün tarihinin yılı alınıyor ve bunun sağdan iki basamağı ayrıştırılıyor. TextBox3.Text = numara End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click TextBox1.Clear() TextBox2.Clear() TextBox3.Clear() TextBox1.Focus() End Sub End Class

Page 17: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 17

Uygulama No: 9 – İl ve İlçe

Açıklama : İl için tanımlanan açılan kutudan seçilen il adına göre ilçe için tanımlanan açılan kutunun içeriği otomatik olarak dolduruluyor.

Ekran Görüntüsü

Açıklamalı Kodlar Public Class Form1 Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged ComboBox2.Items.Clear() If ComboBox1.Text = "Ankara" Then ComboBox2.Items.Add("Çankaya") ComboBox2.Items.Add("Etimesgut") ComboBox2.Items.Add("Keçiören") ComboBox2.Items.Add("Yenimahalle") ComboBox2.Items.Add("Mamak") ElseIf ComboBox1.Text = "İstanbul" Then ComboBox2.Items.Add("Beşiktaş") ComboBox2.Items.Add("Şişli") ComboBox2.Items.Add("Eminönü") ComboBox2.Items.Add("Beykoz") ComboBox2.Items.Add("Adalar") ElseIf ComboBox1.Text = "İzmir" Then ComboBox2.Items.Add("Karşıyaka") ComboBox2.Items.Add("Bornova") ComboBox2.Items.Add("Güzelyalı") ComboBox2.Items.Add("Buca") ComboBox2.Items.Add("Konak") End If End Sub End Class

Page 18: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 18

Uygulama No: 10 – Kimlik Ekle

Uygulama No : 08 Uygulama Adı : Kimlik Ekle Açıklama : 1. Alanların her üçünün de girilmiş olması gerekiyor. Aksi halde uyarı mesajı

veriliyor. 2. Kimlik numarası 11 hane olmazsa uyarı mesajı veriliyor. 3. Cinsiyet Kadın seçilirse Askerlik Durumu pasif konuma geçiyor. 4. Bilgileri Ekle butonuna basıldığında bilgiler liste kutusuna alt alta ekleniyor.

Ekran Görüntüsü

Açıklamalı Kodlar Public Class Form1 Dim cinsiyet, ask As String Private Sub Radio_kadin_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Radio_kadin.Click GroupBox2.Enabled = False ‘Grup kutusu pasifize ediliyor. Dolayısıyla üzerindeki radyo düğmeleri de pasif hale gelmiş oluyor. End Sub Private Sub Radio_erkek_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Radio_erkek.Click GroupBox2.Enabled = True End Sub Private Sub Btn_ekle_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btn_ekle.Click If Strings.Trim(Txt_ad.Text) <> "" And Strings.Trim(Txt_soyad.Text) <> "" And Strings.Trim(Txt_kimlik.Text) <> "" Then If Strings.Trim(Strings.Len(Txt_kimlik.Text)) <> 11 Then MsgBox("Kimlik Numarası uygun girilmedi") Exit Sub End If

Page 19: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 19

ListBox1.Items.Add("Adı Soyadı: " + Txt_ad.Text + " " + Txt_soyad.Text) ListBox1.Items.Add("Kimlik No : " + Txt_kimlik.Text) If Radio_erkek.Checked = True Then cinsiyet = "Erkek" Else cinsiyet = "Kadın" End If ListBox1.Items.Add("Cinsiyeti : " + cinsiyet) If Radio_erkek.Checked = True Then If Radio_as1.Checked = True Then ask = "Yapmış" ElseIf Radio_as2.Checked = True Then ask = "Tecilli" Else ask = "Muaf" End If ListBox1.Items.Add("Askerlik Durumu : " + ask) End If ListBox1.Items.Add("********************************************") Txt_ad.Clear() Txt_kimlik.Clear() Txt_soyad.Clear() Txt_ad.Focus() Else MsgBox("Alanların hepsi girilmemiş!") End If End Sub End Class

Page 20: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 20

Uygulama No: 11 – E-Posta Adresi Oluşturma

Açıklama : Butona basıldığında kişinin adının ilk harfi ile soyadı birleştiriliyor, ComboBox’dan seçilen üniversiteye göre e-posta adresi otomatik olarak oluşturuluyor.

Ekran Görüntüsü

Açıklamalı Kodlar Public Class Form1 Dim eposta, alan As String Dim k As Byte Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click k = Strings.InStr(Cmb_universite.Text, " ") 'Üniversite adındaki ilk boşluğun konumu. alan = Strings.Mid(Cmb_universite.Text, 1, k - 1) eposta = Strings.LCase(Strings.Left(Txt_ad.Text, 1) & "." & Txt_soyad.Text & "@" & alan & ".edu.tr") 'Aşağıda, metin içersinden Türkçe harfler dönüştürülüyor. 'Örneğin çetin => cetin gibi. eposta = Strings.Replace(eposta, "ş", "s", 1) eposta = Strings.Replace(eposta, "ğ", "g", 1) eposta = Strings.Replace(eposta, "ö", "o", 1) eposta = Strings.Replace(eposta, "ü", "u", 1) eposta = Strings.Replace(eposta, "ç", "c", 1) eposta = Strings.Replace(eposta, "ı", "i", 1) Txt_eposta.Text = eposta End Sub End Class

Page 21: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 21

Uygulama No: 12 – Olaylar-1

Açıklama : Radyo düğmelerinin ve işaretleme kutularının tıklama olayları liste kutusuna ekleniyor. Sil butonu, liste kutusundan seçilen kayıt(lar)ı siliyor.

Ekran Görüntüsü

Açıklamalı Kodlar Public Class Form1 Dim i As Byte Private Sub secenek1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles secenek1.Click ListBox1.Items.Add(secenek1.Text + " seçildi") End Sub Private Sub secenek2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles secenek2.Click ListBox1.Items.Add(secenek2.Text + " seçildi") End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnSil.Click If ListBox1.SelectedItems.Count <> 0 Then ‘En az bir seçilmiş seçenek varsa. For i = 0 To ListBox1.SelectedItems.Count - 1 ListBox1.Items.Remove(ListBox1.SelectedItem) Next End If End Sub Private Sub secim1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles secim1.Click If secim1.Checked = True Then ListBox1.Items.Add(secim1.Text + " işaretlendi") Else ListBox1.Items.Add(secim1.Text + " işareti kaldırıldı") End If End Sub

Page 22: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 22

Private Sub secim2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles secim2.Click If secim2.Checked = True Then ListBox1.Items.Add(secim2.Text + " işaretlendi") Else ListBox1.Items.Add(secim2.Text + " işareti kaldırıldı") End If End Sub End Class

Page 23: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 23

Uygulama No: 13 – Dört İşlem

Açıklama : İki sayı için seçilen işleme göre hesap yapılıyor.

Ekran Görüntüsü

Açıklamalı Kodlar Public Class Form1 Dim s1, s2 As Integer Dim s As Double Private Sub hesapla_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles hesapla.Click s1 = sayi1.Text s2 = sayi2.Text If topla.Checked = True Then s = s1 + s2 ElseIf cikar.Checked = True Then s = s1 - s2 ElseIf carp.Checked = True Then s = s1 * s2 ElseIf bol.Checked = True And s2 <> 0 Then ‘Sıfıra bölme yapmasın. s = s1 / s2 End If sonuc.Text = s End Sub End Class

Page 24: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 24

Uygulama No: 14 – Ardışık Sayıların Toplamı

Açıklama : For-Next döngüsünün kullanımına ilişkin basit bir örnek.

Ekran Görüntüsü

Açıklamalı Kodlar Public Class Form1 Private Sub BtnToplam_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnToplam.Click Dim sayac, toplam As Integer toplam = 0 For sayac = TxtBaslangic.Text To TxtBitis.Text toplam = toplam + sayac Next MsgBox(toplam) End Sub End Class

Page 25: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 25

Uygulama No: 15 – Mekanik Sayaç

Açıklama : For-Next döngüsünün iç içe kullanımına ilişkin basit bir örnek.

Ekran Görüntüsü

Açıklamalı Kodlar Public Class Form1 Private Sub BtnBaslat_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnBaslat.Click For basamak1 = 0 To 9 LblB1.Text = basamak1 For bekle = 0 To 10000000 ‘Her adımda beklemeyi sağlar. Next LblB1.Refresh()‘Etiketin (Label) tazelenmesi. Yeni sayıyı her adımda göstermesi için gereklidir. For basamak2 = 0 To 9 LblB2.Text = basamak2 For bekle = 0 To 10000000 Next LblB2.Refresh() For basamak3 = 0 To 9 LblB3.Text = basamak3 For bekle = 0 To 10000000 Next LblB3.Refresh() Next Next Next End Sub End Class

Page 26: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 26

Uygulama No: 16 – Asal Sayı Testi

Açıklama : Sayı asal ise “Asaldır” mesajı veriliyor. Aksi halde sayının ilk böleni gösteriliyor.

Ekran Görüntüsü

Açıklamalı Kodlar Public Class Form1 Private Sub BtnAsalmi_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnAsalmi.Click Dim asalmi As Boolean = True Dim say As UInt64 ‘En büyük tamsayı türü. For say = 2 To TxtSayi.Text / 2 ‘Sayının yarısına kadar bölen araştırılacak. If TxtSayi.Text Mod say = 0 Then ‘Eğer tam bölüyor ise… asalmi = False Exit For ‘Daha fazla araştırmaya gerek yok. End If Next If asalmi = True Then ‘Demekki yukarıdaki koşula hiç girmemiş. MsgBox("ASALDIR") Else : MsgBox("ASAL DEĞİLDİR. " & say & " sayısı bu sayıyı böler.") End If End Sub End Class

Page 27: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 27

Uygulama No: 17 – Pi Sayısının Yaklaşık Hesabı

Açıklama : Girilen yaklaşım değerine bağlı olarak aşağıdaki toplam formülü ile Pi sayısı yaklaşık olarak hesaplanıyor.

Ekran Görüntüsü

Açıklamalı Kodlar Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim toplam As Double = 1 Dim k, i, faktor, faktor1 As Long If Strings.Trim(TxtYaklasim.Text) <> "" Then ‘Boş text istemiyoruz. If IsNumeric(TxtYaklasim.Text) Then ‘Sayısal olmayan veri de istemiyoruz. If TxtYaklasim.Text > 0 And TxtYaklasim.Text < 10 Then ‘Bir de yaklaşım sayısı 1 il 9 arasında olacak. For k = 1 To TxtYaklasim.Text 'k faktöriyel hesaplanıyor: faktor = 1 For i = 1 To k faktor = faktor * i Next '2k+1 faktöriyel hesaplanıyor: faktor1 = 1 For i = 1 To 2 * k + 1 faktor1 = faktor1 * i Next 'Toplam hesaplanıyor: toplam = toplam + ((2 ^ k) * (faktor ^ 2)) / faktor1 Next LblSonuc.Text = 2 * toplam Else MsgBox("Yaklaşım sayısı 1-9 arasında olmalıdır!") End If

Page 28: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 28

Else MsgBox("Lütfen sayısal veri giriniz!") End If Else MsgBox("İlgili alana veri girişi yapınız!") End If End Sub End Class

Page 29: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 29

Uygulama No: 18 – Kuvvet ve Faktöriyel Hesabı

Açıklama : Girilen sayının istenilen kuvveti ve faktöriyeli hesaplanıyor. “For-Next” döngü yapısının kullanımına ilişkin bir örnektir.

Ekran Görüntüsü

Açıklamalı Kodlar Public Class Form1 Dim sayi, kuvvet As Integer Dim sonuc As Long Private Sub btnhesapla_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnhesapla.Click sayi = txtsayi.Text kuvvet = txtkuvvet.Text sonuc = 1 For sayac = 1 To kuvvet sonuc = sayi * sonuc ‘Sayı, kuvvet defa kendisi ile çarpılıyor. Next sayac txtsonuc.Text = sonuc End Sub Private Sub btnfaktor_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnfaktor.Click sayi = txtsayi.Text sonuc = 1 For sayac = 1 To sayi sonuc = sayac * sonuc ‘Sayıya kadar olan bütün sayılar çarpılıyor. Next sayac txtfaktor.Text = sonuc End Sub End Class

Page 30: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 30

Uygulama No: 19 – İç İçe Döngü

Açıklama : 000 ile 999 arasındaki sayılar iç içe düzenlenmiş üç for-next döngü yapısı kullanılarak oluşturuluyor. Kod içersinde yer alan “System.Threading.Thread.Sleep(10)” ifadesi, her adımda bekleme işlevini gerçekleştiriyor. Dolayısıyla sayaçların değişimi gözlenebiliyor.

Ekran Görüntüsü

Açıklamalı Kodlar Public Class Form1 Dim sayi As Integer Dim k As Long Private Sub btnbaslat_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnbaslat.Click For sayac1 = 0 To 9 For sayac2 = 0 To 9 For sayac3 = 0 To 9 lstsayi.Items.Add(sayac1.ToString + sayac2.ToString + sayac3.ToString) txtsayi3.Text = sayac3 txtsayi2.Text = sayac2 txtsayi1.Text = sayac1 txtsayi3.Refresh() txtsayi2.Refresh() txtsayi1.Refresh() System.Threading.Thread.Sleep(10) ‘Her adımda 10 ms bekle. Next sayac3 Next sayac2 Next sayac1 End Sub End Class

Page 31: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 31

Uygulama No: 20 – 153 Sayısı

Açıklama : 153 Sayısı şöyle bir özelliğe sahiptir: 153 = 13+ 53 + 33. Acaba 100 ile 999 arasında bu özelliği sağlayan, yani basamaklarının küplerinin toplamına eşit olan başka sayı ya da sayılar var mıdır?

Ekran Görüntüsü

Açıklamalı Kodlar Public Class Form1 Dim sayi As Integer Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load For yuzler = 1 To 9 For onlar = 0 To 9 For birler = 0 To 9 sayi = 100 * yuzler + 10 * onlar + birler If sayi = yuzler ^ 3 + onlar ^ 3 + birler ^ 3 Then ListBox1.Items.Add(sayi) Next birler Next onlar Next yuzler End Sub End Class

Page 32: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 32

Uygulama No: 21 – Pisagor Üçlüleri

Açıklama : a2 + b2 = c2 özelliğini sağlayan sayılar, dik üçgenin kenar uzunluklarını gösterirler ve Pisagor üçlüleri olarak anılırlar. 1 ile 99 arasındaki doğal sayılardan bu eşitliği sağlayanlar hangileri olabilir?

Ekran Görüntüsü

Açıklamalı Kodlar Public Class Form1 Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load For a = 1 To 99 For b = 1 To 99 For c = 1 To 99 If (c ^ 2 = a ^ 2 + b ^ 2) And (a < b) Then ListBox1.Items.Add(a.ToString + " - " + b.ToString + " - " + c.ToString) Next c Next b Next a End Sub End Class

Page 33: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 33

Uygulama No: 22 – Collatz Problemi

Açıklama : Dolu tanesi sayıları olarak da bilinen problem, girilecek bir pozitif tamsayı ile başlayan bir sayı dizisi oluşturmaya dayanır. Dizinin her bir elemanı, bir önceki sayı kullanılarak şu kural dahilinde hesaplanır: Eğer sayı çift ise bir sonraki sayı bu sayının yarısı, tek ise üç katının bir fazlası olacaktır. Böylece ilk sayısı verilen bir sayı dizisi oluşturulur. Örneğin, ilk sayı 7 ise dizi şu şekilde oluşacaktır: 7, 22, 11, 34, 17, 52, 26, 13, 40, 20, 10, 5, 16, 8, 4, 2, 1, 4, 2, 1, 4, 2, 1,... Ya da ilk sayı 21 ise, 21, 64, 32, 16, 8, 4, 2, 1, ... Görüldüğü gibi dizi 1 sayısına ulaştığı anda sonsuz döngüye girmektedir. Aslında başlangıç sayısı olarak ne girersek girelim dizi her zaman 1 sayısına ulaşmaktadır, ama bu durum henüz matematiksel olarak kanıtlanamamıştır...

Ekran Görüntüsü

Page 34: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 34

Açıklamalı Kodlar

Public Class Form1 Dim sayi, sayac, enbuyuk As Long Private Sub btnbaslat_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnbaslat.Click sayi = txtsayi.Text lstdizi.Items.Clear() sayac = 0 enbuyuk = 0 Do lstdizi.Items.Add(sayi) If sayi Mod 2 = 0 Then ‘Sayı çift ise. sayi = sayi / 2 Else ‘Sayı tek ise. sayi = sayi * 3 + 1 End If sayac = sayac + 1 If sayi > enbuyuk Then enbuyuk = sayi ‘sayi enbuyuk’ten daha büyük ise yeni enbuyuk değeri sayi olsun. Loop Until sayi = 1 lstdizi.Items.Add(1) lbladimsayisi.Text = sayac + 1 lblenbuyuk.Text = enbuyuk End Sub End Class

Page 35: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 35

Uygulama No: 23 – Kaprekar Sayıları

Açıklama : Kaprekar sayıları , 1949 yılında Hintli matematikçi Kaprekar tarafından tariflenen sayılardır. n basamaklı bir t Kaprekar sayısının karesi alınıp sağdaki n basamağı solda kalan n-1 basamağa eklendiğinde sonuç yine t sayısını verir. Örnek: 55 , iki basamaklı bir sayıdır. 552 = 3025 , sağdan iki basamak 25 , soldan iki basamak 30. Bu iki sayının toplamı 30+25=55 yani sayının kendisidir. 1, 9, 45, 55, 99, 297, 703, 999, 2223, 2728, 4879 sayıları da diğer bazı Kaprekar sayılarıdır.

Ekran Görüntüsü

Açıklamalı Kodlar Public Class Form1 Dim sayi, uz, sayi_kare, sagtaraf, soltaraf, basla, bitir, sagtaraf_uzunluk, sayi_kare_uzunluk As Long Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnHesapla.Click LstSayi.Items.Clear()

Page 36: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 36

basla = TxtBaslangic.Text ' Bu sayı aralığın başlangıç sayısı ve en az 9 girilmeli bitir = TxtBitis.Text For sayi = basla To bitir uz = Strings.Len(sayi.ToString) sayi_kare = sayi * sayi sagtaraf = Strings.Right(sayi_kare.ToString, uz) sayi_kare_uzunluk = Strings.Len(sayi_kare.ToString) sagtaraf_uzunluk = Strings.Len(sagtaraf.ToString) soltaraf = Strings.Left(sayi_kare.ToString, sayi_kare_uzunluk - sagtaraf_uzunluk) If sagtaraf + soltaraf = sayi And sayi <> 10 Then LstSayi.Items.Add(sayi) End If Next End Sub End Class

Page 37: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 37

Uygulama No: 24 – Kaprekar Sabiti

Açıklama : Hintli matematikçi Kaprekar (1905-1986) tarafından tanımlanan , dört basamaklı sayılara en fazla yedi kez aşağıdaki işlemler uygulandığında ortaya çıkan sabit 6174 sayısı. İşlemler , tüm basamakları aynı sayıdan oluşmayan (2222 gibi - ilk adımda sıfır sonucunu verecektir) ve herhangi üç basamağındaki sayılar aynı olup kalan bir basamaktaki sayı bu sayıdan bir büyük ya da bir küçük olmayan (1112, 5565 veya 8788 gibi - ilk adımda 999 sayısını verecektir) dört basamaklı sayılara uygulandığında en fazla yedi adımda sıfır veya 6174 sabit sayısını verir. Yukarıdaki şartlara uygun dört basamaklı bir sayı alınır. Sayının basamaklarını büyükten küçüğe ve küçükten büyüğe doğru sıralayarak iki adet dört basamaklı sayı elde edilir. Elden edilen sayılardan büyükten küçüğü çıkarılır. 2. adım tekrar edilir. En fazla yedi adımda sıfır ya da 6174 sabit sayısı elde edilecek ve kısır döngüye girilecektir. Örnek: 6544 − 4456 = 2088 8820 − 0288 = 8532 8532 − 2358 = 6174 7641 − 1467 = 6174

Ekran Görüntüsü

Açıklamalı Kodlar Public Class Form1 Dim Tmp, Loop1, Loop2, Pos As Byte Dim enkucuksayi, enbuyuksayi, fark As Integer Dim sayilar(0 To 3) Private Sub BtnSirala_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnSirala.Click LstBuyukKucuk.Items.Clear() sayilar(0) = TxtSayi1.Text

Page 38: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 38

sayilar(1) = TxtSayi2.Text sayilar(2) = TxtSayi3.Text sayilar(3) = TxtSayi4.Text ‘Sıralama algoritması kullanılarak sayilar dizisi küçükten büyüğe doğru sıralanıyor: Do For Loop1 = 0 To 3 Pos = Loop1 For Loop2 = Loop1 + 1 To 3 If sayilar(Loop2) < sayilar(Pos) Then Pos = Loop2 End If Next Loop2 If Pos <> Loop1 Then Tmp = sayilar(Pos) sayilar(Pos) = sayilar(Loop1) sayilar(Loop1) = Tmp End If Next Loop1 enkucuksayi = 1000 * sayilar(0) + 100 * sayilar(1) + 10 * sayilar(2) + sayilar(3) enbuyuksayi = 1000 * sayilar(3) + 100 * sayilar(2) + 10 * sayilar(1) + sayilar(0) fark = enbuyuksayi - enkucuksayi LstBuyukKucuk.Items.Add(enbuyuksayi.ToString + "-" + enkucuksayi.ToString + "=" + fark.ToString) sayilar(0) = Strings.Mid(fark.ToString, 1, 1) sayilar(1) = Strings.Mid(fark.ToString, 2, 1) sayilar(2) = Strings.Mid(fark.ToString, 3, 1) sayilar(3) = Strings.Mid(fark.ToString, 4, 1) Loop Until fark = 6174 End Sub End Class

Page 39: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 39

Uygulama No: 25 – Mükemmel Sayılar

Açıklama : 1 dahil, kendisi hariç olmak üzere bölenlerinin toplamına eşit olan sayılara mükemmel sayı adı verilir. Örneğin 6=1+2+3 olduğundan bir mükemmel sayıdır. Bir sonraki mükemmel sayı 28’dir. Çünkü 28=1+2+4+7+14 olur. Geliştirdiğimiz uygulama, kullanıcı tarafından girilecek bir sayının mükemmel olup olmadığını test etmekte, değil ise bir sonraki mükemmel sayıyı hesaplamaktadır.

Ekran Görüntüsü

Açıklamalı Kodlar Public Class Form1 Dim sayi, sayi1, toplam, k As Long Private Sub BtnKontrol_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnKontrol.Click sayi = TxtSayi.Text toplam = 0 For k = 2 To sayi / 2 If sayi Mod k = 0 Then toplam = toplam + k Next If toplam + 1 = sayi Then MsgBox("MÜKEMMEL!") Else ‘Sayı mükemmel değil ise bir sonrakini ara: sayi1 = sayi Do toplam = 0 sayi1 = sayi1 + 1 For k = 2 To sayi1 / 2 If sayi1 Mod k = 0 Then toplam = toplam + k Next Loop Until toplam + 1 = sayi1 MsgBox(sayi1) End If End Sub End Class

Page 40: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 40

Uygulama No: 26 – Aritmetik Ortalama ve Standart Sapma

Açıklama : Liste kutusuna aktarılan sayıların aritmetik ortalama ve standart sapmaları hesaplanıyor.

Ekran Görüntüsü

Açıklamalı Kodlar Public Class Form1 Dim toplam1, toplam2 As Integer Dim ort, StdSapma As Double Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnEkle.Click LstSayilar.Items.Add(TxtSayi.Text) TxtSayi.Clear() TxtSayi.Focus() End Sub Private Sub BtnCikis_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnCikis.Click End End Sub Private Sub BtnOrtalama_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnOrtalama.Click toplam1 = 0 For k = 0 To LstSayilar.Items.Count - 1 toplam1 = toplam1 + LstSayilar.Items.Item(k) 'liste kutusundaki sayılar toplanıyor. Next ort = toplam1 / LstSayilar.Items.Count 'Toplamın say adetine oranı. MsgBox(ort) End Sub Private Sub BtnStdSapma_Click(ByVal sender As System.Object, ByVal e As

Page 41: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 41

System.EventArgs) Handles BtnStdSapma.Click toplam2 = 0 For k As Integer = 0 To LstSayilar.Items.Count - 1 toplam2 = toplam2 + (LstSayilar.Items(k) - ort) ^ 2 'Liste kutusundaki sayıların her biri ile ortalama arasındaki farkların kareleri toplamı. Next StdSapma = Math.Sqrt(toplam2 / (LstSayilar.Items.Count - 1)) 'Kareler toplamının sayı adetinin bir eksiğine oranının karekökü. MsgBox(StdSapma) End Sub Private Sub BtnSil_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnSil.Click LstSayilar.Items.Clear() TxtSayi.Focus() End Sub End Class

Page 42: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 42

Uygulama No: 27 – Renk Aktarımı

Açıklama : Label (etiket) nesneleri kullanarak oluşturulmuş bir renk paletinin kullanımı.

Ekran Görüntüsü

Açıklamalı Kodlar Public Class Form1 Private Sub Label1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label1.Click If RBtnForm.Checked Then ‘Eğer formun rengi opsiyonu seçili ise Me.BackColor = Label1.BackColor Else TextBox1.BackColor = Label1.BackColor End If End Sub Private Sub Label2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label2.Click If RBtnForm.Checked Then Me.BackColor = Label2.BackColor Else TextBox1.BackColor = Label2.BackColor End If End Sub Private Sub Label3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label3.Click If RBtnForm.Checked Then Me.BackColor = Label3.BackColor Else TextBox1.BackColor = Label3.BackColor End If End Sub Private Sub Label4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label4.Click If RBtnForm.Checked Then Me.BackColor = Label4.BackColor Else TextBox1.BackColor = Label4.BackColor End If

Page 43: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 43

End Sub Private Sub Label5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label5.Click If RBtnForm.Checked Then Me.BackColor = Label5.BackColor Else TextBox1.BackColor = Label5.BackColor End If End Sub End Class

Page 44: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 44

Uygulama No: 28 – Fonksiyon Kullanımı 1

Açıklama : Fonksiyon kullanılarak dört işlem hesabı.

Ekran Görüntüsü

Açıklamalı Kodlar Public Class Form1 Function islem(ByVal kod As Char, ByVal s1 As Integer, ByVal s2 As Integer) As Double Select Case kod Case "+" : Return (s1 + s2) Case "-" : Return (s1 - s2) Case "*" : Return (s1 * s2) Case "/" : Return (s1 / s2) End Select End Function Private Sub RadioTopla_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioTopla.CheckedChanged TxtSonuc.Text = islem("+", CInt(TxtSayi1.Text), CInt(TxtSayi2.Text)) End Sub Private Sub RadioCikar_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioCikar.CheckedChanged TxtSonuc.Text = islem("-", CInt(TxtSayi1.Text), CInt(TxtSayi2.Text)) End Sub Private Sub RadioCarp_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioCarp.CheckedChanged TxtSonuc.Text = islem("*", CInt(TxtSayi1.Text), CInt(TxtSayi2.Text)) End Sub Private Sub RadioBol_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioBol.CheckedChanged TxtSonuc.Text = islem("/", CInt(TxtSayi1.Text), CInt(TxtSayi2.Text)) End Sub End Class

Page 45: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 45

Uygulama No: 29 – Fonksiyon Kullanımı 2

Açıklama : Fonksiyon kullanılarak maaş hesabı.

Ekran Görüntüsü

Açıklamalı Kodlar Public Class Form1 Function cocuk_yardimi(ByVal m As Integer, ByVal c As Byte) As Double If c = 2 Then Return (c * m / 100) ElseIf c = 3 Then Return (2 * c * m / 100) ElseIf c > 3 Then Return (5 * c * m / 100) Else : Return 0 End If End Function Function aile_yardimi(ByVal kod As Byte) As Integer If kod = 1 Then Return (22) ElseIf kod = 2 Then Return (48) Else : Return 0 End If End Function Function yabanci_dil(ByVal kod As Byte) As Integer If kod = 1 Then

Page 46: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 46

Return 125 ElseIf kod = 2 Then Return 55 ElseIf kod = 3 Then Return 25 Else Return 0 End If End Function Function kidem(ByVal m As Integer, ByVal kod As Byte) As Double Return (kod * m / 100) End Function Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged If ComboBox1.Text = "Bekar" Then ComboBox2.Enabled = False RadioButton1.Enabled = False RadioButton2.Enabled = False RadioButton1.Checked = False RadioButton2.Checked = False ElseIf ComboBox1.Text = "Boşanmış/Dul" Then ComboBox2.Enabled = True RadioButton1.Enabled = False RadioButton2.Enabled = False RadioButton1.Checked = False RadioButton2.Checked = False Else ComboBox2.Enabled = True RadioButton1.Enabled = True RadioButton2.Enabled = True End If End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim m_gosterge As Integer = TextBox1.Text Dim maas As Double Dim kod As Byte = 0 Dim cocuk_sayisi As Byte If ComboBox2.Text = ">3" Then cocuk_sayisi = 4 Else cocuk_sayisi = CInt(ComboBox2.Text) End If maas = m_gosterge + cocuk_yardimi(m_gosterge, cocuk_sayisi) If RadioButton1.Checked Then kod = 1 If RadioButton2.Checked Then kod = 2 maas = maas + aile_yardimi(kod) kod = 0 If ComboBox3.Text = "90-100" Then kod = 1 If ComboBox3.Text = "80-89" Then kod = 2 If ComboBox3.Text = "70-79" Then kod = 3 maas = maas + yabanci_dil(kod)

Page 47: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 47

kod = 0 If ComboBox4.Text = "Lise" Then kod = 1 If ComboBox4.Text = "Üniversite" Then kod = 2 If ComboBox4.Text = "Yüksek Lisans" Then kod = 3 If ComboBox4.Text = "Doktora" Then kod = 4 maas = maas + kidem(m_gosterge, kod) Label5.Text = maas End Sub End Class

Page 48: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 48

Uygulama No: 30 – Palindrom

Açıklama : Girilen metnin palindrom (tersten de aynı şekilde okunan) olup olmadığının test edilmesi.

Ekran Görüntüsü

Açıklamalı Kodlar Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim metin As String = TextBox1.Text Dim metin_ters As String = "" For k = Len(metin) - 1 To 0 Step -1 metin_ters = metin_ters & metin(k) Next If metin = metin_ters Then MsgBox("TAMAM") End Sub End Class

Page 49: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 49

Uygulama No: 31 – Palindrom/Liste

Açıklama : Girilen metnin içerisinde yer alan palindrom kelimeler ayıklanarak liste kutusuna aktarılıyor.

Ekran Görüntüsü

Açıklamalı Kodlar Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim metin As String = TextBox1.Text & " " Dim kelime, kelime_ters As String Dim p As Integer = 1 ListBox1.Items.Clear() For k = 0 To Len(metin) - 1 If metin(k) = " " Then kelime = Trim(Strings.Mid(metin, p, k - p + 1)) kelime_ters = "" For j = Len(kelime) - 1 To 0 Step -1 kelime_ters = kelime_ters & kelime(j) Next If kelime = kelime_ters Then ListBox1.Items.Add(kelime) p = p + Len(kelime) + 1 End If Next End Sub End Class

Page 50: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 50

Uygulama No: 32 – Metin İstatistikleri

Açıklama : Çok-satırlı bir metin kutusuna girilen metnin hece, kelime ve cümle sayıları hesaplanıyor ve girilen bir anahtar kelimenin metin içersinde geçme sayısı bulunuyor.

Ekran Görüntüsü

Açıklamalı Kodlar Public Class Form1 Dim metin, anahtar, sonkarakter As String Dim kelime_sayisi, cumle_sayisi, hece_sayisi, p, konum, sayac As Integer Private Sub BtnHesapla_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnHesapla.Click metin = TxtMetin.Text + " " kelime_sayisi = 0 cumle_sayisi = 0 hece_sayisi = 0 For k = 0 To Strings.Len(metin) - 1 'Metni sonuna kadar karakter karakter tarıyor. If metin(k) = " " Then kelime_sayisi = kelime_sayisi + 1 'Kelime sayısı=boşluk sayısı. Çünkü yukarıda fazladan bir boşluk eklemiştik. If k = Strings.Len(metin) - 1 Then Exit For 'Aşağıdaki koşulda son karakterden sonra (k+1) arama yapmasın

Page 51: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 51

If (metin(k) = "." And (metin(k + 1) = " " Or Strings.Asc(metin(k + 1)) = 13)) Or metin(k) = "?" Or metin(k) = "!" Then cumle_sayisi = cumle_sayisi + 1 'Hece sayısı=sesli harf sayısı: If metin(k) = "a" Or metin(k) = "e" Or metin(k) = "ı" Or metin(k) = "i" Or metin(k) = "o" Or metin(k) = "ö" Or metin(k) = "u" Or metin(k) = "ü" Then hece_sayisi = hece_sayisi + 1 Next LblCumleSayisi.Text = cumle_sayisi LblKelimeSayisi.Text = kelime_sayisi LblHeceSayisi.Text = hece_sayisi End Sub Private Sub BtnBul_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnBul.Click metin = TxtMetin.Text If RadioButton1.Checked Then 'Serbest arama. Yani "masa" aranırken "masal" da bulunur. anahtar = TxtAnahtarKelime.Text Else anahtar = " " + TxtAnahtarKelime.Text + " " 'Tam eşitlik arama. "masa" aranırken, "masal" bulunmaz. End If sayac = 0 konum = 1 Do p = Strings.InStr(konum, metin, anahtar) '"anahtar" kelime "metin" içersinde "konum"dan başlayarak aranıyor. If p <> 0 Then sayac = sayac + 1 konum = p + Strings.Len(anahtar) 'Bulunca aramaya yeni konumdan devam et. Loop Until p = 0 LblSayi.Text = sayac End Sub End Class

Page 52: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 52

Uygulama No: 33 – Anahtarlı Metin Şifreleme

Açıklama : Çok-satırlı bir metin kutusuna girilen bir metin, anahtar kelime kullanılarak şifreleniyor. Şifreleme, metnin her bir karakterinin ASCII koduna, anahtar kelimenin her bir karakterinin ASCII kodunun eklenmesi ile gerçekleştiriliyor. Aşağıda, örnek üzerinden şifreleme algoritmasının açıklaması yapılmıştır:

Ek Açıklama

Metin = “Bilgisayar ve Öğretim” Anahtar = “okul”

B 254 İ 60 l 254 g 254 i 254 s a y a r v e Ö ğ r o 50 k 50 u 255 l 254 o 253 k u l o k u l o k u l o , Toplam=304 Mod 255=49

Ü 110 110

# 509 254

^ 508 253

? 507 252

h 8 9 d 6 , i 2 1 m * }

, 49 Ü

110 # 254 ^ 253 ? 252 h 8 9 d 6 , i 2 1 m * }

o 50 k 50 u 255 l 254 o 253 k u l o k u l o k u l o Fark=-1 Fark<=0 ise +255 = 254 Aksi halde Mod 255

60 60

-1 254

-1 254

-1 254

Ekran Görüntüsü

Page 53: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 53

Açıklamalı Kodlar

Public Class Form1 Private Sub BtnSifrele_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnSifrele.Click Dim metin As String = TxtMetin.Text Dim anahtar As String = InputBox("Anahtar kelimeyi giriniz:") Dim sifreli_metin As String = "" Dim j As Byte = 0 For k = 0 To Strings.Len(metin) - 1 'Metni karakter karakter sonuna kadar tara. sifreli_metin = sifreli_metin + Strings.Chr((Strings.Asc(metin(k)) + Strings.Asc(anahtar(j))) Mod 255) 'Şifreli metni, her bir karakterinin koduna anahtar kelimenin sıradaki karakterinin kodunu ekleyerek bul. 'Neden Mod 255? Çünkü toplam 255 değerini aşabilir. j = j + 1 If j = Strings.Len(anahtar) Then j = 0 'Anahtar kelimenin indisi ayrı tutulmalı. Yoksa indisde değer aşımı olur. Next TxtSifreliMetin.Text = sifreli_metin End Sub End Class

Page 54: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 54

Uygulama No: 34 – Anahtarlı Metin Şifre Çözme

Açıklama : Önceki uygulamada gerçekleştirilen şifrelemeyi, aynı anahtarın girilmesi şartıyla ters algoritma kullanarak çözen uygulama.

Ekran Görüntüsü

Açıklamalı Kodlar Public Class Form1 Private Sub BtnSifrecoz_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnSifrecoz.Click Dim sifreli_metin As String = TxtSifreliMetin.Text Dim anahtar As String = InputBox("Anahtar kelimeyi giriniz:") Dim metin As String = "" Dim kod As Integer Dim j As Byte = 0 For k = 0 To Strings.Len(sifreli_metin) - 1 kod = Strings.Asc(sifreli_metin(k)) - Strings.Asc(anahtar(j)) If kod <= 0 Then kod = kod + 255 Else kod = kod Mod 255 metin = metin + Strings.Chr(kod) j = j + 1 If j = Strings.Len(anahtar) Then j = 0 Next TxtMetin.Text = metin End Sub End Class

Page 55: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 55

Uygulama No: 35 – Veritabanı Uygulaması 1

Açıklama : Veritabanı ile bağlantı kurulması ve veri okunması.

Ekran Görüntüsü

Açıklamalı Kodlar Public Class Form1 Private Sub BtnTamam_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnTamam.Click Dim baglanti_metni1, baglanti_metni2 As String baglanti_metni1 = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=|DataDirectory|\vt1.accdb; Persist Security Info=False;" baglanti_metni2 = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=|DataDirectory|\vt1.mdb; Persist Security Info=False;" ‘Bu bağlantı metinlerinden birisi kullanılacaktır. ‘MS.ACE.OLEDB motoru 64 bit işletim sistemlerinde sorun çıkarabiliyor. ‘Bu durumda MS.Jet.OLEDB motorunun ve mdb formatının kullanılması tavsiye edilir. Dim baglanti1 As New Data.OleDb.OleDbConnection(baglanti_metni2) baglanti1.Open() ‘Bağlantı metni kullanılarak yeni bir bağlantı tanımlanıyor ve açılıyor. Dim sql1 As String sql1 = "select * from tablo1 where klnad='" & TxtKlnAd.Text & "' and sifre='" & TxtSifre.Text & "'" ‘Formdaki alanların değerleri kullanılarak veri seçme işlevine sahip bir SQL cümlesi oluşturuluyor. Dim komut1 As New System.Data.OleDb.OleDbCommand(sql1, baglanti1) ‘Bağlantı ve SQL cümlesi kullanılarak yeni bir veritabanı komutu tanımlanıyor. Dim veri_okuyucu1 As Data.OleDb.OleDbDataReader veri_okuyucu1 = komut1.ExecuteReader ‘Tanımlanan veritabanı komutu üzerinden bir veri okuyucusu tanımlanıyor ve çalıştırılıyor. If veri_okuyucu1.HasRows = True Then ‘Eğer veri okuyucusunda veri varsa MsgBox("Kullanıcı kayıtlı.")

Page 56: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 56

Else MsgBox("Kullanıcı kayıtlı değil.") End If baglanti1.Close() End Sub End Class

Page 57: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 57

Uygulama No: 36 – Veritabanı Uygulaması 2

Açıklama : Veritabanı ile bağlantı kurulması ve veri okunması.

Ekran Görüntüsü

Açıklamalı Kodlar Public Class Form1 Private Sub BtnTamam_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnTamam.Click Dim baglanti_metni1, baglanti_metni2 As String baglanti_metni1 = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=|DataDirectory|\vt1.accdb; Persist Security Info=False;" baglanti_metni2 = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=|DataDirectory|\vt1.mdb; Persist Security Info=False;" ‘Bu bağlantı metinlerinden birisi kullanılacaktır. ‘MS.ACE.OLEDB motoru 64 bit işletim sistemlerinde sorun çıkarabiliyor. ‘Bu durumda MS.Jet.OLEDB motorunun ve mdb formatının kullanılması tavsiye edilir. Dim baglanti1 As New Data.OleDb.OleDbConnection(baglanti_metni2) baglanti1.Open() ‘Bağlantı metni kullanılarak yeni bir bağlantı tanımlanıyor ve açılıyor. Dim sql1 As String sql1 = "select * from tablo1 where klnad='" & TxtKlnAd.Text & "' and sifre='" & TxtSifre.Text & "'" ‘Formdaki alanların değerleri kullanılarak veri seçme işlevine sahip bir SQL cümlesi oluşturuluyor. Dim komut1 As New System.Data.OleDb.OleDbCommand(sql1, baglanti1) ‘Bağlantı ve SQL cümlesi kullanılarak yeni bir veritabanı komutu tanımlanıyor. Dim veri_okuyucu1 As Data.OleDb.OleDbDataReader veri_okuyucu1 = komut1.ExecuteReader ‘Tanımlanan veritabanı komutu üzerinden bir veri okuyucusu tanımlanıyor ve çalıştırılıyor. If veri_okuyucu1.HasRows = True Then ‘Eğer veri okuyucusunda veri varsa veri_okuyucu1.Read()

Page 58: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 58

MsgBox("Merhaba " & veri_okuyucu1("ad") & " " & veri_okuyucu1("soyad") & ". MATRIX'e hoşgeldin...") ‘Veri okuyucusu kullanılarak istenilen alana ulaşmak mümkün. Else MsgBox("Kullanıcı kayıtlı değil.") End If baglanti1.Close() End Sub End Class

Page 59: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 59

Uygulama No: 37 – Veritabanı Uygulaması 3

Açıklama : Veritabanına kayıt eklenmesi.

Ekran Görüntüsü

Açıklamalı Kodlar Public Class Form1 Private Sub BtnKaydet_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnKaydet.Click Dim baglanti_metni1, baglanti_metni2 As String baglanti_metni1 = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=|DataDirectory|\vt2.accdb; Persist Security Info=False;" baglanti_metni2 = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=|DataDirectory|\vt2.mdb; Persist Security Info=False;" Dim baglanti1 As New Data.OleDb.OleDbConnection(baglanti_metni2) baglanti1.Open() Dim sql1 As String sql1 = "insert into anatablo (ad,soyad,fakulte,bolum) values ('" + TxtAd.Text + "','" + TxtSoyad.Text + "','" + CmbFakulte.Text + "','" + CmbBolum.Text + "')" ‘Veritabanı tablosuna satır eklemek için kullanılacak SQL cümlesi Dim komut1 As New System.Data.OleDb.OleDbCommand(sql1, baglanti1) komut1.ExecuteNonQuery()‘SQL sorgusu burada çalıştırılıyor. baglanti1.Close() MsgBox("Veriler Kaydedildi") TxtAd.Clear() TxtSoyad.Clear() TxtAd.Focus() CmbBolum.ResetText() CmbFakulte.ResetText() End Sub End Class

Page 60: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 60

Uygulama No: 38 – Veritabanı Uygulaması 4

Açıklama : Veritabanına kayıt eklenmesi.

Ekran Görüntüsü

Açıklamalı Kodlar Public Class Form1 Private Sub BtnKaydet_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnKaydet.Click Dim baglanti_metni1, baglanti_metni2 As String baglanti_metni1 = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=|DataDirectory|\sinema.accdb; Persist Security Info=False;" baglanti_metni2 = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=|DataDirectory|\sinema.mdb; Persist Security Info=False;" Dim baglanti1 As New Data.OleDb.OleDbConnection(baglanti_metni2) baglanti1.Open() Dim sql1 As String sql1 = "insert into filmler (film_adi,yonetmen,yili,yildiz,yorum) values ('" + TxtFilmAdi.Text + "','" + TxtYonetmen.Text + "'," & CInt(CmbYili.Text) & "," & CInt(CmbYildiz.Text) & ",'" & TxtYorum.Text + "')" ‘Dikkat: insert cümlesinde veritabanında sayı türünde tanımlanmış alanlar için tek tırnak işareti kullanılmaz. Dim komut1 As New System.Data.OleDb.OleDbCommand(sql1, baglanti1) komut1.ExecuteNonQuery() baglanti1.Close() MsgBox("Veriler Kaydedildi") TxtFilmAdi.Clear() TxtYonetmen.Clear()

Page 61: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 61

TxtYorum.Clear() TxtFilmAdi.Focus() CmbYildiz.ResetText() CmbYili.ResetText() End Sub Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load For k = 1900 To 2010 CmbYili.Items.Add(k) Next End Sub End Class

Page 62: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 62

Uygulama No: 39 – Veritabanı Uygulaması 5

Açıklama : Veritabanına kayıt eklenmesi – Resim uygulamalı.

Ekran Görüntüsü

Açıklamalı Kodlar Public Class Form1 Dim b1, b2, b3, b4, b5, yildiz As Byte Private Sub BtnKaydet_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnKaydet.Click Dim baglanti_metni1, baglanti_metni2 As String baglanti_metni1 = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=|DataDirectory|\sinema.accdb; Persist Security Info=False;" baglanti_metni2 = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=|DataDirectory|\sinema.mdb; Persist Security Info=False;" Dim baglanti1 As New Data.OleDb.OleDbConnection(baglanti_metni2) baglanti1.Open() Dim sql1 As String sql1 = "insert into filmler (film_adi,yonetmen,yili,yildiz,yorum) values ('" + TxtFilmAdi.Text + "','" + TxtYonetmen.Text + "'," & CInt(CmbYili.Text) & "," & yildiz & ",'" & TxtYorum.Text + "')" Dim komut1 As New System.Data.OleDb.OleDbCommand(sql1, baglanti1) komut1.ExecuteNonQuery() baglanti1.Close() TxtFilmAdi.Clear() TxtYonetmen.Clear() TxtYorum.Clear()

Page 63: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 63

TxtFilmAdi.Focus() CmbYili.ResetText() PictureBox1.ImageLocation = "bos_yildiz.bmp" PictureBox1.Load() PictureBox2.ImageLocation = "bos_yildiz.bmp" PictureBox2.Load() PictureBox3.ImageLocation = "bos_yildiz.bmp" PictureBox3.Load() PictureBox4.ImageLocation = "bos_yildiz.bmp" PictureBox4.Load() PictureBox5.ImageLocation = "bos_yildiz.bmp" PictureBox5.Load() b1 = 0 b2 = 0 b3 = 0 b4 = 0 b5 = 0 yildiz = 0 End Sub Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load For k = 1900 To 2010 ‘ComboBox bu döngü ile dolduruluyor. CmbYili.Items.Add(k) Next yildiz = 0 ‘Filmin yıldız toplamını tutacak değişken; başlangıçta sıfırlanıyor. End Sub Private Sub PictureBox1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox1.Click If b1 = 0 Then ‘Eğer ilk defa tıklandı ise PictureBox1.ImageLocation = "dolu_yildiz.bmp" ‘Resim dosyası PictureBox1.Load()‘Resmi yükle b1 = 1 yildiz = yildiz + 1 ‘Her sarı yıldız resmi için yıldız puanını bir artır. Else ‘Eğer ikinci defa tıklandı ise PictureBox1.ImageLocation = "bos_yildiz.bmp" PictureBox1.Load() b1 = 0 yildiz = yildiz – 1 ‘Her beyaz yıldız resmi için yıldız puanını bir azalt. End If End Sub Private Sub PictureBox2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox2.Click If b2 = 0 Then PictureBox2.ImageLocation = "dolu_yildiz.bmp" PictureBox2.Load() b2 = 1 yildiz = yildiz + 1 Else PictureBox2.ImageLocation = "bos_yildiz.bmp" PictureBox2.Load() b2 = 0 yildiz = yildiz - 1

Page 64: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 64

End If End Sub Private Sub PictureBox3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox3.Click If b3 = 0 Then PictureBox3.ImageLocation = "dolu_yildiz.bmp" PictureBox3.Load() b3 = 1 yildiz = yildiz + 1 Else PictureBox3.ImageLocation = "bos_yildiz.bmp" PictureBox3.Load() b3 = 0 yildiz = yildiz - 1 End If End Sub Private Sub PictureBox4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox4.Click If b4 = 0 Then PictureBox4.ImageLocation = "dolu_yildiz.bmp" PictureBox4.Load() b4 = 1 yildiz = yildiz + 1 Else PictureBox4.ImageLocation = "bos_yildiz.bmp" PictureBox4.Load() b4 = 0 yildiz = yildiz - 1 End If End Sub Private Sub PictureBox5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox5.Click If b5 = 0 Then PictureBox5.ImageLocation = "dolu_yildiz.bmp" PictureBox5.Load() b5 = 1 yildiz = yildiz + 1 Else PictureBox5.ImageLocation = "bos_yildiz.bmp" PictureBox5.Load() b5 = 0 yildiz = yildiz - 1 End If End Sub Private Sub BtnKapat_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnKapat.Click End End Sub End Class

Page 65: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 65

Uygulama No: 40 – Veritabanı Uygulaması 6

Açıklama : Veritabanına kayıt ekleme, kayıt düzeltme, kayıt silme ve dinamik ComboBox denetimi

Ekran Görüntüsü – Form3 (Menü)

Açıklamalı Kodlar

Public Class Form3 Private Sub BtnGiris_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnGiris.Click Form1.ShowDialog()‘Form1 in açılmasını sağlar. Show metodundan farkı, form açıldığında arkada kalan diğer uygulama pencerelerinin çalışmasına izin vermemesidir. End Sub Private Sub BtnAra_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnAra.Click Form2.ShowDialog() End Sub Private Sub BtnKapat_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnKapat.Click End End Sub End Class

Page 66: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 66

Ekran Görüntüsü – Form1 (Veri Girişi)

Açıklamalı Kodlar Public Class Form1 Dim baglanti As New Data.OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; DataSource=|DataDirectory|\meteor.mdb; Persist Security Info=False;") Private Sub BtnKaydet_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnKaydet.Click baglanti.Open() If CmbBolge.Text = "SEÇİNİZ" Then ‘Bölge seçmeden olmaz… MsgBox("Bölge Seçiniz!") ElseIf Cmbil.Text = "SEÇİNİZ" Then ‘İl seçmeden olmaz… MsgBox("İl Seçiniz!") Else Dim sql, hava_durumu As String Dim hava_durumu_kodu As Byte If rdb_gunesli_1.Checked Then ‘Eğer güneşli resminin yanındaki radyo düğmesi işaretli ise bu durumda hava durumu kodu ve haca durumu değişkenlerine uygun değerler aktarılıyor. hava_durumu_kodu = 1 hava_durumu = "Güneşli" ElseIf rdb_azbulutlu_2.Checked Then

Page 67: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 67

hava_durumu_kodu = 2 hava_durumu = "Az Bulutlu" ElseIf rdb_bulutlu_3.Checked Then hava_durumu_kodu = 3 hava_durumu = "Bulutlu" ElseIf rdb_gokgurultulu_4.Checked Then hava_durumu_kodu = 4 hava_durumu = "Gök Gürültülü ve Sağanak Yağışlı" ElseIf rdb_karlakar_5.Checked Then hava_durumu_kodu = 5 hava_durumu = "Karla Karışık Yağmurlu" ElseIf rdb_kar_6.Checked Then hava_durumu_kodu = 6 hava_durumu = "Kar Yağışlı" ElseIf rdb_parcali_7.Checked Then hava_durumu_kodu = 7 hava_durumu = "Parçalı Bulutlu" ElseIf rdb_saganak_8.Checked Then hava_durumu_kodu = 8 hava_durumu = "Sağanak Yağışlı" ElseIf rdb_sis_9.Checked Then hava_durumu_kodu = 9 hava_durumu = "Sisli" ElseIf rdb_yeryeryagmur_10.Checked Then hava_durumu_kodu = 10 hava_durumu = "Yer Yer Yağmurlu" End If sql = "insert into ana_tablo (bolge,il,hava_durumu_kodu,hava_durumu,yorum,tarih) values ('" & CmbBolge.Text & "','" & Cmbil.Text & "'," & hava_durumu_kodu & ",'" & hava_durumu & "','" & TxtYorum.Text & "','" & Tarih.Value.Date & "')" Dim komut As New System.Data.OleDb.OleDbCommand(sql, baglanti) komut.ExecuteNonQuery() MsgBox("Bilgiler Veritabanına Kaydedilmiştir.") CmbBolge.Text = "SEÇİNİZ" ‘Kayıttan sora ekran ilk haline getiriliyor. Cmbil.Text = "SEÇİNİZ" Cmbil.Items.Clear() TxtYorum.Clear() rdb_gunesli_1.Checked = False rdb_azbulutlu_2.Checked = False rdb_bulutlu_3.Checked = False rdb_gokgurultulu_4.Checked = False rdb_karlakar_5.Checked = False rdb_kar_6.Checked = False rdb_parcali_7.Checked = False rdb_saganak_8.Checked = False rdb_sis_9.Checked = False rdb_yeryeryagmur_10.Checked = False CmbBolge.Focus() End If baglanti.Close() End Sub Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

Page 68: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 68

baglanti.Open() Dim sql As String sql = "select bolge from bolge_il group by bolge" ‘Form yüklenirken veritabanındaki bolge_il tablosundan coğrafi bölgeler alınıyor. Dim komut As New System.Data.OleDb.OleDbCommand(sql, baglanti) Dim veri_okuyucu As Data.OleDb.OleDbDataReader veri_okuyucu = komut.ExecuteReader While (veri_okuyucu.Read())‘Bu döngü çekilen veriyi (bölgeler) taramak için kullanılıyor. CmbBolge.Items.Add(veri_okuyucu("bolge")) ‘Bölgeler ilgili ComboBox a seçenek olarak ekleniyor. End While baglanti.Close() End Sub Private Sub BtnKapat_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnKapat.Click baglanti.Close() End End Sub Private Sub CmbBolge_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CmbBolge.SelectedIndexChanged baglanti.Open() Cmbil.Items.Clear() Cmbil.Text = "SEÇİNİZ" Dim sql As String sql = "select il from bolge_il where bolge = '" & CmbBolge.Text & "'" ‘Seçilen bölge altında yer alan iller seçiliyor ve ilgili ComboBox a seçenek olarak ekleniyor. Dim komut As New System.Data.OleDb.OleDbCommand(sql, baglanti) Dim veri_okuyucu As Data.OleDb.OleDbDataReader veri_okuyucu = komut.ExecuteReader While (veri_okuyucu.Read()) Cmbil.Items.Add(veri_okuyucu("il")) End While baglanti.Close() End Sub End Class

Page 69: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 69

Ekran Görüntüsü – Form2 (Veri Arama/Düzeltme/Silme)

Açıklamalı Kodlar Public Class Form2 Dim baglanti As New Data.OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=|DataDirectory|\meteor.mdb; Persist Security Info=False;") Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load baglanti.Open() Dim sql As String sql = "select bolge from bolge_il group by bolge" Dim komut As New System.Data.OleDb.OleDbCommand(sql, baglanti) Dim veri_okuyucu As Data.OleDb.OleDbDataReader veri_okuyucu = komut.ExecuteReader While (veri_okuyucu.Read()) CmbBolge.Items.Add(veri_okuyucu("bolge")) End While baglanti.Close() End Sub Private Sub CmbBolge_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CmbBolge.SelectedIndexChanged baglanti.Open() Cmbil.Items.Clear()

Page 70: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 70

Cmbil.Text = "SEÇİNİZ" Dim sql As String sql = "select il from bolge_il where bolge = '" & CmbBolge.Text & "'" Dim komut As New System.Data.OleDb.OleDbCommand(sql, baglanti) Dim veri_okuyucu As Data.OleDb.OleDbDataReader veri_okuyucu = komut.ExecuteReader While (veri_okuyucu.Read()) Cmbil.Items.Add(veri_okuyucu("il")) End While baglanti.Close() End Sub Private Sub BtnKapat_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnKapat.Click baglanti.Close() Me.Close() End Sub Private Sub BtnAra_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnAra.Click baglanti.Open() Dim sql As String sql = "select hava_durumu_kodu,yorum from ana_tablo where il = '" & Cmbil.Text & "' and tarih like '" & Tarih.Value.Date & "'" ‘il ve tarih değeri tutan kayıt aranıyor. Dim komut As New System.Data.OleDb.OleDbCommand(sql, baglanti) Dim veri_okuyucu As Data.OleDb.OleDbDataReader veri_okuyucu = komut.ExecuteReader If Not veri_okuyucu.HasRows Then ‘Eğer veri oluyucu kayıt içermiyor ise… MsgBox("Bu bilgiyi içeren herhangi bir kayıt bulunamadı...") Else While (veri_okuyucu.Read()) If veri_okuyucu("hava_durumu_kodu") = 1 Then rdb_gunesli_1.Checked = True ElseIf veri_okuyucu("hava_durumu_kodu") = 2 Then rdb_azbulutlu_2.Checked = True ElseIf veri_okuyucu("hava_durumu_kodu") = 3 Then rdb_bulutlu_3.Checked = True ElseIf veri_okuyucu("hava_durumu_kodu") = 4 Then rdb_gokgurultulu_4.Checked = True ElseIf veri_okuyucu("hava_durumu_kodu") = 5 Then rdb_karlakar_5.Checked = True ElseIf veri_okuyucu("hava_durumu_kodu") = 6 Then rdb_kar_6.Checked = True ElseIf veri_okuyucu("hava_durumu_kodu") = 7 Then rdb_parcali_7.Checked = True ElseIf veri_okuyucu("hava_durumu_kodu") = 8 Then rdb_saganak_8.Checked = True ElseIf veri_okuyucu("hava_durumu_kodu") = 9 Then rdb_sis_9.Checked = True Else rdb_yeryeryagmur_10.Checked = True End If

Page 71: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 71

TxtYorum.Text = veri_okuyucu("yorum") End While End If baglanti.Close() End Sub Private Sub BtnKaydet_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnKaydet.Click baglanti.Open() If CmbBolge.Text = "SEÇİNİZ" Then MsgBox("Bölge Seçiniz!") ElseIf Cmbil.Text = "SEÇİNİZ" Then MsgBox("İl Seçiniz!") Else Dim sql, hava_durumu As String Dim hava_durumu_kodu As Byte If rdb_gunesli_1.Checked Then hava_durumu_kodu = 1 hava_durumu = "Güneşli" ElseIf rdb_azbulutlu_2.Checked Then hava_durumu_kodu = 2 hava_durumu = "Az Bulutlu" ElseIf rdb_bulutlu_3.Checked Then hava_durumu_kodu = 3 hava_durumu = "Bulutlu" ElseIf rdb_gokgurultulu_4.Checked Then hava_durumu_kodu = 4 hava_durumu = "Gök Gürültülü ve Sağanak Yağışlı" ElseIf rdb_karlakar_5.Checked Then hava_durumu_kodu = 5 hava_durumu = "Karla Karışık Yağmurlu" ElseIf rdb_kar_6.Checked Then hava_durumu_kodu = 6 hava_durumu = "Kar Yağışlı" ElseIf rdb_parcali_7.Checked Then hava_durumu_kodu = 7 hava_durumu = "Parçalı Bulutlu" ElseIf rdb_saganak_8.Checked Then hava_durumu_kodu = 8 hava_durumu = "Sağanak Yağışlı" ElseIf rdb_sis_9.Checked Then hava_durumu_kodu = 9 hava_durumu = "Sisli" ElseIf rdb_yeryeryagmur_10.Checked Then hava_durumu_kodu = 10 hava_durumu = "Yer Yer Yağmurlu" End If sql = "update ana_tablo set hava_durumu_kodu = " & hava_durumu_kodu & ",hava_durumu = '" & hava_durumu & "',yorum = '" & TxtYorum.Text & "' where il = '" & Cmbil.Text & "' and tarih like '" & Tarih.Value.Date & "'" ‘Veritabanında güncelleme işlemi gerçekleştiriliyor. Dim komut As New System.Data.OleDb.OleDbCommand(sql, baglanti) komut.ExecuteNonQuery() MsgBox("Bilgiler Veritabanında Güncellenmiştir.")

Page 72: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 72

End If baglanti.Close() End Sub Private Sub BtnSil_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnSil.Click baglanti.Open() If CmbBolge.Text = "SEÇİNİZ" Then MsgBox("Bölge Seçiniz!") ElseIf Cmbil.Text = "SEÇİNİZ" Then MsgBox("İl Seçiniz!") Else Dim sql As String sql = "delete from ana_tablo where il = '" & Cmbil.Text & "' and tarih like '" & Tarih.Value.Date & "'" ‘Veritabanından formda bilgileri bulunan kayıt siliniyor. Dim komut As New System.Data.OleDb.OleDbCommand(sql, baglanti) komut.ExecuteNonQuery() MsgBox("Bilgiler Veritabanından Silinmiştir.") End If baglanti.Close() CmbBolge.Text = "SEÇİNİZ" Cmbil.Text = "SEÇİNİZ" Cmbil.Items.Clear() TxtYorum.Clear() rdb_gunesli_1.Checked = False rdb_azbulutlu_2.Checked = False rdb_bulutlu_3.Checked = False rdb_gokgurultulu_4.Checked = False rdb_karlakar_5.Checked = False rdb_kar_6.Checked = False rdb_parcali_7.Checked = False rdb_saganak_8.Checked = False rdb_sis_9.Checked = False rdb_yeryeryagmur_10.Checked = False CmbBolge.Focus() End Sub End Class

Page 73: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 73

Veritabanı Tasarımı (meteor.mdb)

Page 74: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 74

Page 75: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 75

VERİTABANI UYGULAMALARI HAKKINDA ÖZET BİLGİ

VB.Net uygulamasından bir Access veritabanına nasıl bağlanırım?

Bunun için ilk yapmamız gereken, bir bağlantı cümlesi kurmaktır. Aşağıda iki farklı durum için örnekler verilmiştir:

Dim baglanti_metni1, baglanti_metni2 As String

baglanti_metni1 = "Provider=Microsoft.ACE.OLEDB.12.0; DataSource=|DataDirectory|\vt1.accdb; Persist Security Info=False;"

baglanti_metni2 = "Provider=Microsoft.Jet.OLEDB.4.0; DataSource=|DataDirectory|\vt1.mdb; Persist Security Info=False;"

İlk cümlede (baglanti_metni1) bağlanılan veritabanı dosyası Access 2007 sürümüne aittir. Dolayısıyla accdb formatındadır.

İkinci cümlede ise (baglanti_metni2) bağlanılan veritabanı dosyası Access 2003 sürümüne ait bir mdb dosyasıdır.

Bu cümlelerden uygun olanı seçilerek bağlantı kurulur:

Dim baglanti1 As New Data.OleDb.OleDbConnection(baglanti_metni2) baglanti1.Open()

Bağlandığım veritabanında bir tabloya nasıl veri girebilirim?

Öncelikle buna uygun bir SQL cümlesi oluşturmamız gerekir:

sql1 = "insert into anatablo (numarasi, adi, soyadi, fakultesi, bolumu) values (10909299, ‘Salih’, ‘Baran’, ‘Eğitim Bilimleri’, ‘BÖTE’)"

İkinci olarak, bu SQL cümlesi ve daha önce tanımladığımız bağlantı (baglanti1) kullanılarak bir komut tanımlanması ve bu komutun çalıştırılması gerekir:

Dim komut1 As New System.Data.OleDb.OleDbCommand(sql1, baglanti1) komut1.ExecuteNonQuery()

Ve artık bilgiler veritabanımızın anatablo isimli tablosunda…

Bağlantımızı kapatabiliriz:

baglanti1.Close()

Peki ya bilgileri form üzerinden almak istersem?

Yukarıdaki kodlarda yapacağımız tek değişiklik, SQL cümlesinde olacaktır:

sql1 = "insert into anatablo (numarasi, adi, soyadi, fakultesi, bolumu) values (“ & TxtNumara.Text & “,‘” & TxtAd.Text & “’,‘” & TxtSoyad.Text & “’,‘” & TxtFakulte.Text & “’,‘” & TxtBolum.Text “’)"

Page 76: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 76

Veritabanındaki bir tablodan nasıl veri çekebilirim?

Daha önce tanımladığımız bağlantımızı açarak başlayalım:

baglanti1.Open()

Şimdi bu bağlantı üzerinden şu SQL cümlesini çalıştıracağız:

sql2 = “select * from anatablo” Dim komut1 As New System.Data.OleDb.OleDbCommand(sql2, baglanti1)

Şimdi bu komut üzerinden yeni bir nesne olan veri okuyucuyu çalıştıracağız:

Dim veri_okuyucu As Data.OleDb.OleDbDataReader veri_okuyucu = komut.ExecuteReader

Artık anatablo içindeki veriler veri_okuyucu nesnesi içersinde. Son olarak bu nesnenin içerdiği bilgilerin nasıl görüntülenebileceğine bakalım:

While (veri_okuyucu.Read()) LstBilgiler.Items.Add(veri_okuyucu("numarasi") & “ “ & veri_okuyucu("adi") & “ “ & veri_okuyucu("soyadi")) End While

Ve bağlantımızı kapatalım:

baglanti1.Close()

Ya sadece belirli alanları çekmek İstersem?

Sadece SQL cümlemizde değişiklik yapacağız:

sql2 = “select numarasi, adi, soyadi from anatablo”

Peki “soyadı A harfi ile başlayan” gibi bir koşul koymak istersem?

Yine SQL cümlemizi değiştirmek yeterli olacaktır:

sql2 = “select numarasi, adi, soyadi from anatablo where adi like ‘A%’”

Veritabanındaki bir tablonun istediğim bir kaydını nasıl güncellerim?

Öncelikle şu SQL cümlesinin oluşturulması gerekir:

sql1 = "update anatablo set adi=’“ & TxtAd.Text & “’,soyadi=’” & TxtSoyad.Text & “’ where numarasi=" & TxtNumara.Text

Bundan sonraki adım, kayıt ekleme ile aynı olacaktır:

Dim komut1 As New System.Data.OleDb.OleDbCommand(sql1, baglanti1) komut1.ExecuteNonQuery()

Bağlantımızı kapatabiliriz:

baglanti1.Close()

Page 77: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 77

Veritabanındaki bir tablonun istediğim bir kaydını nasıl silebilirim?

Öncelikle SQL cümlemizi yazalım:

sql1 = "delete from anatablo where numarasi=" & TxtNumara.Text

Bundan sonraki adım, kayıt ekleme ve güncelleme ile aynı olacaktır:

Dim komut1 As New System.Data.OleDb.OleDbCommand(sql1, baglanti1) komut1.ExecuteNonQuery()

Bağlantımızı kapatabiliriz:

baglanti1.Close()

Page 78: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 78

Uygulama No: 41 – Veritabanı Uygulaması 7

Açıklama : Veritabanı bağlantılı Dinamik ComboBox kullanımı

Ekran Görüntüsü

Açıklamalı Kodlar Public Class Form1 Dim baglanti As New Data.OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=|DataDirectory|\ogrenci.mdb; Persist Security Info=False;") Dim flag As Byte Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load baglanti.Open() Dim sql As String ‘ Fakülteler form yüklenirken veritabanından gelsin sql = "select fakulte from fakulte_bolum group by fakulte" ‘group by kullanılıyor çünkü fakülte adları fakulte_bolum tablosunda tekrar ediyor. Dim komut As New System.Data.OleDb.OleDbCommand(sql, baglanti) Dim veri_okuyucu As Data.OleDb.OleDbDataReader veri_okuyucu = komut.ExecuteReader While (veri_okuyucu.Read()) CmbFakulte.Items.Add(veri_okuyucu("Fakulte")) End While baglanti.Close() End Sub Private Sub CmbFakulte_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles

Page 79: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 79

CmbFakulte.SelectedIndexChanged If flag = 0 Then baglanti.Open() CmbBolum.Items.Clear() CmbBolum.Text = "SEÇİNİZ" Dim sql As String sql = "select Bolum from fakulte_bolum where fakulte = '" & CmbFakulte.Text & "'" Dim komut As New System.Data.OleDb.OleDbCommand(sql, baglanti) Dim veri_okuyucu As Data.OleDb.OleDbDataReader veri_okuyucu = komut.ExecuteReader ‘Veritabanından seçilen fakülte altında yer alan bölümler çekiliyor While (veri_okuyucu.Read()) CmbBolum.Items.Add(veri_okuyucu("bolum")) End While If flag = 0 Then baglanti.Close() End Sub Private Sub BtnBilgiGetir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnBilgiGetir.Click flag = 1 baglanti.Open() Dim sql As String sql = "select * from ana_tablo where Ogrencino = '" & TxtOgrenciNo.Text & "'" Dim komut As New System.Data.OleDb.OleDbCommand(sql, baglanti) Dim veri_okuyucu1 As Data.OleDb.OleDbDataReader veri_okuyucu1 = komut.ExecuteReader If Not veri_okuyucu1.HasRows Then ‘ Eğer veri okuyucu boş dönmüş ise… MsgBox("Bu bilgiyi içeren herhangi bir kayıt bulunamadı...") Else While (veri_okuyucu1.Read()) TextAd.Text = veri_okuyucu1("adi") TextSoyad.Text = veri_okuyucu1("soyadi") TextBabaAd.Text = veri_okuyucu1("babaadi") TextGun.Text = veri_okuyucu1("gun") TextAy.Text = veri_okuyucu1("ay") TextYil.Text = veri_okuyucu1("yil") CmbFakulte.SelectedItem = veri_okuyucu1("fakulte") CmbBolum.SelectedItem = veri_okuyucu1("bolum") End While End If baglanti.Close() flag = 0 End Sub Private Sub BtnKaydet_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnKaydet.Click baglanti.Open() Dim sql As String If CmbFakulte.Text = "SEÇİNİZ" Then MsgBox("Fakülte Seçiniz!") ElseIf CmbBolum.Text = "SEÇİNİZ" Then MsgBox("Bölüm Seçiniz!") Else sql = "update ana_tablo set fakulte = '" & CmbFakulte.Text & "', bolum='" & CmbBolum.Text & "',adi = '" & TextAd.Text & "',soyadi='" & TextSoyad.Text & "',babaadi = '" & TextBabaAd.Text & "',gun=" & TextGun.Text & ",ay=" & TextAy.Text & ",yil=" & TextYil.Text & " where

Page 80: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 80

ogrencino = '" & TxtOgrenciNo.Text & "'" Dim komut As New System.Data.OleDb.OleDbCommand(sql, baglanti) komut.ExecuteNonQuery() ‘Veritabanında ana_tablo üzerinde düzeltme yapıldı. MsgBox("Bilgiler Veritabanında Güncellenmiştir.") End If baglanti.Close() End Sub End Class

Page 81: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 81

Uygulama No: 42 – Veritabanı Uygulaması 8

Açıklama : Veritabanı bağlantılı web tarayıcısı uygulaması

Ekran Görüntüsü – Form1

Açıklamalı Kodlar Public Class Form1 Dim baglanti As New Data.OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=|DataDirectory|\webadres.mdb; Persist Security Info=False;") Private Sub BtnGit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnGit.Click If Trim(CmbAdres.Text) <> "" Then Dim adresTXT As String = CmbAdres.Text If Strings.Left(adresTXT, 7) <> "http://" And CmbAdres.Text <> "about:blank" Then adresTXT = "http://" & adresTXT End If Dim adresURL As New Uri(adresTXT) WebBrowser1.Url = adresURL CmbAdres.Text = adresTXT 'Adresi veritabanına ekle: baglanti.Open() Dim Sql As String = "insert into tablo1 (url,tarih) values ('" & adresTXT & "','" & Date.Now & "')" Dim komut As New System.Data.OleDb.OleDbCommand(Sql, baglanti) komut.ExecuteNonQuery() baglanti.Close()

Page 82: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 82

'Adresi adres çubuğuna ekle: CmbAdres.Items.Add(adresTXT) End If End Sub Private Sub CmbAdres_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles CmbAdres.KeyPress 'Enter tuşuna basıldığında Git butonuna bas: If e.KeyChar = Chr(13) Then BtnGit.PerformClick() End If End Sub Private Sub CmbAdres_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CmbAdres.SelectedIndexChanged 'Adres çubuğundan yeni adres seçilir seçilmez git: Dim adresURL As New Uri(CmbAdres.Text) WebBrowser1.Url = adresURL End Sub Private Sub WebBrowser1_Navigated(ByVal sender As Object, ByVal e As System.Windows.Forms.WebBrowserNavigatedEventArgs) Handles WebBrowser1.Navigated 'Gezinilen adresleri da göster: CmbAdres.Text = WebBrowser1.Url.ToString End Sub Private Sub KapatToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles KapatToolStripMenuItem.Click End End Sub Private Sub BtnAdres_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnAdres.Click Dim adresURL As New Uri(CmbAdres.Text) MsgBox(adresURL.AbsoluteUri) End Sub Private Sub SıkKullanılanlaraEkleToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SıkKullanılanlaraEkleToolStripMenuItem.Click SıkKullanılanlarToolStripMenuItem.DropDownItems.Add(WebBrowser1.Url.ToString) End Sub Private Sub BtnGeri_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnGeri.Click WebBrowser1.GoBack() End Sub Private Sub BtnIleri_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnIleri.Click WebBrowser1.GoForward() End Sub Private Sub BtnGiris_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnGiris.Click WebBrowser1.GoHome()

Page 83: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 83

End Sub Private Sub BtnArama_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnArama.Click WebBrowser1.GoSearch() End Sub Private Sub GeçmişZiyaretlerToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles GeçmişZiyaretlerToolStripMenuItem.Click Form2.Show() End Sub Private Sub İnternetSeçenekleriToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles İnternetSeçenekleriToolStripMenuItem.Click Form3.Show() End Sub End Class

Ekran Görüntüsü – Form2

Açıklamalı Kodlar Public Class Form2 Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Me.Tablo1TableAdapter.Fill(Me.WebadresDataSet4.Tablo1) End Sub Private Sub DataGridView1_CellContentDoubleClick(ByVal sender As

Page 84: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 84

Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellContentDoubleClick Form1.CmbAdres.Text = DataGridView1.CurrentCell.Value Form1.BtnGit.PerformClick() ‘Git butonuna bastırıyoruz. Me.Close() End Sub End Class

Veritabanı Yapısı

Page 85: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 85

Uygulama No: 43 – Anket

Açıklama : Veritabanı bağlantılı anket oluşturma uygulaması. Soru Tipleri

1. Açık uçlu soru 2. Çok seçimli 3. Tek seçimli

Soru No İfadesi Soru tipi 1 ….nedir? 1 2 …hangileri? 2 3 …? 3

no Soru no Seçenek ifadesi 1 2 Astronomi 2 2 Edebiyat 3 2 Sinema 4 3 100-500 5 3 500-1000

Ekran Görüntüsü

Açıklamalı Kodlar Public Class Form1 Dim baglanti As New Data.OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=|DataDirectory|\anket.mdb; Persist Security Info=False;")

Page 86: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 86

Dim soruno As Byte = 0 Private Sub CmbSoruTipi_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CmbSoruTipi.SelectedIndexChanged 'Seçmeli soru tipi ise seçenek girme araçları görünsün: If CmbSoruTipi.Text = "2" Or CmbSoruTipi.Text = "3" Then GroupBox1.Visible = True Else GroupBox1.Visible = False End If End Sub Private Sub BtnSoruKaydet_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnSoruKaydet.Click If Strings.Trim(TxtSoruIfade.Text) <> "" And CmbSoruTipi.Text <> "" Then baglanti.Open() Dim Sql As String = "insert into Sorular (soru,sorutipi) values ('" & TxtSoruIfade.Text & "'," & CmbSoruTipi.Text & ")" Dim komut As New System.Data.OleDb.OleDbCommand(Sql, baglanti) komut.ExecuteNonQuery() 'Kaydedilen en son soru numarası alınıyor: Dim komut1 As New System.Data.OleDb.OleDbCommand("select soruno from Sorular", baglanti) Dim veri_okuyucu As Data.OleDb.OleDbDataReader veri_okuyucu = komut1.ExecuteReader While (veri_okuyucu.Read()) soruno = veri_okuyucu("soruno") End While 'Döngü bittiğinde soruno değişkeninin içinde kaydedilen en son soru numarası olacaktır. baglanti.Close() If CmbSoruTipi.Text = "1" Then TxtSoruIfade.Clear() CmbSoruTipi.Text = "" TxtSoruIfade.Focus() End If Else MsgBox("Soru ifadesini ve soru tipini giriniz.") TxtSoruIfade.Focus() End If End Sub Private Sub BtnSecenekKaydet_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnSecenekKaydet.Click If soruno <> 0 Then 'Demek ki soruyu kaydetmiş. baglanti.Open() Dim Sql As String = "insert into Secenekler (soruno,secenek) values (" & soruno & ",'" & TxtSecenekIfade.Text & "')" Dim komut As New System.Data.OleDb.OleDbCommand(Sql, baglanti) komut.ExecuteNonQuery() baglanti.Close() TxtSecenekIfade.Clear() TxtSecenekIfade.Focus() Else MsgBox("Önce seçenek ekleyeceğiniz soruyu kaydediniz.") End If End Sub

Page 87: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 87

Private Sub BtnYeniSoru_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnYeniSoru.Click GroupBox1.Visible = False TxtSoruIfade.Clear() CmbSoruTipi.Text = "" TxtSoruIfade.Focus() soruno = 0 'Seçenek eklenecek soru numarası yeniden sıfırlanıyor. End Sub Private Sub BtnKapat_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnKapat.Click End End Sub End Class

Page 88: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 88

Uygulama No: 44 – Anket Göster

Açıklama : Bir önceki uygulamada hazırlanan anketin kullanıcı temelli olarak uygulanması.

Ekran Görüntüsü – Form1

Açıklamalı Kodlar Public Class Form1 Dim baglanti As New Data.OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=|DataDirectory|\anket.mdb; Persist Security Info=False;") Private Sub BtnGir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnGir.Click baglanti.Open() Dim sql As String = "select * from kln where kln='" & TxtKln.Text & "' and sfr='" & TxtSfr.Text & "'" Dim komut As New System.Data.OleDb.OleDbCommand(sql, baglanti) Dim veri_okuyucu As Data.OleDb.OleDbDataReader veri_okuyucu = komut.ExecuteReader If veri_okuyucu.HasRows = True Then kln = TxtKln.Text 'Kullanıcıyı form2 ye aktarmak için. Form2.ShowDialog() Me.Hide() Else MsgBox("Kullanıcı adı ya da şifre hatalı!") TxtKln.Focus() End If baglanti.Close() End Sub End Class

Page 89: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 89

Ekran Görüntüsü – Form2

Açıklamalı Kodlar Public Class Form2 Dim baglanti As New Data.OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=|DataDirectory|\anket.mdb; Persist Security Info=False;") Dim komut1 As New System.Data.OleDb.OleDbCommand("select * from Sorular", baglanti) Dim veri_okuyucu1 As Data.OleDb.OleDbDataReader Dim cevap, soru_no As String Private Function temizle() TxtSoru.Clear() TxtCevap.Clear() Grp1.Visible = False Grp2.Visible = False Grp3.Visible = False cevap = "" Return Nothing 'Fonksiyon değer döndürmüyor uyarısı için. End Function Private Function ekran() Dim sql1 As String = "insert into kln_cevap (kln,soruno,cevap) values ('" + kln + "'," + soru_no + ",'" & cevap & "')" Dim komut3 As New System.Data.OleDb.OleDbCommand(sql1, baglanti) komut3.ExecuteNonQuery() If veri_okuyucu1.Read() Then temizle() TxtSoru.Text = veri_okuyucu1("soru") soru_no = veri_okuyucu1("soruno") If veri_okuyucu1("sorutipi") = 1 Then

Page 90: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 90

Grp1.Visible = True Grp2.Visible = False Grp3.Visible = False ElseIf veri_okuyucu1("sorutipi") = 2 Then Grp1.Visible = False Grp2.Visible = True Grp3.Visible = False Else Grp1.Visible = False Grp2.Visible = False Grp3.Visible = True End If If veri_okuyucu1("sorutipi") = 2 Or veri_okuyucu1("sorutipi") = 3 Then Dim sql As String = "select secenek from Secenekler where soruno=" & soru_no Dim komut2 As New System.Data.OleDb.OleDbCommand(sql, baglanti) Dim veri_okuyucu2 As Data.OleDb.OleDbDataReader veri_okuyucu2 = komut2.ExecuteReader veri_okuyucu2.Read() Dim kontrol As Control If veri_okuyucu1("sorutipi") = 2 Then For Each kontrol In Grp2.Controls kontrol.Visible = True kontrol.Text = veri_okuyucu2("secenek") If Not veri_okuyucu2.Read() Then Exit For Next Else For Each kontrol In Grp3.Controls kontrol.Visible = True kontrol.Text = veri_okuyucu2("secenek") If Not veri_okuyucu2.Read() Then Exit For Next End If End If Else MsgBox("Sorular Bitti...") End If Return Nothing 'Fonksiyon değer döndürmüyor uyarısı için. End Function Private Sub Form2_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing End 'Arkada açık kalan kullanıcı giriş formunu da sonlandırmak için. End Sub Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load baglanti.Open() veri_okuyucu1 = komut1.ExecuteReader If veri_okuyucu1.Read() Then soru_no = veri_okuyucu1("soruno") TxtSoru.Text = veri_okuyucu1("soru") If veri_okuyucu1("sorutipi") = 1 Then Grp1.Visible = True Grp2.Visible = False Grp3.Visible = False ElseIf veri_okuyucu1("sorutipi") = 2 Then Grp1.Visible = False Grp2.Visible = True

Page 91: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 91

Grp3.Visible = False Else Grp1.Visible = False Grp2.Visible = False Grp3.Visible = True End If If veri_okuyucu1("sorutipi") = 2 Or veri_okuyucu1("sorutipi") = 3 Then Dim soru_no As String = veri_okuyucu1("soruno") Dim sql As String = "select secenek from Secenekler where soruno=" & soru_no Dim komut2 As New System.Data.OleDb.OleDbCommand(sql, baglanti) Dim veri_okuyucu2 As Data.OleDb.OleDbDataReader veri_okuyucu2 = komut2.ExecuteReader veri_okuyucu2.Read() Dim kontrol As Control If veri_okuyucu1("sorutipi") = 2 Then For Each kontrol In Grp2.Controls kontrol.Visible = True kontrol.Text = veri_okuyucu2("secenek") If Not veri_okuyucu2.Read() Then Exit For Next Else For Each kontrol In Grp3.Controls kontrol.Visible = True kontrol.Text = veri_okuyucu2("secenek") If Not veri_okuyucu2.Read() Then Exit For Next End If End If Else MsgBox("Sorular Bitti...") baglanti.Close() End If End Sub Private Sub BtnSonraki_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnSonraki.Click ekran() End Sub Private Sub RadioButton8_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton8.CheckedChanged cevap = RadioButton8.Text End Sub Private Sub RadioButton7_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton7.CheckedChanged cevap = RadioButton7.Text End Sub Private Sub RadioButton6_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton6.CheckedChanged cevap = RadioButton6.Text End Sub Private Sub RadioButton5_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton5.CheckedChanged cevap = RadioButton5.Text

Page 92: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 92

End Sub Private Sub RadioButton4_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton4.CheckedChanged cevap = RadioButton4.Text End Sub Private Sub RadioButton3_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton3.CheckedChanged cevap = RadioButton3.Text End Sub Private Sub RadioButton2_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton2.CheckedChanged cevap = RadioButton2.Text End Sub Private Sub RadioButton1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton1.CheckedChanged cevap = RadioButton1.Text End Sub Private Sub CheckBox8_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox8.CheckedChanged cevap = cevap & ";" & CheckBox8.Text End Sub Private Sub CheckBox7_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox7.CheckedChanged cevap = cevap & ";" & CheckBox7.Text End Sub Private Sub CheckBox6_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox6.CheckedChanged cevap = cevap & ";" & CheckBox6.Text End Sub Private Sub CheckBox5_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox5.CheckedChanged cevap = cevap & ";" & CheckBox5.Text End Sub Private Sub CheckBox4_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox4.CheckedChanged cevap = cevap & ";" & CheckBox4.Text End Sub Private Sub CheckBox3_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox3.CheckedChanged cevap = cevap & ";" & CheckBox3.Text End Sub Private Sub CheckBox2_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox2.CheckedChanged cevap = cevap & ";" & CheckBox2.Text End Sub Private Sub CheckBox1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged cevap = cevap & ";" & CheckBox1.Text

Page 93: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 93

End Sub Private Sub TxtCevap_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TxtCevap.TextChanged cevap = TxtCevap.Text End Sub End Class

Modül Module Module1 Public kln As String End Module ‘ Modül ne işe yarar? Projenin tamamında kullanacağımız bütün tanımlamalar (burada kullanıcı adını form1 den form2 ye geçirmek istedik) modülde yapılır.

Veritabanı Yapısı

Page 94: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 94

Page 95: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 95

Uygulama No: 45 – Veritabanı Uygulaması 9

Açıklama : Veritabanından koşullu sorgulama gerçekleştirilen uygulama.

Ekran Görüntüsü

Açıklamalı Kodlar Public Class Form1 Dim baglanti_metni As String = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=|DataDirectory|\ihracat.mdb; Persist Security Info=False;" Dim baglanti As New Data.OleDb.OleDbConnection(baglanti_metni) Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 'Veritabanı ile bağlantı sağlanıyor: baglanti.Open() 'Yıllar ComboBox dolduruluyor: Dim sql As String = "select yil from Anatablo group by yil" Dim komut As New System.Data.OleDb.OleDbCommand(sql, baglanti) Dim veri_okuyucu As Data.OleDb.OleDbDataReader veri_okuyucu = komut.ExecuteReader While (veri_okuyucu.Read()) CmbYil.Items.Add(veri_okuyucu("yil")) End While 'Sektörler ComboBox dolduruluyor: Dim sql1 As String = "select sektor from Anatablo group by sektor" Dim komut1 As New System.Data.OleDb.OleDbCommand(sql1, baglanti) Dim veri_okuyucu1 As Data.OleDb.OleDbDataReader veri_okuyucu1 = komut1.ExecuteReader While (veri_okuyucu1.Read()) CmbSektor.Items.Add(veri_okuyucu1("sektor")) End While End Sub Private Sub BtnGuncelle_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnGuncelle.Click Dim sql As String = "select tutar from Anatablo where sektor='" & CmbSektor.Text & "'" Dim komut As New System.Data.OleDb.OleDbCommand(sql, baglanti) Dim veri_okuyucu As Data.OleDb.OleDbDataReader Dim toplam As Integer = 0

Page 96: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 96

veri_okuyucu = komut.ExecuteReader While (veri_okuyucu.Read()) toplam = toplam + veri_okuyucu("tutar") End While LblToplam.Text = toplam End Sub Private Sub BtnTutar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnTutar.Click Dim sql As String = "select tutar from Anatablo where yil=" & CInt(CmbYil.Text) & " and sektor='" & CmbSektor.Text & "'" Dim komut As New System.Data.OleDb.OleDbCommand(sql, baglanti) Dim veri_okuyucu As Data.OleDb.OleDbDataReader veri_okuyucu = komut.ExecuteReader If veri_okuyucu.HasRows = True Then veri_okuyucu.Read() LblIhracatTutar.Text = veri_okuyucu("tutar") End If End Sub Private Sub CmbSektor_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CmbSektor.SelectedIndexChanged LblSektor.Text = CmbSektor.Text End Sub End Class

Veritabanı Yapısı

Page 97: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 97

Uygulama No: 46 – Veritabanı Uygulaması 10

Açıklama : Veritabanından gerçekleştirilen ikinci el otomobil sorgulaması.

Ekran Görüntüsü

Açıklamalı Kodlar Public Class Form1 Dim baglanti_metni As String = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=|DataDirectory|\otomobil.mdb; Persist Security Info=False;" Dim baglanti As New Data.OleDb.OleDbConnection(baglanti_metni) Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'Veritabanı ile bağlantı sağlanıyor: baglanti.Open() 'Marka ComboBox'ı dolduruluyor: Dim sql As String = "select marka from oto_bilgi group by marka" Dim komut As New System.Data.OleDb.OleDbCommand(sql, baglanti) Dim veri_okuyucu As Data.OleDb.OleDbDataReader veri_okuyucu = komut.ExecuteReader While (veri_okuyucu.Read()) CmbMarka.Items.Add(veri_okuyucu("marka"))

Page 98: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 98

End While 'Yil ComboBox'ı dolduruluyor: Dim sql1 As String = "select yil from oto_bilgi group by yil" Dim komut1 As New System.Data.OleDb.OleDbCommand(sql1, baglanti) Dim veri_okuyucu1 As Data.OleDb.OleDbDataReader veri_okuyucu1 = komut1.ExecuteReader While (veri_okuyucu1.Read()) CmbYil.Items.Add(veri_okuyucu1("yil")) End While 'Renk ComboBox'ı dolduruluyor: Dim sql2 As String = "select renk from oto_bilgi group by renk" Dim komut2 As New System.Data.OleDb.OleDbCommand(sql2, baglanti) Dim veri_okuyucu2 As Data.OleDb.OleDbDataReader veri_okuyucu2 = komut2.ExecuteReader While (veri_okuyucu2.Read()) CmbRenk.Items.Add(veri_okuyucu2("renk")) End While 'Yakıt Türü ComboBox'ı dolduruluyor: Dim sql3 As String = "select yakit_turu from oto_bilgi group by yakit_turu" Dim komut3 As New System.Data.OleDb.OleDbCommand(sql3, baglanti) Dim veri_okuyucu3 As Data.OleDb.OleDbDataReader veri_okuyucu3 = komut3.ExecuteReader While (veri_okuyucu3.Read()) CmbYakitTuru.Items.Add(veri_okuyucu3("yakit_turu")) End While 'Vites ComboBox'ı dolduruluyor: Dim sql4 As String = "select vites from oto_bilgi group by vites" Dim komut4 As New System.Data.OleDb.OleDbCommand(sql4, baglanti) Dim veri_okuyucu4 As Data.OleDb.OleDbDataReader veri_okuyucu4 = komut4.ExecuteReader While (veri_okuyucu4.Read()) CmbVites.Items.Add(veri_okuyucu4("vites")) End While End Sub Private Sub CmbMarka_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CmbMarka.SelectedIndexChanged CmbModel.Text = "" CmbModel.Items.Clear() 'Marka ComboBox'ına bağlı olarak Model ComboBox'ı dolduruluyor: Dim sql As String = "select model from oto_bilgi where marka='" & CmbMarka.Text & "' group by model" Dim komut As New System.Data.OleDb.OleDbCommand(sql, baglanti) Dim veri_okuyucu As Data.OleDb.OleDbDataReader veri_okuyucu = komut.ExecuteReader While (veri_okuyucu.Read()) CmbModel.Items.Add(veri_okuyucu("model")) End While End Sub Private Sub BtnBul_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnBul.Click LstSonuclar.Items.Clear()

Page 99: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 99

Dim sonuc_metni As String = "" Dim sql As String If CmbYil.Text = "" Then sql = "SELECT * FROM oto_bilgi WHERE marka='" & CmbMarka.Text & "' AND model='" & CmbModel.Text & "' AND renk='" & CmbRenk.Text & "' AND yakit_turu='" & CmbYakitTuru.Text & "' AND vites='" & CmbVites.Text & "' AND (km BETWEEN " & CInt(TxtKilometre1.Text) & " AND " & CInt(TxtKilometre2.Text) & ") AND (fiyat BETWEEN " & CInt(TxtFiyat1.Text) & " AND " & CInt(TxtFiyat2.Text) & ")" Else sql = "SELECT * FROM oto_bilgi WHERE marka='" & CmbMarka.Text & "' AND model='" & CmbModel.Text & "' AND yil=" & CInt(CmbYil.Text) & " AND renk='" & CmbRenk.Text & "' AND yakit_turu='" & CmbYakitTuru.Text & "' AND vites='" & CmbVites.Text & "' AND (km BETWEEN " & CInt(TxtKilometre1.Text) & " AND " & CInt(TxtKilometre2.Text) & ") AND (fiyat BETWEEN " & CInt(TxtFiyat1.Text) & " AND " & CInt(TxtFiyat2.Text) & ")" End If Dim komut As New System.Data.OleDb.OleDbCommand(sql, baglanti) Dim veri_okuyucu As Data.OleDb.OleDbDataReader veri_okuyucu = komut.ExecuteReader If veri_okuyucu.HasRows Then While (veri_okuyucu.Read()) sonuc_metni = veri_okuyucu("marka") & " " & veri_okuyucu("model") & " " & veri_okuyucu("versiyon") & ", " & veri_okuyucu("renk") & " renk, fiyatı ise " & veri_okuyucu("fiyat") & " TL" LstSonuclar.Items.Add(sonuc_metni) End While Else LstSonuclar.Items.Add("Veritabanımızda bu kriterlere uygun kayıt yoktur.") End If End Sub End Class

Veritabanı Yapısı

Page 100: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 100

Uygulama No: 47 – Veritabanı Uygulaması 11

Açıklama : Basit bir banka (müşteri-hesap) uygulaması. İlişkisel veritabanı kullanılmıştır.

Ekran Görüntüsü – Form1

Açıklamalı Kodlar Public Class Form1 Private Sub PictureBox1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox1.Click FrmYeniHesap.ShowDialog() End Sub Private Sub PictureBox2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox2.Click FrmYeniMusteri.ShowDialog() End Sub End Class

Page 101: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 101

Ekran Görüntüsü – FrmYeniMusteri

Açıklamalı Kodlar Public Class FrmYeniMusteri Private Sub BtnKaydet_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnKaydet.Click baglantiAc() 'Müşteri tanlosuna kaydediliyor: Dim musteriTuru As Byte = CByte(Strings.Left(CmbTur.Text, 1)) Dim Sql As String = "insert into musteri (ad1,ad2,soyad1,soyad2,turu,tel1,tel2,adres) values ('" & TxtAd1.Text & "','" & TxtAd2.Text & "','" & TxtSoyad1.Text & "','" & TxtSoyad2.Text & "'," & musteriTuru & ",'" & TxtTel1.Text & "','" & TxtTel2.Text & "','" & TxtAdres.Text & "')" Dim komut As New System.Data.OleDb.OleDbCommand(Sql, baglanti) komut.ExecuteNonQuery() MsgBox("Müşteri bilgileri veritabanına eklenmiştir.") TxtAd1.Clear() TxtAd2.Clear() TxtSoyad1.Clear() TxtSoyad2.Clear() TxtTel1.Clear() TxtTel2.Clear() TxtAdres.Clear() CmbTur.ResetText() TxtAd1.Focus() End Sub End Class

Page 102: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 102

Ekran Görüntüsü – FrmYeniHesap

Açıklamalı Kodlar Public Class FrmYeniHesap Dim musterino As Integer Private Sub FrmYeniHesap_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load baglantiAc() Dim sql As String = "select * from musteri" Dim komut As New System.Data.OleDb.OleDbCommand(sql, baglanti) Dim veri_okuyucu As Data.OleDb.OleDbDataReader veri_okuyucu = komut.ExecuteReader CmbSahip.Items.Clear() CmbMusteriNo_Gizli.Items.Clear()'Gizli combo, seçilen müşerinin numarasını almak için kullanılıyor. While (veri_okuyucu.Read()) CmbSahip.Items.Add(veri_okuyucu("ad1") & " " & veri_okuyucu("ad2") & " " & veri_okuyucu("soyad1") & " " & veri_okuyucu("soyad2") & "-" & veri_okuyucu("no")) CmbMusteriNo_Gizli.Items.Add(veri_okuyucu("no")) End While End Sub Private Sub BtnKaydet_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnKaydet.Click baglantiAc() 'Hesap tablosuna kaydediliyor: Dim durumu As Byte = CByte(Strings.Left(CmbDurum.Text, 1)) Dim turu As Byte = CByte(Strings.Left(CmbTur.Text, 1)) Dim Sql As String = "insert into hesap (iban,turu,acilma_tarihi,bakiye,durumu,musterino) values ('" & TxtIBAN.Text & "'," & turu & ",'" & DateTimePicker1.Value & "'," & TxtBakiye.Text & ","

Page 103: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 103

& durumu & "," & musterino & ")" Dim komut As New System.Data.OleDb.OleDbCommand(Sql, baglanti) komut.ExecuteNonQuery() MsgBox("Hesap bilgileri veritabanına eklenmiştir.") TxtBakiye.Clear() TxtIBAN.Clear() CmbDurum.ResetText() CmbSahip.ResetText() CmbTur.ResetText() TxtIBAN.Focus() End Sub Private Sub CmbSahip_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CmbSahip.SelectedIndexChanged musterino = CInt(CmbMusteriNo_Gizli.Items(CmbSahip.SelectedIndex)) End Sub End Class

Veritabanı Yapısı

Page 104: VB.Net Örnek Uygulamalar

VB.Net Örnek Uygulamalar

2 Kasım 2011

Tolga GÜYER Sayfa 104

Müşteri tablosunun birincil anahtarı, hesap tablosunda müşteri numarası adıyla yabancı anahtar yapılmak suretiyle bu iki tablo ilişkilendirilmiştir. İlişki 1-N tipindedir; yani bir müşterinin birden çok sayıda hesabı olabilirken, bir hesap sadece bir müşteriye ait olabilir.