04.03.2015 Views

VBNET

Vb.Net üzere güzel örnekler bulunduran bir döküman

Vb.Net üzere güzel örnekler bulunduran bir döküman

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

VB.Net Örnek Uygulamalar<br />

Tolga GÜYER<br />

02.11.2011


VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

İçindekiler<br />

Uygulama No: 1 – Buraya Basmayın! ...................................................................................................... 4<br />

Uygulama No: 2 – Vücut-Kitle İndeksi ..................................................................................................... 5<br />

Uygulama No: 3 – Burçlar ........................................................................................................................ 7<br />

Uygulama No: 4 – Not Hesapla................................................................................................................ 9<br />

Uygulama No: 5 – Ders Ekle .................................................................................................................. 11<br />

Uygulama No: 6 – Ders Kodu ................................................................................................................. 12<br />

Uygulama No: 7 – Geçme Notu ............................................................................................................. 13<br />

Uygulama No: 8 – Numara Oluştur ....................................................................................................... 15<br />

Uygulama No: 9 – İl ve İlçe .................................................................................................................... 17<br />

Uygulama No: 10 – Kimlik Ekle .............................................................................................................. 18<br />

Uygulama No: 11 – E-Posta Adresi Oluşturma ...................................................................................... 20<br />

Uygulama No: 12 – Olaylar-1 ................................................................................................................. 21<br />

Uygulama No: 13 – Dört İşlem .............................................................................................................. 23<br />

Uygulama No: 14 – Ardışık Sayıların Toplamı ........................................................................................ 24<br />

Uygulama No: 15 – Mekanik Sayaç ....................................................................................................... 25<br />

Uygulama No: 16 – Asal Sayı Testi ......................................................................................................... 26<br />

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

Uygulama No: 18 – Kuvvet ve Faktöriyel Hesabı ................................................................................... 29<br />

Uygulama No: 19 – İç İçe Döngü ........................................................................................................... 30<br />

Uygulama No: 20 – 153 Sayısı ............................................................................................................... 31<br />

Uygulama No: 21 – Pisagor Üçlüleri ...................................................................................................... 32<br />

Uygulama No: 22 – Collatz Problemi ..................................................................................................... 33<br />

Uygulama No: 23 – Kaprekar Sayıları .................................................................................................... 35<br />

Uygulama No: 24 – Kaprekar Sabiti ....................................................................................................... 37<br />

Uygulama No: 25 – Mükemmel Sayılar ................................................................................................. 39<br />

Uygulama No: 26 – Aritmetik Ortalama ve Standart Sapma ................................................................. 40<br />

Uygulama No: 27 – Renk Aktarımı......................................................................................................... 42<br />

Uygulama No: 28 – Fonksiyon Kullanımı 1 ............................................................................................ 44<br />

Uygulama No: 29 – Fonksiyon Kullanımı 2 ............................................................................................ 45<br />

Uygulama No: 30 – Palindrom ............................................................................................................... 48<br />

Uygulama No: 31 – Palindrom/Liste ...................................................................................................... 49<br />

Tolga GÜYER Sayfa 2


VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

Uygulama No: 32 – Metin İstatistikleri .................................................................................................. 50<br />

Uygulama No: 33 – Anahtarlı Metin Şifreleme ..................................................................................... 52<br />

Uygulama No: 34 – Anahtarlı Metin Şifre Çözme .................................................................................. 54<br />

Uygulama No: 35 – Veritabanı Uygulaması 1 ........................................................................................ 55<br />

Uygulama No: 36 – Veritabanı Uygulaması 2 ........................................................................................ 57<br />

Uygulama No: 37 – Veritabanı Uygulaması 3 ........................................................................................ 59<br />

Uygulama No: 38 – Veritabanı Uygulaması 4 ........................................................................................ 60<br />

Uygulama No: 39 – Veritabanı Uygulaması 5 ........................................................................................ 62<br />

Uygulama No: 40 – Veritabanı Uygulaması 6 ........................................................................................ 65<br />

VERİTABANI UYGULAMALARI HAKKINDA ÖZET BİLGİ ........................................................................... 75<br />

Uygulama No: 41 – Veritabanı Uygulaması 7 ........................................................................................ 78<br />

Uygulama No: 42 – Veritabanı Uygulaması 8 ........................................................................................ 81<br />

Uygulama No: 43 – Anket ...................................................................................................................... 85<br />

Uygulama No: 44 – Anket Göster .......................................................................................................... 88<br />

Uygulama No: 45 – Veritabanı Uygulaması 9 ........................................................................................ 95<br />

Uygulama No: 46 – Veritabanı Uygulaması 10 ...................................................................................... 97<br />

Uygulama No: 47 – Veritabanı Uygulaması 11 .................................................................................... 100<br />

Tolga GÜYER Sayfa 3


VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

Uygulama No: 1 – Buraya Basmayın!<br />

Açıklama : Metin kutusuna herhangi bir metin girilmemiş ise butona<br />

basıldığında tepki veriliyor.<br />

Ekran Görüntüsü<br />

Public Class Form1<br />

Açıklamalı Kodlar<br />

Private Sub basma_Click(ByVal sender As Object, ByVal e As<br />

System.EventArgs) Handles basma.Click<br />

If giris.Text = "" Then ‘Eğer metin kutusu boş ise…<br />

MsgBox("Basmayın demiştim")<br />

basma.BackColor = Color.Red ‘Buton kırmızı oluyor.<br />

Else<br />

basma.BackColor = Color.GreenYellow ‘Aksi halde yeşile dönüyor.<br />

End If<br />

End Sub<br />

End Class<br />

Tolga GÜYER Sayfa 4


VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

Uygulama No: 2 – Vücut-Kitle İndeksi<br />

Açıklama : Girilen ağırlık ve boy verilerine göre vücut-kitle indeksi<br />

belirleniyor ve kişinin girdiği ağırlık sınıfı görsel destekle<br />

sunuluyor.<br />

Ekran Görüntüsü<br />

Public Class Form1<br />

Açıklamalı Kodlar<br />

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As<br />

System.EventArgs) Handles Button1.Click<br />

TxtVki.Text = TxtKilo.Text / (TxtBoy.Text * TxtBoy.Text)<br />

‘Vücut kitle indeksi=ağırlık (kg) / boyun (m) karesi.<br />

If TxtVki.Text


End Sub<br />

End Class<br />

VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

If TxtVki.Text >= 20 And TxtVki.Text < 25 Then<br />

TxtSonuc.Text = "İdeal sınırlarda"<br />

PictureBox1.ImageLocation = "ideal.jpg"<br />

End If<br />

If TxtVki.Text >= 25 And TxtVki.Text < 30 Then<br />

TxtSonuc.Text = "Hafif şişman"<br />

PictureBox1.ImageLocation = "hafif_sisman.jpg"<br />

End If<br />

If TxtVki.Text >= 30 And TxtVki.Text < 35 Then<br />

TxtSonuc.Text = "Şişman"<br />

PictureBox1.ImageLocation = "sisman.jpg"<br />

End If<br />

If TxtVki.Text >= 35 And TxtVki.Text < 45 Then<br />

TxtSonuc.Text = "Sağlık açısından önemli"<br />

PictureBox1.ImageLocation = "saglik_acisindan_tehlike.jpg"<br />

End If<br />

If TxtVki.Text >= 45 And TxtVki.Text < 50 Then<br />

TxtSonuc.Text = "Aşırı şişman"<br />

PictureBox1.ImageLocation = "cok_sisman.jpg"<br />

End If<br />

If TxtVki.Text >= 50 Then<br />

TxtSonuc.Text = "Morbid (ölümcül) şişman"<br />

PictureBox1.ImageLocation = "morbid.jpg"<br />

End If<br />

Tolga GÜYER Sayfa 6


VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

Uygulama No: 3 – Burçlar<br />

Açıklama : Date-Time Picker kontrolünden seçilen tarihe göre kişinin<br />

burcunun ne olduğu belirleniyor ve görsel destekle<br />

sunuluyor.<br />

Ekran Görüntüsü<br />

Açıklamalı Kodlar<br />

Public Class Form1<br />

Dim gun, ay As Integer<br />

Private Sub DateTimePicker1_ValueChanged(ByVal sender As Object, ByVal e As<br />

System.EventArgs) Handles DateTimePicker1.ValueChanged<br />

gun = DateTimePicker1.Value.Day ‘Sadece gün bilgisi alınıyor.<br />

ay = DateTimePicker1.Value.Month ‘Sadece ay bilgisi alınıyor.<br />

If (ay = 12 And gun >= 23) Or (ay = 1 And gun = 22) Or (ay = 10 And gun = 21) Or (ay = 2 And gun = 20) Or (ay = 3 And gun


VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

If (ay = 3 And gun >= 21) Or (ay = 4 And gun = 21) Or (ay = 5 And gun = 22) Or (ay = 6 And gun = 22) Or (ay = 7 And gun = 24) Or (ay = 8 And gun = 24) Or (ay = 9 And gun = 23) Or (ay = 11 And gun = 23) Or (ay = 12 And gun


Uygulama No: 4 – Not Hesapla<br />

VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

Açıklama : Girilen ara sınav ve genel sınav notları kullanılarak geçme<br />

notu hesaplanıyor ve bu geçme notuna karşılık gelen harf<br />

notu belirleniyor.<br />

Ekran Görüntüsü<br />

Public Class Form1<br />

Dim vize, final As Integer<br />

Dim gecme As Double<br />

Açıklamalı Kodlar<br />

Private Sub Txt_Final_TextChanged(ByVal sender As Object, ByVal e As<br />

System.EventArgs) Handles Txt_Final.TextChanged<br />

‘Final notunun girildiği metin kutusu değişirken…<br />

If Txt_Final.Text "" And IsNumeric(Txt_Final.Text) Then<br />

‘Eğer final metin kutusu dolu ve sayısal veri ise…<br />

If Txt_Final.Text > 100 Then<br />

‘Eğer girilen final değeri 100 den büyük ise…<br />

MsgBox("Hatalı Giriş!")<br />

Txt_Final.Clear()<br />

TxtGecme.Clear()<br />

TxtHarf.Clear()<br />

TxtGecme.BackColor = Color.White<br />

Else ‘Aksi halde, yani final 100 den küçük…<br />

If Txt_Vize.Text "" And IsNumeric(Txt_Vize.Text) Then<br />

vize = Txt_Vize.Text<br />

final = Txt_Final.Text<br />

gecme = 2 * vize / 5 + 3 * final / 5<br />

‘vizenin %40’ı + finalin %60’ı<br />

TxtGecme.Text = gecme<br />

If gecme >= 50 Then TxtGecme.BackColor =<br />

Color.GreenYellow Else TxtGecme.BackColor = Color.Red<br />

End If<br />

End If<br />

Else ‘Ya final alanı boş, ya da girilen değer sayısal değil.<br />

TxtGecme.Clear()<br />

Tolga GÜYER Sayfa 9


VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

TxtHarf.Clear()<br />

TxtGecme.BackColor = Color.White<br />

End If<br />

End Sub<br />

Private Sub Txt_Vize_TextChanged(ByVal sender As Object, ByVal e As<br />

System.EventArgs) Handles Txt_Vize.TextChanged<br />

‘Aynı şeyler vize notu için de yapılıyor.<br />

If Txt_Vize.Text "" And IsNumeric(Txt_Vize.Text) Then<br />

If Txt_Vize.Text > 100 Then<br />

MsgBox("Hatalı Giriş!")<br />

Txt_Vize.Clear()<br />

TxtGecme.Clear()<br />

TxtHarf.Clear()<br />

TxtGecme.BackColor = Color.White<br />

Else<br />

If Txt_Final.Text "" And IsNumeric(Txt_Final.Text) Then<br />

vize = Txt_Vize.Text<br />

final = Txt_Final.Text<br />

gecme = 2 * vize / 5 + 3 * final / 5<br />

TxtGecme.Text = gecme<br />

If gecme >= 50 Then TxtGecme.BackColor =<br />

Color.GreenYellow Else TxtGecme.BackColor = Color.Red<br />

End If<br />

End If<br />

Else<br />

TxtGecme.Clear()<br />

TxtHarf.Clear()<br />

TxtGecme.BackColor = Color.White<br />

End If<br />

End Sub<br />

Private Sub TxtGecme_TextChanged(ByVal sender As Object, ByVal e As<br />

System.EventArgs) Handles TxtGecme.TextChanged<br />

‘Geçme notu alanı değişirken harf notu hesaplanıyor.<br />

If TxtGecme.Text "" Then<br />

If TxtGecme.Text >= 90 Then<br />

TxtHarf.Text = "AA"<br />

ElseIf TxtGecme.Text >= 80 Then<br />

TxtHarf.Text = "BA"<br />

ElseIf TxtGecme.Text >= 70 Then<br />

TxtHarf.Text = "BB"<br />

ElseIf TxtGecme.Text >= 60 Then<br />

TxtHarf.Text = "CB"<br />

ElseIf TxtGecme.Text >= 50 Then<br />

TxtHarf.Text = "CC"<br />

ElseIf TxtGecme.Text >= 40 Then<br />

TxtHarf.Text = "DC"<br />

ElseIf TxtGecme.Text >= 30 Then<br />

TxtHarf.Text = "DD"<br />

ElseIf TxtGecme.Text >= 20 Then<br />

TxtHarf.Text = "FD"<br />

Else<br />

TxtHarf.Text = "FF"<br />

End If<br />

End If<br />

End Sub<br />

End Class<br />

Tolga GÜYER Sayfa 10


Uygulama No: 5 – Ders Ekle<br />

VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

Açıklama : İki adet metin kutusundan alınan bilgilerle oluşturulan<br />

ders kodu ve adı liste kutusuna ekleniyor. Daha sonra<br />

liste kutusundan seçilen ders silinebiliyor.<br />

Ekran Görüntüsü<br />

Açıklamalı Kodlar<br />

Public Class Form1<br />

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As<br />

System.EventArgs) Handles Button1.Click<br />

ListBox1.Items.Add(TextBox1.Text + " " + TextBox2.Text)<br />

‘Ders kodu ve adı metinleri birleştirilerek liste kutusuna<br />

aktarılıyor.<br />

End Sub<br />

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As<br />

System.EventArgs) Handles Button3.Click<br />

ListBox1.Items.Clear()<br />

End Sub<br />

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As<br />

System.EventArgs) Handles Button2.Click<br />

ListBox1.Items.Remove(ListBox1.SelectedItem) ‘Liste kutusundan<br />

seçili olan seçenek siliniyor.<br />

End Sub<br />

End Class<br />

Tolga GÜYER Sayfa 11


Uygulama No: 6 – Ders Kodu<br />

VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

Açıklama : Metin kutusuna girilen ders kodu ve adı ayrıştırılarak iki ayrı liste<br />

kutusuna ekleniyor.<br />

Ekran Görüntüsü<br />

Açıklamalı Kodlar<br />

Public Class Form1<br />

Dim dersin_kodu, dersin_adi, ders As String<br />

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As<br />

System.EventArgs) Handles Button1.Click<br />

ders = TextBox1.Text<br />

dersin_kodu = Strings.UCase(Strings.Left(ders, 6))<br />

‘Ders kodu, büyük harfe dönüştürülen metnin soldan 6 karakteri<br />

alınarak ayrıştırılıyor.<br />

dersin_adi = Strings.Right(ders, Strings.Len(ders) - 6)<br />

‘Ders adı, metnin sağdan uzunluğu-6 karakteri alınarak<br />

ayrıştırılıyor.<br />

ListBox1.Items.Add(dersin_kodu)<br />

ListBox2.Items.Add(dersin_adi)<br />

TextBox1.Clear()<br />

End Sub<br />

End Class<br />

Tolga GÜYER Sayfa 12


Uygulama No: 7 – Geçme Notu<br />

VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

Açıklama : Metin kutusuna girilen numara bilgisi kullanılarak öğrencinin giriş<br />

yılı ve fakültesi belirleniyor. Arasınav ve Final notları kullanılarak<br />

geçme notu ve bu nota karşılık gelen harf notu hesaplanıyor.<br />

Ekran Görüntüsü<br />

Public Class Form1<br />

Açıklamalı Kodlar<br />

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As<br />

System.EventArgs) Handles Button1.Click<br />

Dim Notu As Integer<br />

Dim Yil As String<br />

Dim Fak, numara As String<br />

Yil = Strings.Left(TextBox1.Text, 2)<br />

‘Eğer giriş yılının son iki hanesi 50’den küçükse 2000’li yıllar<br />

olduğunu anla ve başına 20 ekle. Aksi halde başına 19 ekle:<br />

If Yil < 50 Then<br />

ListBox1.Items.Add("20" + Yil)<br />

Else<br />

ListBox1.Items.Add("19" + Yil)<br />

End If<br />

numara = TextBox1.Text<br />

Fak = Strings.Mid(numara, 3, 2)<br />

If Fak = "01" Then<br />

ListBox2.Items.Add("Mühendislik")<br />

ElseIf Fak = "02" Then<br />

ListBox2.Items.Add("Eğitim Bil.")<br />

ElseIf Fak = "03" Then<br />

ListBox2.Items.Add("Hukuk")<br />

ElseIf Fak = "04" Then<br />

ListBox2.Items.Add("iletişim")<br />

Else<br />

ListBox2.Items.Add("Diğerleri")<br />

End If<br />

ListBox3.Items.Add(TextBox2.Text + " " + TextBox3.Text)<br />

Notu = (TextBox4.Text * 0.4) + (TextBox5.Text * 0.6)<br />

Tolga GÜYER Sayfa 13


End Sub<br />

End Class<br />

VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

ListBox4.Items.Add(Notu)<br />

If Notu 89 Then<br />

ListBox5.Items.Add("AA")<br />

ElseIf Notu > 84 Then<br />

ListBox5.Items.Add("BA")<br />

ElseIf Notu > 79 Then<br />

ListBox5.Items.Add("BB")<br />

ElseIf Notu > 74 Then<br />

ListBox5.Items.Add("CB")<br />

ElseIf Notu > 69 Then<br />

ListBox5.Items.Add("CC")<br />

ElseIf Notu > 64 Then<br />

ListBox5.Items.Add("DC")<br />

ElseIf Notu > 59 Then<br />

ListBox5.Items.Add("DD")<br />

ElseIf Notu > 49 Then<br />

ListBox5.Items.Add("FD")<br />

ElseIf Notu < 50 Then<br />

ListBox5.Items.Add("FF")<br />

End If<br />

TextBox1.Text = ""<br />

TextBox2.Text = ""<br />

TextBox3.Text = ""<br />

TextBox4.Text = ""<br />

TextBox5.Text = ""<br />

TextBox1.Focus()<br />

Tolga GÜYER Sayfa 14


Uygulama No: 8 – Numara Oluştur<br />

VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

Açıklama : Açılan kutudan (ComboBox) seçilen fakülteye göre öğrenci numarası<br />

oluşturuluyor. Giriş yılı sistem zamanından alınıyor ve her fakülte için sıra<br />

numaraları ayrı sayaçlarda tutuluyor.<br />

Ekran Görüntüsü<br />

Açıklamalı Kodlar<br />

Public Class Form1<br />

Dim fakulte_adi, fakulte_kodu, sira, numara As String<br />

Dim egt_sayac, muh_sayac, huk_sayac, tip_sayac, sayac As Integer<br />

Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As Object,<br />

ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged<br />

fakulte_adi = ComboBox1.Text<br />

If fakulte_adi = "Eğitim Bilimleri Fakültesi" Then<br />

fakulte_kodu = "04"<br />

egt_sayac = egt_sayac + 1<br />

sayac = egt_sayac<br />

ElseIf fakulte_adi = "Mühendislik Fakültesi" Then<br />

fakulte_kodu = "03"<br />

muh_sayac = muh_sayac + 1<br />

sayac = muh_sayac<br />

ElseIf fakulte_adi = "Hukuk Fakültesi" Then<br />

fakulte_kodu = "02"<br />

huk_sayac = huk_sayac + 1<br />

sayac = huk_sayac<br />

ElseIf fakulte_adi = "Tıp Fakültesi" Then<br />

fakulte_kodu = "01"<br />

tip_sayac = tip_sayac + 1<br />

sayac = tip_sayac<br />

End If<br />

‘Sıra numarasının basamak sayısına göre başına ekleyeceği sıfır<br />

sayısına karar veriyor:<br />

If Strings.Len(sayac.ToString) = 1 Then<br />

sira = "000" + sayac.ToString<br />

ElseIf Strings.Len(sayac.ToString) = 2 Then<br />

sira = "00" + sayac.ToString<br />

ElseIf Strings.Len(sayac.ToString) = 3 Then<br />

sira = "0" + sayac.ToString<br />

Else<br />

sira = sayac.ToString<br />

Tolga GÜYER Sayfa 15


VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

End If<br />

numara = Strings.Right(System.DateTime.Today.Year, 2) +<br />

fakulte_kodu + sira ‘Sistem saatinden bugünün tarihinin yılı alınıyor ve<br />

bunun sağdan iki basamağı ayrıştırılıyor.<br />

TextBox3.Text = numara<br />

End Sub<br />

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As<br />

System.EventArgs) Handles Button1.Click<br />

TextBox1.Clear()<br />

TextBox2.Clear()<br />

TextBox3.Clear()<br />

TextBox1.Focus()<br />

End Sub<br />

End Class<br />

Tolga GÜYER Sayfa 16


Uygulama No: 9 – İl ve İlçe<br />

VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

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<br />

kutunun içeriği otomatik olarak dolduruluyor.<br />

Ekran Görüntüsü<br />

Public Class Form1<br />

Açıklamalı Kodlar<br />

Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object,<br />

ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged<br />

ComboBox2.Items.Clear()<br />

If ComboBox1.Text = "Ankara" Then<br />

ComboBox2.Items.Add("Çankaya")<br />

ComboBox2.Items.Add("Etimesgut")<br />

ComboBox2.Items.Add("Keçiören")<br />

ComboBox2.Items.Add("Yenimahalle")<br />

ComboBox2.Items.Add("Mamak")<br />

ElseIf ComboBox1.Text = "İstanbul" Then<br />

ComboBox2.Items.Add("Beşiktaş")<br />

ComboBox2.Items.Add("Şişli")<br />

ComboBox2.Items.Add("Eminönü")<br />

ComboBox2.Items.Add("Beykoz")<br />

ComboBox2.Items.Add("Adalar")<br />

ElseIf ComboBox1.Text = "İzmir" Then<br />

ComboBox2.Items.Add("Karşıyaka")<br />

ComboBox2.Items.Add("Bornova")<br />

ComboBox2.Items.Add("Güzelyalı")<br />

ComboBox2.Items.Add("Buca")<br />

ComboBox2.Items.Add("Konak")<br />

End If<br />

End Sub<br />

End Class<br />

Tolga GÜYER Sayfa 17


Uygulama No: 10 – Kimlik Ekle<br />

VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

Uygulama No : 08<br />

Uygulama Adı : Kimlik Ekle<br />

Açıklama : 1. Alanların her üçünün de girilmiş olması gerekiyor. Aksi halde uyarı mesajı<br />

veriliyor.<br />

2. Kimlik numarası 11 hane olmazsa uyarı mesajı veriliyor.<br />

3. Cinsiyet Kadın seçilirse Askerlik Durumu pasif konuma geçiyor.<br />

4. Bilgileri Ekle butonuna basıldığında bilgiler liste kutusuna alt alta ekleniyor.<br />

Ekran Görüntüsü<br />

Açıklamalı Kodlar<br />

Public Class Form1<br />

Dim cinsiyet, ask As String<br />

Private Sub Radio_kadin_Click(ByVal sender As Object, ByVal e As<br />

System.EventArgs) Handles Radio_kadin.Click<br />

GroupBox2.Enabled = False ‘Grup kutusu pasifize ediliyor.<br />

Dolayısıyla üzerindeki radyo düğmeleri de pasif hale gelmiş oluyor.<br />

End Sub<br />

Private Sub Radio_erkek_Click(ByVal sender As Object, ByVal e As<br />

System.EventArgs) Handles Radio_erkek.Click<br />

GroupBox2.Enabled = True<br />

End Sub<br />

Private Sub Btn_ekle_Click(ByVal sender As System.Object, ByVal e As<br />

System.EventArgs) Handles Btn_ekle.Click<br />

If Strings.Trim(Txt_ad.Text) "" And<br />

Strings.Trim(Txt_soyad.Text) "" And Strings.Trim(Txt_kimlik.Text) ""<br />

Then<br />

If Strings.Trim(Strings.Len(Txt_kimlik.Text)) 11 Then<br />

MsgBox("Kimlik Numarası uygun girilmedi")<br />

Exit Sub<br />

End If<br />

Tolga GÜYER Sayfa 18


VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

ListBox1.Items.Add("Adı Soyadı: " + Txt_ad.Text + " " +<br />

Txt_soyad.Text)<br />

ListBox1.Items.Add("Kimlik No : " + Txt_kimlik.Text)<br />

If Radio_erkek.Checked = True Then<br />

cinsiyet = "Erkek"<br />

Else<br />

cinsiyet = "Kadın"<br />

End If<br />

ListBox1.Items.Add("Cinsiyeti : " + cinsiyet)<br />

If Radio_erkek.Checked = True Then<br />

If Radio_as1.Checked = True Then<br />

ask = "Yapmış"<br />

ElseIf Radio_as2.Checked = True Then<br />

ask = "Tecilli"<br />

Else<br />

ask = "Muaf"<br />

End If<br />

ListBox1.Items.Add("Askerlik Durumu : " + ask)<br />

End If<br />

ListBox1.Items.Add("********************************************")<br />

Txt_ad.Clear()<br />

Txt_kimlik.Clear()<br />

Txt_soyad.Clear()<br />

Txt_ad.Focus()<br />

Else<br />

MsgBox("Alanların hepsi girilmemiş!")<br />

End If<br />

End Sub<br />

End Class<br />

Tolga GÜYER Sayfa 19


VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

Uygulama No: 11 – E-Posta Adresi Oluşturma<br />

Açıklama : Butona basıldığında kişinin adının ilk harfi ile soyadı birleştiriliyor,<br />

ComboBox’dan seçilen üniversiteye göre e-posta adresi otomatik olarak<br />

oluşturuluyor.<br />

Ekran Görüntüsü<br />

Public Class Form1<br />

Açıklamalı Kodlar<br />

Dim eposta, alan As String<br />

Dim k As Byte<br />

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As<br />

System.EventArgs) Handles Button1.Click<br />

k = Strings.InStr(Cmb_universite.Text, " ") 'Üniversite adındaki<br />

ilk boşluğun konumu.<br />

alan = Strings.Mid(Cmb_universite.Text, 1, k - 1)<br />

eposta = Strings.LCase(Strings.Left(Txt_ad.Text, 1) & "." &<br />

Txt_soyad.Text & "@" & alan & ".edu.tr")<br />

'Aşağıda, metin içersinden Türkçe harfler dönüştürülüyor.<br />

'Örneğin çetin => cetin gibi.<br />

eposta = Strings.Replace(eposta, "ş", "s", 1)<br />

eposta = Strings.Replace(eposta, "ğ", "g", 1)<br />

eposta = Strings.Replace(eposta, "ö", "o", 1)<br />

eposta = Strings.Replace(eposta, "ü", "u", 1)<br />

eposta = Strings.Replace(eposta, "ç", "c", 1)<br />

eposta = Strings.Replace(eposta, "ı", "i", 1)<br />

Txt_eposta.Text = eposta<br />

End Sub<br />

End Class<br />

Tolga GÜYER Sayfa 20


Uygulama No: 12 – Olaylar-1<br />

VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

Açıklama : Radyo düğmelerinin ve işaretleme kutularının tıklama olayları liste kutusuna<br />

ekleniyor. Sil butonu, liste kutusundan seçilen kayıt(lar)ı siliyor.<br />

Ekran Görüntüsü<br />

Açıklamalı Kodlar<br />

Public Class Form1<br />

Dim i As Byte<br />

Private Sub secenek1_Click(ByVal sender As Object, ByVal e As<br />

System.EventArgs) Handles secenek1.Click<br />

ListBox1.Items.Add(secenek1.Text + " seçildi")<br />

End Sub<br />

Private Sub secenek2_Click(ByVal sender As Object, ByVal e As<br />

System.EventArgs) Handles secenek2.Click<br />

ListBox1.Items.Add(secenek2.Text + " seçildi")<br />

End Sub<br />

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As<br />

System.EventArgs) Handles BtnSil.Click<br />

If ListBox1.SelectedItems.Count 0 Then ‘En az bir seçilmiş<br />

seçenek varsa.<br />

For i = 0 To ListBox1.SelectedItems.Count - 1<br />

ListBox1.Items.Remove(ListBox1.SelectedItem)<br />

Next<br />

End If<br />

End Sub<br />

Private Sub secim1_Click(ByVal sender As Object, ByVal e As<br />

System.EventArgs) Handles secim1.Click<br />

If secim1.Checked = True Then<br />

ListBox1.Items.Add(secim1.Text + " işaretlendi")<br />

Else<br />

ListBox1.Items.Add(secim1.Text + " işareti kaldırıldı")<br />

End If<br />

End Sub<br />

Tolga GÜYER Sayfa 21


VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

Private Sub secim2_Click(ByVal sender As Object, ByVal e As<br />

System.EventArgs) Handles secim2.Click<br />

If secim2.Checked = True Then<br />

ListBox1.Items.Add(secim2.Text + " işaretlendi")<br />

Else<br />

ListBox1.Items.Add(secim2.Text + " işareti kaldırıldı")<br />

End If<br />

End Sub<br />

End Class<br />

Tolga GÜYER Sayfa 22


Uygulama No: 13 – Dört İşlem<br />

VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

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

Ekran Görüntüsü<br />

Public Class Form1<br />

Dim s1, s2 As Integer<br />

Dim s As Double<br />

Açıklamalı Kodlar<br />

Private Sub hesapla_Click(ByVal sender As System.Object, ByVal e As<br />

System.EventArgs) Handles hesapla.Click<br />

s1 = sayi1.Text<br />

s2 = sayi2.Text<br />

If topla.Checked = True Then<br />

s = s1 + s2<br />

ElseIf cikar.Checked = True Then<br />

s = s1 - s2<br />

ElseIf carp.Checked = True Then<br />

s = s1 * s2<br />

ElseIf bol.Checked = True And s2 0 Then ‘Sıfıra bölme yapmasın.<br />

s = s1 / s2<br />

End If<br />

sonuc.Text = s<br />

End Sub<br />

End Class<br />

Tolga GÜYER Sayfa 23


VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

Uygulama No: 14 – Ardışık Sayıların Toplamı<br />

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

Ekran Görüntüsü<br />

Public Class Form1<br />

Açıklamalı Kodlar<br />

Private Sub BtnToplam_Click(ByVal sender As System.Object, ByVal e As<br />

System.EventArgs) Handles BtnToplam.Click<br />

Dim sayac, toplam As Integer<br />

toplam = 0<br />

For sayac = TxtBaslangic.Text To TxtBitis.Text<br />

toplam = toplam + sayac<br />

Next<br />

MsgBox(toplam)<br />

End Sub<br />

End Class<br />

Tolga GÜYER Sayfa 24


Uygulama No: 15 – Mekanik Sayaç<br />

VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

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

Ekran Görüntüsü<br />

Açıklamalı Kodlar<br />

Public Class Form1<br />

Private Sub BtnBaslat_Click(ByVal sender As System.Object, ByVal e As<br />

System.EventArgs) Handles BtnBaslat.Click<br />

For basamak1 = 0 To 9<br />

LblB1.Text = basamak1<br />

For bekle = 0 To 10000000 ‘Her adımda beklemeyi sağlar.<br />

Next<br />

LblB1.Refresh()‘Etiketin (Label) tazelenmesi. Yeni sayıyı her<br />

adımda göstermesi için gereklidir.<br />

For basamak2 = 0 To 9<br />

LblB2.Text = basamak2<br />

For bekle = 0 To 10000000<br />

Next<br />

LblB2.Refresh()<br />

For basamak3 = 0 To 9<br />

LblB3.Text = basamak3<br />

For bekle = 0 To 10000000<br />

Next<br />

LblB3.Refresh()<br />

Next<br />

Next<br />

Next<br />

End Sub<br />

End Class<br />

Tolga GÜYER Sayfa 25


Uygulama No: 16 – Asal Sayı Testi<br />

VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

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

Ekran Görüntüsü<br />

Public Class Form1<br />

Açıklamalı Kodlar<br />

Private Sub BtnAsalmi_Click(ByVal sender As System.Object, ByVal e As<br />

System.EventArgs) Handles BtnAsalmi.Click<br />

Dim asalmi As Boolean = True<br />

Dim say As UInt64 ‘En büyük tamsayı türü.<br />

For say = 2 To TxtSayi.Text / 2 ‘Sayının yarısına kadar bölen<br />

araştırılacak.<br />

If TxtSayi.Text Mod say = 0 Then ‘Eğer tam bölüyor ise…<br />

asalmi = False<br />

Exit For ‘Daha fazla araştırmaya gerek yok.<br />

End If<br />

Next<br />

If asalmi = True Then ‘Demekki yukarıdaki koşula hiç girmemiş.<br />

MsgBox("ASALDIR")<br />

Else : MsgBox("ASAL DEĞİLDİR. " & say & " sayısı bu sayıyı<br />

böler.")<br />

End If<br />

End Sub<br />

End Class<br />

Tolga GÜYER Sayfa 26


VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

Uygulama No: 17 – Pi Sayısının Yaklaşık Hesabı<br />

Açıklama : Girilen yaklaşım değerine bağlı olarak aşağıdaki toplam formülü ile Pi sayısı<br />

yaklaşık olarak hesaplanıyor.<br />

Ekran Görüntüsü<br />

Public Class Form1<br />

Açıklamalı Kodlar<br />

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As<br />

System.EventArgs) Handles Button1.Click<br />

Dim toplam As Double = 1<br />

Dim k, i, faktor, faktor1 As Long<br />

If Strings.Trim(TxtYaklasim.Text) "" Then ‘Boş text<br />

istemiyoruz.<br />

If IsNumeric(TxtYaklasim.Text) Then ‘Sayısal olmayan veri de<br />

istemiyoruz.<br />

If TxtYaklasim.Text > 0 And TxtYaklasim.Text < 10 Then<br />

‘Bir de yaklaşım sayısı 1 il 9 arasında olacak.<br />

For k = 1 To TxtYaklasim.Text<br />

'k faktöriyel hesaplanıyor:<br />

faktor = 1<br />

For i = 1 To k<br />

faktor = faktor * i<br />

Next<br />

'2k+1 faktöriyel hesaplanıyor:<br />

faktor1 = 1<br />

For i = 1 To 2 * k + 1<br />

faktor1 = faktor1 * i<br />

Next<br />

'Toplam hesaplanıyor:<br />

toplam = toplam + ((2 ^ k) * (faktor ^ 2)) /<br />

faktor1<br />

Next<br />

LblSonuc.Text = 2 * toplam<br />

Else<br />

MsgBox("Yaklaşım sayısı 1-9 arasında olmalıdır!")<br />

End If<br />

Tolga GÜYER Sayfa 27


VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

Else<br />

MsgBox("Lütfen sayısal veri giriniz!")<br />

End If<br />

Else<br />

MsgBox("İlgili alana veri girişi yapınız!")<br />

End If<br />

End Sub<br />

End Class<br />

Tolga GÜYER Sayfa 28


VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

Uygulama No: 18 – Kuvvet ve Faktöriyel Hesabı<br />

Açıklama : Girilen sayının istenilen kuvveti ve faktöriyeli hesaplanıyor. “For-Next” döngü<br />

yapısının kullanımına ilişkin bir örnektir.<br />

Ekran Görüntüsü<br />

Açıklamalı Kodlar<br />

Public Class Form1<br />

Dim sayi, kuvvet As Integer<br />

Dim sonuc As Long<br />

Private Sub btnhesapla_Click(ByVal sender As System.Object, ByVal e As<br />

System.EventArgs) Handles btnhesapla.Click<br />

sayi = txtsayi.Text<br />

kuvvet = txtkuvvet.Text<br />

sonuc = 1<br />

For sayac = 1 To kuvvet<br />

sonuc = sayi * sonuc ‘Sayı, kuvvet defa kendisi ile<br />

çarpılıyor.<br />

Next sayac<br />

txtsonuc.Text = sonuc<br />

End Sub<br />

Private Sub btnfaktor_Click(ByVal sender As System.Object, ByVal e As<br />

System.EventArgs) Handles btnfaktor.Click<br />

sayi = txtsayi.Text<br />

sonuc = 1<br />

For sayac = 1 To sayi<br />

sonuc = sayac * sonuc ‘Sayıya kadar olan bütün sayılar<br />

çarpılıyor.<br />

Next sayac<br />

txtfaktor.Text = sonuc<br />

End Sub<br />

End Class<br />

Tolga GÜYER Sayfa 29


Uygulama No: 19 – İç İçe Döngü<br />

VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

Açıklama : 000 ile 999 arasındaki sayılar iç içe düzenlenmiş üç for-next döngü yapısı<br />

kullanılarak oluşturuluyor. Kod içersinde yer alan<br />

“System.Threading.Thread.Sleep(10)” ifadesi, her adımda bekleme<br />

işlevini gerçekleştiriyor. Dolayısıyla sayaçların değişimi gözlenebiliyor.<br />

Ekran Görüntüsü<br />

Açıklamalı Kodlar<br />

Public Class Form1<br />

Dim sayi As Integer<br />

Dim k As Long<br />

Private Sub btnbaslat_Click(ByVal sender As System.Object, ByVal e As<br />

System.EventArgs) Handles btnbaslat.Click<br />

For sayac1 = 0 To 9<br />

For sayac2 = 0 To 9<br />

For sayac3 = 0 To 9<br />

lstsayi.Items.Add(sayac1.ToString + sayac2.ToString +<br />

sayac3.ToString)<br />

txtsayi3.Text = sayac3<br />

txtsayi2.Text = sayac2<br />

txtsayi1.Text = sayac1<br />

txtsayi3.Refresh()<br />

txtsayi2.Refresh()<br />

txtsayi1.Refresh()<br />

System.Threading.Thread.Sleep(10) ‘Her adımda 10 ms<br />

bekle.<br />

Next sayac3<br />

Next sayac2<br />

Next sayac1<br />

End Sub<br />

End Class<br />

Tolga GÜYER Sayfa 30


Uygulama No: 20 – 153 Sayısı<br />

VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

Açıklama : 153 Sayısı şöyle bir özelliğe sahiptir: 153 = 1 3 + 5 3 + 3 3 . Acaba 100 ile 999<br />

arasında bu özelliği sağlayan, yani basamaklarının küplerinin toplamına eşit olan<br />

başka sayı ya da sayılar var mıdır?<br />

Ekran Görüntüsü<br />

Açıklamalı Kodlar<br />

Public Class Form1<br />

Dim sayi As Integer<br />

Private Sub Form1_Load(ByVal sender As Object, ByVal e As<br />

System.EventArgs) Handles Me.Load<br />

For yuzler = 1 To 9<br />

For onlar = 0 To 9<br />

For birler = 0 To 9<br />

sayi = 100 * yuzler + 10 * onlar + birler<br />

If sayi = yuzler ^ 3 + onlar ^ 3 + birler ^ 3 Then<br />

ListBox1.Items.Add(sayi)<br />

Next birler<br />

Next onlar<br />

Next yuzler<br />

End Sub<br />

End Class<br />

Tolga GÜYER Sayfa 31


Uygulama No: 21 – Pisagor Üçlüleri<br />

VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

Açıklama : a 2 + b 2 = c 2 özelliğini sağlayan sayılar, dik üçgenin kenar uzunluklarını gösterirler<br />

ve Pisagor üçlüleri olarak anılırlar. 1 ile 99 arasındaki doğal sayılardan bu eşitliği<br />

sağlayanlar hangileri olabilir?<br />

Ekran Görüntüsü<br />

Public Class Form1<br />

Açıklamalı Kodlar<br />

Private Sub Form1_Load(ByVal sender As Object, ByVal e As<br />

System.EventArgs) Handles Me.Load<br />

For a = 1 To 99<br />

For b = 1 To 99<br />

For c = 1 To 99<br />

If (c ^ 2 = a ^ 2 + b ^ 2) And (a < b) Then<br />

ListBox1.Items.Add(a.ToString + " - " + b.ToString + " - " + c.ToString)<br />

Next c<br />

Next b<br />

Next a<br />

End Sub<br />

End Class<br />

Tolga GÜYER Sayfa 32


VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

Uygulama No: 22 – Collatz Problemi<br />

Açıklama : Dolu tanesi sayıları olarak da bilinen problem, girilecek bir pozitif tamsayı ile<br />

başlayan bir sayı dizisi oluşturmaya dayanır. Dizinin her bir elemanı, bir önceki<br />

sayı kullanılarak şu kural dahilinde hesaplanır: Eğer sayı çift ise bir sonraki sayı<br />

bu sayının yarısı, tek ise üç katının bir fazlası olacaktır. Böylece ilk sayısı verilen<br />

bir sayı dizisi oluşturulur.<br />

Örneğin, ilk sayı 7 ise dizi şu şekilde oluşacaktır:<br />

7, 22, 11, 34, 17, 52, 26, 13, 40, 20, 10, 5, 16, 8, 4, 2, 1, 4, 2, 1, 4, 2, 1,...<br />

Ya da ilk sayı 21 ise,<br />

21, 64, 32, 16, 8, 4, 2, 1, ...<br />

Görüldüğü gibi dizi 1 sayısına ulaştığı anda sonsuz döngüye girmektedir. Aslında<br />

başlangıç sayısı olarak ne girersek girelim dizi her zaman 1 sayısına ulaşmaktadır,<br />

ama bu durum henüz matematiksel olarak kanıtlanamamıştır...<br />

Ekran Görüntüsü<br />

Tolga GÜYER Sayfa 33


VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

Açıklamalı Kodlar<br />

Public Class Form1<br />

Dim sayi, sayac, enbuyuk As Long<br />

Private Sub btnbaslat_Click(ByVal sender As System.Object, ByVal e As<br />

System.EventArgs) Handles btnbaslat.Click<br />

sayi = txtsayi.Text<br />

lstdizi.Items.Clear()<br />

sayac = 0<br />

enbuyuk = 0<br />

Do<br />

lstdizi.Items.Add(sayi)<br />

If sayi Mod 2 = 0 Then ‘Sayı çift ise.<br />

sayi = sayi / 2<br />

Else<br />

‘Sayı tek ise.<br />

sayi = sayi * 3 + 1<br />

End If<br />

sayac = sayac + 1<br />

If sayi > enbuyuk Then enbuyuk = sayi ‘sayi enbuyuk’ten daha<br />

büyük ise yeni enbuyuk değeri sayi olsun.<br />

Loop Until sayi = 1<br />

lstdizi.Items.Add(1)<br />

lbladimsayisi.Text = sayac + 1<br />

lblenbuyuk.Text = enbuyuk<br />

End Sub<br />

End Class<br />

Tolga GÜYER Sayfa 34


VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

Uygulama No: 23 – Kaprekar Sayıları<br />

Açıklama : Kaprekar sayıları , 1949 yılında Hintli matematikçi Kaprekar tarafından tariflenen<br />

sayılardır.<br />

n basamaklı bir t Kaprekar sayısının karesi alınıp sağdaki n basamağı solda kalan<br />

n-1 basamağa eklendiğinde sonuç yine t sayısını verir.<br />

Örnek:<br />

55 , iki basamaklı bir sayıdır.<br />

552 = 3025 , sağdan iki basamak 25 , soldan iki basamak 30.<br />

Bu iki sayının toplamı 30+25=55 yani sayının kendisidir.<br />

1, 9, 45, 55, 99, 297, 703, 999, 2223, 2728, 4879 sayıları da diğer bazı Kaprekar<br />

sayılarıdır.<br />

Ekran Görüntüsü<br />

Açıklamalı Kodlar<br />

Public Class Form1<br />

Dim sayi, uz, sayi_kare, sagtaraf, soltaraf, basla, bitir,<br />

sagtaraf_uzunluk, sayi_kare_uzunluk As Long<br />

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As<br />

System.EventArgs) Handles BtnHesapla.Click<br />

LstSayi.Items.Clear()<br />

Tolga GÜYER Sayfa 35


VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

basla = TxtBaslangic.Text ' Bu sayı aralığın başlangıç sayısı ve<br />

en az 9 girilmeli<br />

bitir = TxtBitis.Text<br />

For sayi = basla To bitir<br />

uz = Strings.Len(sayi.ToString)<br />

sayi_kare = sayi * sayi<br />

sagtaraf = Strings.Right(sayi_kare.ToString, uz)<br />

sayi_kare_uzunluk = Strings.Len(sayi_kare.ToString)<br />

sagtaraf_uzunluk = Strings.Len(sagtaraf.ToString)<br />

soltaraf = Strings.Left(sayi_kare.ToString, sayi_kare_uzunluk<br />

- sagtaraf_uzunluk)<br />

If sagtaraf + soltaraf = sayi And sayi 10 Then<br />

LstSayi.Items.Add(sayi)<br />

End If<br />

Next<br />

End Sub<br />

End Class<br />

Tolga GÜYER Sayfa 36


Uygulama No: 24 – Kaprekar Sabiti<br />

VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

Açıklama : Hintli matematikçi Kaprekar (1905-1986) tarafından tanımlanan , dört basamaklı<br />

sayılara en fazla yedi kez aşağıdaki işlemler uygulandığında ortaya çıkan sabit<br />

6174 sayısı.<br />

İşlemler , tüm basamakları aynı sayıdan oluşmayan (2222 gibi - ilk adımda sıfır<br />

sonucunu verecektir) ve herhangi üç basamağındaki sayılar aynı olup kalan bir<br />

basamaktaki sayı bu sayıdan bir büyük ya da bir küçük olmayan (1112, 5565<br />

veya 8788 gibi - ilk adımda 999 sayısını verecektir) dört basamaklı sayılara<br />

uygulandığında en fazla yedi adımda sıfır veya 6174 sabit sayısını verir.<br />

Yukarıdaki şartlara uygun dört basamaklı bir sayı alınır.<br />

Sayının basamaklarını büyükten küçüğe ve küçükten büyüğe doğru sıralayarak<br />

iki adet dört basamaklı sayı elde edilir.<br />

Elden edilen sayılardan büyükten küçüğü çıkarılır.<br />

2. adım tekrar edilir.<br />

En fazla yedi adımda sıfır ya da 6174 sabit sayısı elde edilecek ve kısır döngüye<br />

girilecektir.<br />

Örnek:<br />

6544 − 4456 = 2088<br />

8820 − 0288 = 8532<br />

8532 − 2358 = 6174<br />

7641 − 1467 = 6174<br />

Ekran Görüntüsü<br />

Açıklamalı Kodlar<br />

Public Class Form1<br />

Dim Tmp, Loop1, Loop2, Pos As Byte<br />

Dim enkucuksayi, enbuyuksayi, fark As Integer<br />

Dim sayilar(0 To 3)<br />

Private Sub BtnSirala_Click(ByVal sender As System.Object, ByVal e As<br />

System.EventArgs) Handles BtnSirala.Click<br />

LstBuyukKucuk.Items.Clear()<br />

sayilar(0) = TxtSayi1.Text<br />

Tolga GÜYER Sayfa 37


VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

sayilar(1) = TxtSayi2.Text<br />

sayilar(2) = TxtSayi3.Text<br />

sayilar(3) = TxtSayi4.Text<br />

‘Sıralama algoritması kullanılarak sayilar dizisi küçükten büyüğe<br />

doğru sıralanıyor:<br />

Do<br />

For Loop1 = 0 To 3<br />

Pos = Loop1<br />

For Loop2 = Loop1 + 1 To 3<br />

If sayilar(Loop2) < sayilar(Pos) Then<br />

Pos = Loop2<br />

End If<br />

Next Loop2<br />

If Pos Loop1 Then<br />

Tmp = sayilar(Pos)<br />

sayilar(Pos) = sayilar(Loop1)<br />

sayilar(Loop1) = Tmp<br />

End If<br />

Next Loop1<br />

enkucuksayi = 1000 * sayilar(0) + 100 * sayilar(1) + 10 *<br />

sayilar(2) + sayilar(3)<br />

enbuyuksayi = 1000 * sayilar(3) + 100 * sayilar(2) + 10 *<br />

sayilar(1) + sayilar(0)<br />

fark = enbuyuksayi - enkucuksayi<br />

LstBuyukKucuk.Items.Add(enbuyuksayi.ToString + "-" +<br />

enkucuksayi.ToString + "=" + fark.ToString)<br />

End Sub<br />

End Class<br />

sayilar(0) = Strings.Mid(fark.ToString, 1, 1)<br />

sayilar(1) = Strings.Mid(fark.ToString, 2, 1)<br />

sayilar(2) = Strings.Mid(fark.ToString, 3, 1)<br />

sayilar(3) = Strings.Mid(fark.ToString, 4, 1)<br />

Loop Until fark = 6174<br />

Tolga GÜYER Sayfa 38


VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

Uygulama No: 25 – Mükemmel Sayılar<br />

Açıklama : 1 dahil, kendisi hariç olmak üzere bölenlerinin toplamına eşit olan sayılara<br />

mükemmel sayı adı verilir.<br />

Örneğin 6=1+2+3 olduğundan bir mükemmel sayıdır.<br />

Bir sonraki mükemmel sayı 28’dir. Çünkü 28=1+2+4+7+14 olur.<br />

Geliştirdiğimiz uygulama, kullanıcı tarafından girilecek bir sayının mükemmel<br />

olup olmadığını test etmekte, değil ise bir sonraki mükemmel sayıyı<br />

hesaplamaktadır.<br />

Ekran Görüntüsü<br />

Açıklamalı Kodlar<br />

Public Class Form1<br />

Dim sayi, sayi1, toplam, k As Long<br />

Private Sub BtnKontrol_Click(ByVal sender As System.Object, ByVal e As<br />

System.EventArgs) Handles BtnKontrol.Click<br />

sayi = TxtSayi.Text<br />

toplam = 0<br />

For k = 2 To sayi / 2<br />

If sayi Mod k = 0 Then toplam = toplam + k<br />

Next<br />

If toplam + 1 = sayi Then<br />

MsgBox("MÜKEMMEL!")<br />

Else ‘Sayı mükemmel değil ise bir sonrakini ara:<br />

sayi1 = sayi<br />

Do<br />

toplam = 0<br />

sayi1 = sayi1 + 1<br />

For k = 2 To sayi1 / 2<br />

If sayi1 Mod k = 0 Then toplam = toplam + k<br />

Next<br />

Loop Until toplam + 1 = sayi1<br />

MsgBox(sayi1)<br />

End If<br />

End Sub<br />

End Class<br />

Tolga GÜYER Sayfa 39


VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

Uygulama No: 26 – Aritmetik Ortalama ve Standart Sapma<br />

Açıklama : Liste kutusuna aktarılan sayıların aritmetik ortalama ve standart sapmaları<br />

hesaplanıyor.<br />

Ekran Görüntüsü<br />

Açıklamalı Kodlar<br />

Public Class Form1<br />

Dim toplam1, toplam2 As Integer<br />

Dim ort, StdSapma As Double<br />

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As<br />

System.EventArgs) Handles BtnEkle.Click<br />

LstSayilar.Items.Add(TxtSayi.Text)<br />

TxtSayi.Clear()<br />

TxtSayi.Focus()<br />

End Sub<br />

Private Sub BtnCikis_Click(ByVal sender As System.Object, ByVal e As<br />

System.EventArgs) Handles BtnCikis.Click<br />

End<br />

End Sub<br />

Private Sub BtnOrtalama_Click(ByVal sender As System.Object, ByVal e As<br />

System.EventArgs) Handles BtnOrtalama.Click<br />

toplam1 = 0<br />

For k = 0 To LstSayilar.Items.Count - 1<br />

toplam1 = toplam1 + LstSayilar.Items.Item(k) 'liste kutusundaki<br />

sayılar toplanıyor.<br />

Next<br />

ort = toplam1 / LstSayilar.Items.Count 'Toplamın say adetine oranı.<br />

MsgBox(ort)<br />

End Sub<br />

Private Sub BtnStdSapma_Click(ByVal sender As System.Object, ByVal e As<br />

Tolga GÜYER Sayfa 40


VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

System.EventArgs) Handles BtnStdSapma.Click<br />

toplam2 = 0<br />

For k As Integer = 0 To LstSayilar.Items.Count - 1<br />

toplam2 = toplam2 + (LstSayilar.Items(k) - ort) ^ 2 'Liste<br />

kutusundaki sayıların her biri ile ortalama arasındaki farkların kareleri<br />

toplamı.<br />

Next<br />

StdSapma = Math.Sqrt(toplam2 / (LstSayilar.Items.Count - 1)) 'Kareler<br />

toplamının sayı adetinin bir eksiğine oranının karekökü.<br />

MsgBox(StdSapma)<br />

End Sub<br />

Private Sub BtnSil_Click(ByVal sender As System.Object, ByVal e As<br />

System.EventArgs) Handles BtnSil.Click<br />

LstSayilar.Items.Clear()<br />

TxtSayi.Focus()<br />

End Sub<br />

End Class<br />

Tolga GÜYER Sayfa 41


Uygulama No: 27 – Renk Aktarımı<br />

VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

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

Ekran Görüntüsü<br />

Public Class Form1<br />

Açıklamalı Kodlar<br />

Private Sub Label1_Click(ByVal sender As System.Object, ByVal e As<br />

System.EventArgs) Handles Label1.Click<br />

If RBtnForm.Checked Then ‘Eğer formun rengi opsiyonu seçili ise<br />

Me.BackColor = Label1.BackColor<br />

Else<br />

TextBox1.BackColor = Label1.BackColor<br />

End If<br />

End Sub<br />

Private Sub Label2_Click(ByVal sender As System.Object, ByVal e As<br />

System.EventArgs) Handles Label2.Click<br />

If RBtnForm.Checked Then<br />

Me.BackColor = Label2.BackColor<br />

Else<br />

TextBox1.BackColor = Label2.BackColor<br />

End If<br />

End Sub<br />

Private Sub Label3_Click(ByVal sender As System.Object, ByVal e As<br />

System.EventArgs) Handles Label3.Click<br />

If RBtnForm.Checked Then<br />

Me.BackColor = Label3.BackColor<br />

Else<br />

TextBox1.BackColor = Label3.BackColor<br />

End If<br />

End Sub<br />

Private Sub Label4_Click(ByVal sender As System.Object, ByVal e As<br />

System.EventArgs) Handles Label4.Click<br />

If RBtnForm.Checked Then<br />

Me.BackColor = Label4.BackColor<br />

Else<br />

TextBox1.BackColor = Label4.BackColor<br />

End If<br />

Tolga GÜYER Sayfa 42


VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

End Sub<br />

Private Sub Label5_Click(ByVal sender As System.Object, ByVal e As<br />

System.EventArgs) Handles Label5.Click<br />

If RBtnForm.Checked Then<br />

Me.BackColor = Label5.BackColor<br />

Else<br />

TextBox1.BackColor = Label5.BackColor<br />

End If<br />

End Sub<br />

End Class<br />

Tolga GÜYER Sayfa 43


VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

Uygulama No: 28 – Fonksiyon Kullanımı 1<br />

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

Ekran Görüntüsü<br />

Açıklamalı Kodlar<br />

Public Class Form1<br />

Function islem(ByVal kod As Char, ByVal s1 As Integer, ByVal s2 As<br />

Integer) As Double<br />

Select Case kod<br />

Case "+" : Return (s1 + s2)<br />

Case "-" : Return (s1 - s2)<br />

Case "*" : Return (s1 * s2)<br />

Case "/" : Return (s1 / s2)<br />

End Select<br />

End Function<br />

Private Sub RadioTopla_CheckedChanged(ByVal sender As System.Object,<br />

ByVal e As System.EventArgs) Handles RadioTopla.CheckedChanged<br />

TxtSonuc.Text = islem("+", CInt(TxtSayi1.Text),<br />

CInt(TxtSayi2.Text))<br />

End Sub<br />

Private Sub RadioCikar_CheckedChanged(ByVal sender As System.Object,<br />

ByVal e As System.EventArgs) Handles RadioCikar.CheckedChanged<br />

TxtSonuc.Text = islem("-", CInt(TxtSayi1.Text),<br />

CInt(TxtSayi2.Text))<br />

End Sub<br />

Private Sub RadioCarp_CheckedChanged(ByVal sender As System.Object,<br />

ByVal e As System.EventArgs) Handles RadioCarp.CheckedChanged<br />

TxtSonuc.Text = islem("*", CInt(TxtSayi1.Text),<br />

CInt(TxtSayi2.Text))<br />

End Sub<br />

Private Sub RadioBol_CheckedChanged(ByVal sender As System.Object,<br />

ByVal e As System.EventArgs) Handles RadioBol.CheckedChanged<br />

TxtSonuc.Text = islem("/", CInt(TxtSayi1.Text),<br />

CInt(TxtSayi2.Text))<br />

End Sub<br />

End Class<br />

Tolga GÜYER Sayfa 44


VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

Uygulama No: 29 – Fonksiyon Kullanımı 2<br />

Açıklama : Fonksiyon kullanılarak maaş hesabı.<br />

Ekran Görüntüsü<br />

Public Class Form1<br />

Açıklamalı Kodlar<br />

Function cocuk_yardimi(ByVal m As Integer, ByVal c As Byte) As Double<br />

If c = 2 Then<br />

Return (c * m / 100)<br />

ElseIf c = 3 Then<br />

Return (2 * c * m / 100)<br />

ElseIf c > 3 Then<br />

Return (5 * c * m / 100)<br />

Else : Return 0<br />

End If<br />

End Function<br />

Function aile_yardimi(ByVal kod As Byte) As Integer<br />

If kod = 1 Then<br />

Return (22)<br />

ElseIf kod = 2 Then<br />

Return (48)<br />

Else : Return 0<br />

End If<br />

End Function<br />

Function yabanci_dil(ByVal kod As Byte) As Integer<br />

If kod = 1 Then<br />

Tolga GÜYER Sayfa 45


VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

Return 125<br />

ElseIf kod = 2 Then<br />

Return 55<br />

ElseIf kod = 3 Then<br />

Return 25<br />

Else<br />

Return 0<br />

End If<br />

End Function<br />

Function kidem(ByVal m As Integer, ByVal kod As Byte) As Double<br />

Return (kod * m / 100)<br />

End Function<br />

Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As<br />

System.Object, ByVal e As System.EventArgs) Handles<br />

ComboBox1.SelectedIndexChanged<br />

If ComboBox1.Text = "Bekar" Then<br />

ComboBox2.Enabled = False<br />

RadioButton1.Enabled = False<br />

RadioButton2.Enabled = False<br />

RadioButton1.Checked = False<br />

RadioButton2.Checked = False<br />

ElseIf ComboBox1.Text = "Boşanmış/Dul" Then<br />

ComboBox2.Enabled = True<br />

RadioButton1.Enabled = False<br />

RadioButton2.Enabled = False<br />

RadioButton1.Checked = False<br />

RadioButton2.Checked = False<br />

Else<br />

ComboBox2.Enabled = True<br />

RadioButton1.Enabled = True<br />

RadioButton2.Enabled = True<br />

End If<br />

End Sub<br />

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As<br />

System.EventArgs) Handles Button1.Click<br />

Dim m_gosterge As Integer = TextBox1.Text<br />

Dim maas As Double<br />

Dim kod As Byte = 0<br />

Dim cocuk_sayisi As Byte<br />

If ComboBox2.Text = ">3" Then<br />

cocuk_sayisi = 4<br />

Else<br />

cocuk_sayisi = CInt(ComboBox2.Text)<br />

End If<br />

maas = m_gosterge + cocuk_yardimi(m_gosterge, cocuk_sayisi)<br />

If RadioButton1.Checked Then kod = 1<br />

If RadioButton2.Checked Then kod = 2<br />

maas = maas + aile_yardimi(kod)<br />

kod = 0<br />

If ComboBox3.Text = "90-100" Then kod = 1<br />

If ComboBox3.Text = "80-89" Then kod = 2<br />

If ComboBox3.Text = "70-79" Then kod = 3<br />

maas = maas + yabanci_dil(kod)<br />

Tolga GÜYER Sayfa 46


VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

kod = 0<br />

If ComboBox4.Text = "Lise" Then kod = 1<br />

If ComboBox4.Text = "Üniversite" Then kod = 2<br />

If ComboBox4.Text = "Yüksek Lisans" Then kod = 3<br />

If ComboBox4.Text = "Doktora" Then kod = 4<br />

maas = maas + kidem(m_gosterge, kod)<br />

Label5.Text = maas<br />

End Sub<br />

End Class<br />

Tolga GÜYER Sayfa 47


Uygulama No: 30 – Palindrom<br />

VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

Açıklama : Girilen metnin palindrom (tersten de aynı şekilde okunan) olup olmadığının test<br />

edilmesi.<br />

Ekran Görüntüsü<br />

Açıklamalı Kodlar<br />

Public Class Form1<br />

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As<br />

System.EventArgs) Handles Button1.Click<br />

Dim metin As String = TextBox1.Text<br />

Dim metin_ters As String = ""<br />

For k = Len(metin) - 1 To 0 Step -1<br />

metin_ters = metin_ters & metin(k)<br />

Next<br />

If metin = metin_ters Then MsgBox("TAMAM")<br />

End Sub<br />

End Class<br />

Tolga GÜYER Sayfa 48


VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

Uygulama No: 31 – Palindrom/Liste<br />

Açıklama : Girilen metnin içerisinde yer alan palindrom kelimeler ayıklanarak liste kutusuna<br />

aktarılıyor.<br />

Ekran Görüntüsü<br />

Açıklamalı Kodlar<br />

Public Class Form1<br />

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As<br />

System.EventArgs) Handles Button1.Click<br />

Dim metin As String = TextBox1.Text & " "<br />

Dim kelime, kelime_ters As String<br />

Dim p As Integer = 1<br />

ListBox1.Items.Clear()<br />

For k = 0 To Len(metin) - 1<br />

If metin(k) = " " Then<br />

kelime = Trim(Strings.Mid(metin, p, k - p + 1))<br />

kelime_ters = ""<br />

For j = Len(kelime) - 1 To 0 Step -1<br />

kelime_ters = kelime_ters & kelime(j)<br />

Next<br />

If kelime = kelime_ters Then ListBox1.Items.Add(kelime)<br />

p = p + Len(kelime) + 1<br />

End If<br />

Next<br />

End Sub<br />

End Class<br />

Tolga GÜYER Sayfa 49


VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

Uygulama No: 32 – Metin İstatistikleri<br />

Açıklama : Çok-satırlı bir metin kutusuna girilen metnin hece, kelime ve cümle sayıları<br />

hesaplanıyor ve girilen bir anahtar kelimenin metin içersinde geçme sayısı<br />

bulunuyor.<br />

Ekran Görüntüsü<br />

Açıklamalı Kodlar<br />

Public Class Form1<br />

Dim metin, anahtar, sonkarakter As String<br />

Dim kelime_sayisi, cumle_sayisi, hece_sayisi, p, konum, sayac As Integer<br />

Private Sub BtnHesapla_Click(ByVal sender As System.Object, ByVal e As<br />

System.EventArgs) Handles BtnHesapla.Click<br />

metin = TxtMetin.Text + " "<br />

kelime_sayisi = 0<br />

cumle_sayisi = 0<br />

hece_sayisi = 0<br />

For k = 0 To Strings.Len(metin) - 1 'Metni sonuna kadar karakter<br />

karakter tarıyor.<br />

If metin(k) = " " Then kelime_sayisi = kelime_sayisi + 1 'Kelime<br />

sayısı=boşluk sayısı. Çünkü yukarıda fazladan bir boşluk eklemiştik.<br />

If k = Strings.Len(metin) - 1 Then Exit For 'Aşağıdaki koşulda son<br />

karakterden sonra (k+1) arama yapmasın<br />

Tolga GÜYER Sayfa 50


VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

If (metin(k) = "." And (metin(k + 1) = " " Or Strings.Asc(metin(k +<br />

1)) = 13)) Or metin(k) = "?" Or metin(k) = "!" Then cumle_sayisi = cumle_sayisi +<br />

1<br />

'Hece sayısı=sesli harf sayısı:<br />

If metin(k) = "a" Or metin(k) = "e" Or metin(k) = "ı" Or metin(k) =<br />

"i" Or metin(k) = "o" Or metin(k) = "ö" Or metin(k) = "u" Or metin(k) = "ü" Then<br />

hece_sayisi = hece_sayisi + 1<br />

Next<br />

LblCumleSayisi.Text = cumle_sayisi<br />

LblKelimeSayisi.Text = kelime_sayisi<br />

LblHeceSayisi.Text = hece_sayisi<br />

End Sub<br />

Private Sub BtnBul_Click(ByVal sender As System.Object, ByVal e As<br />

System.EventArgs) Handles BtnBul.Click<br />

metin = TxtMetin.Text<br />

If RadioButton1.Checked Then 'Serbest arama. Yani "masa" aranırken<br />

"masal" da bulunur.<br />

anahtar = TxtAnahtarKelime.Text<br />

Else<br />

anahtar = " " + TxtAnahtarKelime.Text + " " 'Tam eşitlik arama.<br />

"masa" aranırken, "masal" bulunmaz.<br />

End If<br />

sayac = 0<br />

konum = 1<br />

Do<br />

p = Strings.InStr(konum, metin, anahtar) '"anahtar" kelime "metin"<br />

içersinde "konum"dan başlayarak aranıyor.<br />

If p 0 Then sayac = sayac + 1<br />

konum = p + Strings.Len(anahtar) 'Bulunca aramaya yeni konumdan<br />

devam et.<br />

Loop Until p = 0<br />

LblSayi.Text = sayac<br />

End Sub<br />

End Class<br />

Tolga GÜYER Sayfa 51


VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

Uygulama No: 33 – Anahtarlı Metin Şifreleme<br />

Açıklama :<br />

Çok-satırlı bir metin kutusuna girilen bir metin, anahtar<br />

kelime kullanılarak şifreleniyor. Şifreleme, metnin her bir<br />

karakterinin ASCII koduna, anahtar kelimenin her bir<br />

karakterinin ASCII kodunun eklenmesi ile gerçekleştiriliyor.<br />

Aşağıda, örnek üzerinden şifreleme algoritmasının<br />

açıklaması yapılmıştır:<br />

Ek Açıklama<br />

Metin = “Bilgisayar ve Öğretim”<br />

Anahtar = “okul”<br />

B 254 İ 60 l 254 g 254 i 254 s a y a r v e Ö ğ r<br />

o 50 k 50 u 255 l 254 o 253 k u l o k u l o k u l o<br />

,<br />

Toplam=304<br />

Mod 255=49<br />

Ü<br />

110<br />

110<br />

#<br />

509<br />

254<br />

^<br />

508<br />

253<br />

?<br />

507<br />

252<br />

h 8 9 d 6 , i 2 1 m * }<br />

, 49 Ü # 254 ^ 253 ? 252 h 8 9 d 6 , i 2 1 m * }<br />

110<br />

o 50 k 50 u 255 l 254 o 253 k u l o k u l o k u l o<br />

Fark=-1<br />

Fark


VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

Açıklamalı Kodlar<br />

Public Class Form1<br />

Private Sub BtnSifrele_Click(ByVal sender As System.Object, ByVal e As<br />

System.EventArgs) Handles BtnSifrele.Click<br />

Dim metin As String = TxtMetin.Text<br />

Dim anahtar As String = InputBox("Anahtar kelimeyi giriniz:")<br />

Dim sifreli_metin As String = ""<br />

Dim j As Byte = 0<br />

For k = 0 To Strings.Len(metin) - 1 'Metni karakter karakter sonuna<br />

kadar tara.<br />

sifreli_metin = sifreli_metin + Strings.Chr((Strings.Asc(metin(k)) +<br />

Strings.Asc(anahtar(j))) Mod 255)<br />

'Şifreli metni, her bir karakterinin koduna anahtar kelimenin<br />

sıradaki karakterinin kodunu ekleyerek bul.<br />

'Neden Mod 255? Çünkü toplam 255 değerini aşabilir.<br />

j = j + 1<br />

If j = Strings.Len(anahtar) Then j = 0 'Anahtar kelimenin indisi<br />

ayrı tutulmalı. Yoksa indisde değer aşımı olur.<br />

Next<br />

TxtSifreliMetin.Text = sifreli_metin<br />

End Sub<br />

End Class<br />

Tolga GÜYER Sayfa 53


VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

Uygulama No: 34 – Anahtarlı Metin Şifre Çözme<br />

Açıklama : Önceki uygulamada gerçekleştirilen şifrelemeyi, aynı anahtarın girilmesi şartıyla<br />

ters algoritma kullanarak çözen uygulama.<br />

Ekran Görüntüsü<br />

Açıklamalı Kodlar<br />

Public Class Form1<br />

Private Sub BtnSifrecoz_Click(ByVal sender As System.Object, ByVal e As<br />

System.EventArgs) Handles BtnSifrecoz.Click<br />

Dim sifreli_metin As String = TxtSifreliMetin.Text<br />

Dim anahtar As String = InputBox("Anahtar kelimeyi giriniz:")<br />

Dim metin As String = ""<br />

Dim kod As Integer<br />

Dim j As Byte = 0<br />

For k = 0 To Strings.Len(sifreli_metin) - 1<br />

kod = Strings.Asc(sifreli_metin(k)) - Strings.Asc(anahtar(j))<br />

If kod


VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

Uygulama No: 35 – Veritabanı Uygulaması 1<br />

Açıklama : Veritabanı ile bağlantı kurulması ve veri okunması.<br />

Ekran Görüntüsü<br />

Public Class Form1<br />

Açıklamalı Kodlar<br />

Private Sub BtnTamam_Click(ByVal sender As System.Object, ByVal e As<br />

System.EventArgs) Handles BtnTamam.Click<br />

Dim baglanti_metni1, baglanti_metni2 As String<br />

baglanti_metni1 = "Provider=Microsoft.ACE.OLEDB.12.0; Data<br />

Source=|DataDirectory|\vt1.accdb; Persist Security Info=False;"<br />

baglanti_metni2 = "Provider=Microsoft.Jet.OLEDB.4.0; Data<br />

Source=|DataDirectory|\vt1.mdb; Persist Security Info=False;"<br />

‘Bu bağlantı metinlerinden birisi kullanılacaktır.<br />

‘MS.ACE.OLEDB motoru 64 bit işletim sistemlerinde sorun çıkarabiliyor.<br />

‘Bu durumda MS.Jet.OLEDB motorunun ve mdb formatının kullanılması tavsiye<br />

edilir.<br />

Dim baglanti1 As New Data.OleDb.OleDbConnection(baglanti_metni2)<br />

baglanti1.Open()<br />

‘Bağlantı metni kullanılarak yeni bir bağlantı tanımlanıyor ve açılıyor.<br />

Dim sql1 As String<br />

sql1 = "select * from tablo1 where klnad='" & TxtKlnAd.Text & "'<br />

and sifre='" & TxtSifre.Text & "'"<br />

‘Formdaki alanların değerleri kullanılarak veri seçme işlevine sahip bir<br />

SQL cümlesi oluşturuluyor.<br />

Dim komut1 As New System.Data.OleDb.OleDbCommand(sql1, baglanti1)<br />

‘Bağlantı ve SQL cümlesi kullanılarak yeni bir veritabanı komutu<br />

tanımlanıyor.<br />

Dim veri_okuyucu1 As Data.OleDb.OleDbDataReader<br />

veri_okuyucu1 = komut1.ExecuteReader<br />

‘Tanımlanan veritabanı komutu üzerinden bir veri okuyucusu tanımlanıyor ve<br />

çalıştırılıyor.<br />

If veri_okuyucu1.HasRows = True Then ‘Eğer veri okuyucusunda veri<br />

varsa<br />

MsgBox("Kullanıcı kayıtlı.")<br />

Tolga GÜYER Sayfa 55


End Sub<br />

End Class<br />

VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

Else<br />

MsgBox("Kullanıcı kayıtlı değil.")<br />

End If<br />

baglanti1.Close()<br />

Tolga GÜYER Sayfa 56


VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

Uygulama No: 36 – Veritabanı Uygulaması 2<br />

Açıklama : Veritabanı ile bağlantı kurulması ve veri okunması.<br />

Ekran Görüntüsü<br />

Public Class Form1<br />

Açıklamalı Kodlar<br />

Private Sub BtnTamam_Click(ByVal sender As System.Object, ByVal e As<br />

System.EventArgs) Handles BtnTamam.Click<br />

Dim baglanti_metni1, baglanti_metni2 As String<br />

baglanti_metni1 = "Provider=Microsoft.ACE.OLEDB.12.0; Data<br />

Source=|DataDirectory|\vt1.accdb; Persist Security Info=False;"<br />

baglanti_metni2 = "Provider=Microsoft.Jet.OLEDB.4.0; Data<br />

Source=|DataDirectory|\vt1.mdb; Persist Security Info=False;"<br />

‘Bu bağlantı metinlerinden birisi kullanılacaktır.<br />

‘MS.ACE.OLEDB motoru 64 bit işletim sistemlerinde sorun çıkarabiliyor.<br />

‘Bu durumda MS.Jet.OLEDB motorunun ve mdb formatının kullanılması tavsiye<br />

edilir.<br />

Dim baglanti1 As New Data.OleDb.OleDbConnection(baglanti_metni2)<br />

baglanti1.Open()<br />

‘Bağlantı metni kullanılarak yeni bir bağlantı tanımlanıyor ve açılıyor.<br />

Dim sql1 As String<br />

sql1 = "select * from tablo1 where klnad='" & TxtKlnAd.Text & "'<br />

and sifre='" & TxtSifre.Text & "'"<br />

‘Formdaki alanların değerleri kullanılarak veri seçme işlevine sahip bir<br />

SQL cümlesi oluşturuluyor.<br />

Dim komut1 As New System.Data.OleDb.OleDbCommand(sql1, baglanti1)<br />

‘Bağlantı ve SQL cümlesi kullanılarak yeni bir veritabanı komutu<br />

tanımlanıyor.<br />

Dim veri_okuyucu1 As Data.OleDb.OleDbDataReader<br />

veri_okuyucu1 = komut1.ExecuteReader<br />

‘Tanımlanan veritabanı komutu üzerinden bir veri okuyucusu tanımlanıyor ve<br />

çalıştırılıyor.<br />

If veri_okuyucu1.HasRows = True Then ‘Eğer veri okuyucusunda veri<br />

varsa<br />

veri_okuyucu1.Read()<br />

Tolga GÜYER Sayfa 57


VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

MsgBox("Merhaba " & veri_okuyucu1("ad") & " " &<br />

veri_okuyucu1("soyad") & ". MATRIX'e hoşgeldin...") ‘Veri okuyucusu<br />

kullanılarak istenilen alana ulaşmak mümkün.<br />

Else<br />

MsgBox("Kullanıcı kayıtlı değil.")<br />

End If<br />

baglanti1.Close()<br />

End Sub<br />

End Class<br />

Tolga GÜYER Sayfa 58


VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

Uygulama No: 37 – Veritabanı Uygulaması 3<br />

Açıklama : Veritabanına kayıt eklenmesi.<br />

Ekran Görüntüsü<br />

Public Class Form1<br />

Açıklamalı Kodlar<br />

Private Sub BtnKaydet_Click(ByVal sender As System.Object, ByVal e As<br />

System.EventArgs) Handles BtnKaydet.Click<br />

Dim baglanti_metni1, baglanti_metni2 As String<br />

baglanti_metni1 = "Provider=Microsoft.ACE.OLEDB.12.0; Data<br />

Source=|DataDirectory|\vt2.accdb; Persist Security Info=False;"<br />

baglanti_metni2 = "Provider=Microsoft.Jet.OLEDB.4.0; Data<br />

Source=|DataDirectory|\vt2.mdb; Persist Security Info=False;"<br />

Dim baglanti1 As New Data.OleDb.OleDbConnection(baglanti_metni2)<br />

baglanti1.Open()<br />

Dim sql1 As String<br />

sql1 = "insert into anatablo (ad,soyad,fakulte,bolum) values ('" +<br />

TxtAd.Text + "','" + TxtSoyad.Text + "','" + CmbFakulte.Text + "','" +<br />

CmbBolum.Text + "')"<br />

‘Veritabanı tablosuna satır eklemek için kullanılacak SQL cümlesi<br />

End Sub<br />

End Class<br />

Dim komut1 As New System.Data.OleDb.OleDbCommand(sql1, baglanti1)<br />

komut1.ExecuteNonQuery()‘SQL sorgusu burada çalıştırılıyor.<br />

baglanti1.Close()<br />

MsgBox("Veriler Kaydedildi")<br />

TxtAd.Clear()<br />

TxtSoyad.Clear()<br />

TxtAd.Focus()<br />

CmbBolum.ResetText()<br />

CmbFakulte.ResetText()<br />

Tolga GÜYER Sayfa 59


VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

Uygulama No: 38 – Veritabanı Uygulaması 4<br />

Açıklama : Veritabanına kayıt eklenmesi.<br />

Ekran Görüntüsü<br />

Public Class Form1<br />

Açıklamalı Kodlar<br />

Private Sub BtnKaydet_Click(ByVal sender As System.Object, ByVal e As<br />

System.EventArgs) Handles BtnKaydet.Click<br />

Dim baglanti_metni1, baglanti_metni2 As String<br />

baglanti_metni1 = "Provider=Microsoft.ACE.OLEDB.12.0; Data<br />

Source=|DataDirectory|\sinema.accdb; Persist Security Info=False;"<br />

baglanti_metni2 = "Provider=Microsoft.Jet.OLEDB.4.0; Data<br />

Source=|DataDirectory|\sinema.mdb; Persist Security Info=False;"<br />

Dim baglanti1 As New Data.OleDb.OleDbConnection(baglanti_metni2)<br />

baglanti1.Open()<br />

Dim sql1 As String<br />

sql1 = "insert into filmler (film_adi,yonetmen,yili,yildiz,yorum)<br />

values ('" + TxtFilmAdi.Text + "','" + TxtYonetmen.Text + "'," &<br />

CInt(CmbYili.Text) & "," & CInt(CmbYildiz.Text) & ",'" & TxtYorum.Text +<br />

"')"<br />

‘Dikkat: insert cümlesinde veritabanında sayı türünde tanımlanmış alanlar<br />

için tek tırnak işareti kullanılmaz.<br />

Dim komut1 As New System.Data.OleDb.OleDbCommand(sql1, baglanti1)<br />

komut1.ExecuteNonQuery()<br />

baglanti1.Close()<br />

MsgBox("Veriler Kaydedildi")<br />

TxtFilmAdi.Clear()<br />

TxtYonetmen.Clear()<br />

Tolga GÜYER Sayfa 60


End Sub<br />

TxtYorum.Clear()<br />

TxtFilmAdi.Focus()<br />

CmbYildiz.ResetText()<br />

CmbYili.ResetText()<br />

VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As<br />

System.EventArgs) Handles MyBase.Load<br />

For k = 1900 To 2010<br />

CmbYili.Items.Add(k)<br />

Next<br />

End Sub<br />

End Class<br />

Tolga GÜYER Sayfa 61


VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

Uygulama No: 39 – Veritabanı Uygulaması 5<br />

Açıklama : Veritabanına kayıt eklenmesi – Resim uygulamalı.<br />

Ekran Görüntüsü<br />

Açıklamalı Kodlar<br />

Public Class Form1<br />

Dim b1, b2, b3, b4, b5, yildiz As Byte<br />

Private Sub BtnKaydet_Click(ByVal sender As System.Object, ByVal e As<br />

System.EventArgs) Handles BtnKaydet.Click<br />

Dim baglanti_metni1, baglanti_metni2 As String<br />

baglanti_metni1 = "Provider=Microsoft.ACE.OLEDB.12.0; Data<br />

Source=|DataDirectory|\sinema.accdb; Persist Security Info=False;"<br />

baglanti_metni2 = "Provider=Microsoft.Jet.OLEDB.4.0; Data<br />

Source=|DataDirectory|\sinema.mdb; Persist Security Info=False;"<br />

Dim baglanti1 As New Data.OleDb.OleDbConnection(baglanti_metni2)<br />

baglanti1.Open()<br />

Dim sql1 As String<br />

sql1 = "insert into filmler (film_adi,yonetmen,yili,yildiz,yorum)<br />

values ('" + TxtFilmAdi.Text + "','" + TxtYonetmen.Text + "'," &<br />

CInt(CmbYili.Text) & "," & yildiz & ",'" & TxtYorum.Text + "')"<br />

Dim komut1 As New System.Data.OleDb.OleDbCommand(sql1, baglanti1)<br />

komut1.ExecuteNonQuery()<br />

baglanti1.Close()<br />

TxtFilmAdi.Clear()<br />

TxtYonetmen.Clear()<br />

TxtYorum.Clear()<br />

Tolga GÜYER Sayfa 62


VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

End Sub<br />

TxtFilmAdi.Focus()<br />

CmbYili.ResetText()<br />

PictureBox1.ImageLocation = "bos_yildiz.bmp"<br />

PictureBox1.Load()<br />

PictureBox2.ImageLocation = "bos_yildiz.bmp"<br />

PictureBox2.Load()<br />

PictureBox3.ImageLocation = "bos_yildiz.bmp"<br />

PictureBox3.Load()<br />

PictureBox4.ImageLocation = "bos_yildiz.bmp"<br />

PictureBox4.Load()<br />

PictureBox5.ImageLocation = "bos_yildiz.bmp"<br />

PictureBox5.Load()<br />

b1 = 0<br />

b2 = 0<br />

b3 = 0<br />

b4 = 0<br />

b5 = 0<br />

yildiz = 0<br />

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As<br />

System.EventArgs) Handles MyBase.Load<br />

For k = 1900 To 2010 ‘ComboBox bu döngü ile dolduruluyor.<br />

CmbYili.Items.Add(k)<br />

Next<br />

yildiz = 0 ‘Filmin yıldız toplamını tutacak değişken; başlangıçta<br />

sıfırlanıyor.<br />

End Sub<br />

Private Sub PictureBox1_Click(ByVal sender As System.Object, ByVal e<br />

As System.EventArgs) Handles PictureBox1.Click<br />

If b1 = 0 Then ‘Eğer ilk defa tıklandı ise<br />

PictureBox1.ImageLocation = "dolu_yildiz.bmp" ‘Resim dosyası<br />

PictureBox1.Load()‘Resmi yükle<br />

b1 = 1<br />

yildiz = yildiz + 1 ‘Her sarı yıldız resmi için yıldız puanını<br />

bir artır.<br />

Else ‘Eğer ikinci defa tıklandı ise<br />

PictureBox1.ImageLocation = "bos_yildiz.bmp"<br />

PictureBox1.Load()<br />

b1 = 0<br />

yildiz = yildiz – 1 ‘Her beyaz yıldız resmi için yıldız<br />

puanını bir azalt.<br />

End If<br />

End Sub<br />

Private Sub PictureBox2_Click(ByVal sender As System.Object, ByVal e<br />

As System.EventArgs) Handles PictureBox2.Click<br />

If b2 = 0 Then<br />

PictureBox2.ImageLocation = "dolu_yildiz.bmp"<br />

PictureBox2.Load()<br />

b2 = 1<br />

yildiz = yildiz + 1<br />

Else<br />

PictureBox2.ImageLocation = "bos_yildiz.bmp"<br />

PictureBox2.Load()<br />

b2 = 0<br />

yildiz = yildiz - 1<br />

Tolga GÜYER Sayfa 63


VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

End If<br />

End Sub<br />

Private Sub PictureBox3_Click(ByVal sender As System.Object, ByVal e<br />

As System.EventArgs) Handles PictureBox3.Click<br />

If b3 = 0 Then<br />

PictureBox3.ImageLocation = "dolu_yildiz.bmp"<br />

PictureBox3.Load()<br />

b3 = 1<br />

yildiz = yildiz + 1<br />

Else<br />

PictureBox3.ImageLocation = "bos_yildiz.bmp"<br />

PictureBox3.Load()<br />

b3 = 0<br />

yildiz = yildiz - 1<br />

End If<br />

End Sub<br />

Private Sub PictureBox4_Click(ByVal sender As System.Object, ByVal e<br />

As System.EventArgs) Handles PictureBox4.Click<br />

If b4 = 0 Then<br />

PictureBox4.ImageLocation = "dolu_yildiz.bmp"<br />

PictureBox4.Load()<br />

b4 = 1<br />

yildiz = yildiz + 1<br />

Else<br />

PictureBox4.ImageLocation = "bos_yildiz.bmp"<br />

PictureBox4.Load()<br />

b4 = 0<br />

yildiz = yildiz - 1<br />

End If<br />

End Sub<br />

Private Sub PictureBox5_Click(ByVal sender As System.Object, ByVal e<br />

As System.EventArgs) Handles PictureBox5.Click<br />

If b5 = 0 Then<br />

PictureBox5.ImageLocation = "dolu_yildiz.bmp"<br />

PictureBox5.Load()<br />

b5 = 1<br />

yildiz = yildiz + 1<br />

Else<br />

PictureBox5.ImageLocation = "bos_yildiz.bmp"<br />

PictureBox5.Load()<br />

b5 = 0<br />

yildiz = yildiz - 1<br />

End If<br />

End Sub<br />

Private Sub BtnKapat_Click(ByVal sender As System.Object, ByVal e As<br />

System.EventArgs) Handles BtnKapat.Click<br />

End<br />

End Sub<br />

End Class<br />

Tolga GÜYER Sayfa 64


VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

Uygulama No: 40 – Veritabanı Uygulaması 6<br />

Açıklama : Veritabanına kayıt ekleme, kayıt düzeltme, kayıt silme ve dinamik<br />

ComboBox denetimi<br />

Ekran Görüntüsü – Form3 (Menü)<br />

Public Class Form3<br />

Açıklamalı Kodlar<br />

Private Sub BtnGiris_Click(ByVal sender As System.Object, ByVal e As<br />

System.EventArgs) Handles BtnGiris.Click<br />

Form1.ShowDialog()‘Form1 in açılmasını sağlar. Show metodundan<br />

farkı, form açıldığında arkada kalan diğer uygulama pencerelerinin<br />

çalışmasına izin vermemesidir.<br />

End Sub<br />

Private Sub BtnAra_Click(ByVal sender As System.Object, ByVal e As<br />

System.EventArgs) Handles BtnAra.Click<br />

Form2.ShowDialog()<br />

End Sub<br />

Private Sub BtnKapat_Click(ByVal sender As System.Object, ByVal e As<br />

System.EventArgs) Handles BtnKapat.Click<br />

End<br />

End Sub<br />

End Class<br />

Tolga GÜYER Sayfa 65


VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

Ekran Görüntüsü – Form1 (Veri Girişi)<br />

Açıklamalı Kodlar<br />

Public Class Form1<br />

Dim baglanti As New<br />

Data.OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;<br />

DataSource=|DataDirectory|\meteor.mdb; Persist Security Info=False;")<br />

Private Sub BtnKaydet_Click(ByVal sender As System.Object, ByVal e As<br />

System.EventArgs) Handles BtnKaydet.Click<br />

baglanti.Open()<br />

If CmbBolge.Text = "SEÇİNİZ" Then ‘Bölge seçmeden olmaz…<br />

MsgBox("Bölge Seçiniz!")<br />

ElseIf Cmbil.Text = "SEÇİNİZ" Then ‘İl seçmeden olmaz…<br />

MsgBox("İl Seçiniz!")<br />

Else<br />

Dim sql, hava_durumu As String<br />

Dim hava_durumu_kodu As Byte<br />

If rdb_gunesli_1.Checked Then ‘Eğer güneşli resminin yanındaki<br />

radyo düğmesi işaretli ise bu durumda hava durumu kodu ve haca durumu<br />

değişkenlerine uygun değerler aktarılıyor.<br />

hava_durumu_kodu = 1<br />

hava_durumu = "Güneşli"<br />

ElseIf rdb_azbulutlu_2.Checked Then<br />

Tolga GÜYER Sayfa 66


VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

hava_durumu_kodu = 2<br />

hava_durumu = "Az Bulutlu"<br />

ElseIf rdb_bulutlu_3.Checked Then<br />

hava_durumu_kodu = 3<br />

hava_durumu = "Bulutlu"<br />

ElseIf rdb_gokgurultulu_4.Checked Then<br />

hava_durumu_kodu = 4<br />

hava_durumu = "Gök Gürültülü ve Sağanak Yağışlı"<br />

ElseIf rdb_karlakar_5.Checked Then<br />

hava_durumu_kodu = 5<br />

hava_durumu = "Karla Karışık Yağmurlu"<br />

ElseIf rdb_kar_6.Checked Then<br />

hava_durumu_kodu = 6<br />

hava_durumu = "Kar Yağışlı"<br />

ElseIf rdb_parcali_7.Checked Then<br />

hava_durumu_kodu = 7<br />

hava_durumu = "Parçalı Bulutlu"<br />

ElseIf rdb_saganak_8.Checked Then<br />

hava_durumu_kodu = 8<br />

hava_durumu = "Sağanak Yağışlı"<br />

ElseIf rdb_sis_9.Checked Then<br />

hava_durumu_kodu = 9<br />

hava_durumu = "Sisli"<br />

ElseIf rdb_yeryeryagmur_10.Checked Then<br />

hava_durumu_kodu = 10<br />

hava_durumu = "Yer Yer Yağmurlu"<br />

End If<br />

sql = "insert into ana_tablo<br />

(bolge,il,hava_durumu_kodu,hava_durumu,yorum,tarih) values ('" &<br />

CmbBolge.Text & "','" & Cmbil.Text & "'," & hava_durumu_kodu & ",'" &<br />

hava_durumu & "','" & TxtYorum.Text & "','" & Tarih.Value.Date & "')"<br />

Dim komut As New System.Data.OleDb.OleDbCommand(sql, baglanti)<br />

komut.ExecuteNonQuery()<br />

MsgBox("Bilgiler Veritabanına Kaydedilmiştir.")<br />

CmbBolge.Text = "SEÇİNİZ" ‘Kayıttan sora ekran ilk haline<br />

getiriliyor.<br />

Cmbil.Text = "SEÇİNİZ"<br />

Cmbil.Items.Clear()<br />

TxtYorum.Clear()<br />

rdb_gunesli_1.Checked = False<br />

rdb_azbulutlu_2.Checked = False<br />

rdb_bulutlu_3.Checked = False<br />

rdb_gokgurultulu_4.Checked = False<br />

rdb_karlakar_5.Checked = False<br />

rdb_kar_6.Checked = False<br />

rdb_parcali_7.Checked = False<br />

rdb_saganak_8.Checked = False<br />

rdb_sis_9.Checked = False<br />

rdb_yeryeryagmur_10.Checked = False<br />

CmbBolge.Focus()<br />

End If<br />

baglanti.Close()<br />

End Sub<br />

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As<br />

System.EventArgs) Handles MyBase.Load<br />

Tolga GÜYER Sayfa 67


VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

baglanti.Open()<br />

Dim sql As String<br />

sql = "select bolge from bolge_il group by bolge" ‘Form yüklenirken<br />

veritabanındaki bolge_il tablosundan coğrafi bölgeler alınıyor.<br />

Dim komut As New System.Data.OleDb.OleDbCommand(sql, baglanti)<br />

Dim veri_okuyucu As Data.OleDb.OleDbDataReader<br />

veri_okuyucu = komut.ExecuteReader<br />

While (veri_okuyucu.Read())‘Bu döngü çekilen veriyi (bölgeler)<br />

taramak için kullanılıyor.<br />

CmbBolge.Items.Add(veri_okuyucu("bolge")) ‘Bölgeler ilgili<br />

ComboBox a seçenek olarak ekleniyor.<br />

End While<br />

baglanti.Close()<br />

End Sub<br />

Private Sub BtnKapat_Click(ByVal sender As System.Object, ByVal e As<br />

System.EventArgs) Handles BtnKapat.Click<br />

baglanti.Close()<br />

End<br />

End Sub<br />

Private Sub CmbBolge_SelectedIndexChanged(ByVal sender As<br />

System.Object, ByVal e As System.EventArgs) Handles<br />

CmbBolge.SelectedIndexChanged<br />

baglanti.Open()<br />

Cmbil.Items.Clear()<br />

Cmbil.Text = "SEÇİNİZ"<br />

Dim sql As String<br />

sql = "select il from bolge_il where bolge = '" & CmbBolge.Text &<br />

"'"<br />

‘Seçilen bölge altında yer alan iller seçiliyor ve ilgili ComboBox a<br />

seçenek olarak ekleniyor.<br />

Dim komut As New System.Data.OleDb.OleDbCommand(sql, baglanti)<br />

Dim veri_okuyucu As Data.OleDb.OleDbDataReader<br />

veri_okuyucu = komut.ExecuteReader<br />

While (veri_okuyucu.Read())<br />

Cmbil.Items.Add(veri_okuyucu("il"))<br />

End While<br />

baglanti.Close()<br />

End Sub<br />

End Class<br />

Tolga GÜYER Sayfa 68


VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

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

Açıklamalı Kodlar<br />

Public Class Form2<br />

Dim baglanti As New<br />

Data.OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data<br />

Source=|DataDirectory|\meteor.mdb; Persist Security Info=False;")<br />

Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As<br />

System.EventArgs) Handles MyBase.Load<br />

baglanti.Open()<br />

Dim sql As String<br />

sql = "select bolge from bolge_il group by bolge"<br />

Dim komut As New System.Data.OleDb.OleDbCommand(sql, baglanti)<br />

Dim veri_okuyucu As Data.OleDb.OleDbDataReader<br />

veri_okuyucu = komut.ExecuteReader<br />

While (veri_okuyucu.Read())<br />

CmbBolge.Items.Add(veri_okuyucu("bolge"))<br />

End While<br />

baglanti.Close()<br />

End Sub<br />

Private Sub CmbBolge_SelectedIndexChanged(ByVal sender As<br />

System.Object, ByVal e As System.EventArgs) Handles<br />

CmbBolge.SelectedIndexChanged<br />

baglanti.Open()<br />

Cmbil.Items.Clear()<br />

Tolga GÜYER Sayfa 69


VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

"'"<br />

Cmbil.Text = "SEÇİNİZ"<br />

Dim sql As String<br />

sql = "select il from bolge_il where bolge = '" & CmbBolge.Text &<br />

Dim komut As New System.Data.OleDb.OleDbCommand(sql, baglanti)<br />

Dim veri_okuyucu As Data.OleDb.OleDbDataReader<br />

veri_okuyucu = komut.ExecuteReader<br />

While (veri_okuyucu.Read())<br />

Cmbil.Items.Add(veri_okuyucu("il"))<br />

End While<br />

baglanti.Close()<br />

End Sub<br />

Private Sub BtnKapat_Click(ByVal sender As System.Object, ByVal e As<br />

System.EventArgs) Handles BtnKapat.Click<br />

baglanti.Close()<br />

Me.Close()<br />

End Sub<br />

Private Sub BtnAra_Click(ByVal sender As System.Object, ByVal e As<br />

System.EventArgs) Handles BtnAra.Click<br />

baglanti.Open()<br />

Dim sql As String<br />

sql = "select hava_durumu_kodu,yorum from ana_tablo where il = '" &<br />

Cmbil.Text & "' and tarih like '" & Tarih.Value.Date & "'"<br />

‘il ve tarih değeri tutan kayıt aranıyor.<br />

Dim komut As New System.Data.OleDb.OleDbCommand(sql, baglanti)<br />

Dim veri_okuyucu As Data.OleDb.OleDbDataReader<br />

veri_okuyucu = komut.ExecuteReader<br />

ise…<br />

If Not veri_okuyucu.HasRows Then ‘Eğer veri oluyucu kayıt içermiyor<br />

MsgBox("Bu bilgiyi içeren herhangi bir kayıt bulunamadı...")<br />

Else<br />

While (veri_okuyucu.Read())<br />

If veri_okuyucu("hava_durumu_kodu") = 1 Then<br />

rdb_gunesli_1.Checked = True<br />

ElseIf veri_okuyucu("hava_durumu_kodu") = 2 Then<br />

rdb_azbulutlu_2.Checked = True<br />

ElseIf veri_okuyucu("hava_durumu_kodu") = 3 Then<br />

rdb_bulutlu_3.Checked = True<br />

ElseIf veri_okuyucu("hava_durumu_kodu") = 4 Then<br />

rdb_gokgurultulu_4.Checked = True<br />

ElseIf veri_okuyucu("hava_durumu_kodu") = 5 Then<br />

rdb_karlakar_5.Checked = True<br />

ElseIf veri_okuyucu("hava_durumu_kodu") = 6 Then<br />

rdb_kar_6.Checked = True<br />

ElseIf veri_okuyucu("hava_durumu_kodu") = 7 Then<br />

rdb_parcali_7.Checked = True<br />

ElseIf veri_okuyucu("hava_durumu_kodu") = 8 Then<br />

rdb_saganak_8.Checked = True<br />

ElseIf veri_okuyucu("hava_durumu_kodu") = 9 Then<br />

rdb_sis_9.Checked = True<br />

Else<br />

rdb_yeryeryagmur_10.Checked = True<br />

End If<br />

Tolga GÜYER Sayfa 70


End Sub<br />

VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

TxtYorum.Text = veri_okuyucu("yorum")<br />

End While<br />

End If<br />

baglanti.Close()<br />

Private Sub BtnKaydet_Click(ByVal sender As System.Object, ByVal e As<br />

System.EventArgs) Handles BtnKaydet.Click<br />

baglanti.Open()<br />

If CmbBolge.Text = "SEÇİNİZ" Then<br />

MsgBox("Bölge Seçiniz!")<br />

ElseIf Cmbil.Text = "SEÇİNİZ" Then<br />

MsgBox("İl Seçiniz!")<br />

Else<br />

Dim sql, hava_durumu As String<br />

Dim hava_durumu_kodu As Byte<br />

If rdb_gunesli_1.Checked Then<br />

hava_durumu_kodu = 1<br />

hava_durumu = "Güneşli"<br />

ElseIf rdb_azbulutlu_2.Checked Then<br />

hava_durumu_kodu = 2<br />

hava_durumu = "Az Bulutlu"<br />

ElseIf rdb_bulutlu_3.Checked Then<br />

hava_durumu_kodu = 3<br />

hava_durumu = "Bulutlu"<br />

ElseIf rdb_gokgurultulu_4.Checked Then<br />

hava_durumu_kodu = 4<br />

hava_durumu = "Gök Gürültülü ve Sağanak Yağışlı"<br />

ElseIf rdb_karlakar_5.Checked Then<br />

hava_durumu_kodu = 5<br />

hava_durumu = "Karla Karışık Yağmurlu"<br />

ElseIf rdb_kar_6.Checked Then<br />

hava_durumu_kodu = 6<br />

hava_durumu = "Kar Yağışlı"<br />

ElseIf rdb_parcali_7.Checked Then<br />

hava_durumu_kodu = 7<br />

hava_durumu = "Parçalı Bulutlu"<br />

ElseIf rdb_saganak_8.Checked Then<br />

hava_durumu_kodu = 8<br />

hava_durumu = "Sağanak Yağışlı"<br />

ElseIf rdb_sis_9.Checked Then<br />

hava_durumu_kodu = 9<br />

hava_durumu = "Sisli"<br />

ElseIf rdb_yeryeryagmur_10.Checked Then<br />

hava_durumu_kodu = 10<br />

hava_durumu = "Yer Yer Yağmurlu"<br />

End If<br />

sql = "update ana_tablo set hava_durumu_kodu = " &<br />

hava_durumu_kodu & ",hava_durumu = '" & hava_durumu & "',yorum = '" &<br />

TxtYorum.Text & "' where il = '" & Cmbil.Text & "' and tarih like '" &<br />

Tarih.Value.Date & "'"<br />

‘Veritabanında güncelleme işlemi gerçekleştiriliyor.<br />

Dim komut As New System.Data.OleDb.OleDbCommand(sql, baglanti)<br />

komut.ExecuteNonQuery()<br />

MsgBox("Bilgiler Veritabanında Güncellenmiştir.")<br />

Tolga GÜYER Sayfa 71


VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

End If<br />

baglanti.Close()<br />

End Sub<br />

Private Sub BtnSil_Click(ByVal sender As System.Object, ByVal e As<br />

System.EventArgs) Handles BtnSil.Click<br />

baglanti.Open()<br />

If CmbBolge.Text = "SEÇİNİZ" Then<br />

MsgBox("Bölge Seçiniz!")<br />

ElseIf Cmbil.Text = "SEÇİNİZ" Then<br />

MsgBox("İl Seçiniz!")<br />

Else<br />

Dim sql As String<br />

sql = "delete from ana_tablo where il = '" & Cmbil.Text & "'<br />

and tarih like '" & Tarih.Value.Date & "'"<br />

‘Veritabanından formda bilgileri bulunan kayıt siliniyor.<br />

Dim komut As New System.Data.OleDb.OleDbCommand(sql, baglanti)<br />

komut.ExecuteNonQuery()<br />

End Sub<br />

End Class<br />

MsgBox("Bilgiler Veritabanından Silinmiştir.")<br />

End If<br />

baglanti.Close()<br />

CmbBolge.Text = "SEÇİNİZ"<br />

Cmbil.Text = "SEÇİNİZ"<br />

Cmbil.Items.Clear()<br />

TxtYorum.Clear()<br />

rdb_gunesli_1.Checked = False<br />

rdb_azbulutlu_2.Checked = False<br />

rdb_bulutlu_3.Checked = False<br />

rdb_gokgurultulu_4.Checked = False<br />

rdb_karlakar_5.Checked = False<br />

rdb_kar_6.Checked = False<br />

rdb_parcali_7.Checked = False<br />

rdb_saganak_8.Checked = False<br />

rdb_sis_9.Checked = False<br />

rdb_yeryeryagmur_10.Checked = False<br />

CmbBolge.Focus()<br />

Tolga GÜYER Sayfa 72


VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

Veritabanı Tasarımı (meteor.mdb)<br />

Tolga GÜYER Sayfa 73


VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

Tolga GÜYER Sayfa 74


VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

VERİTABANI UYGULAMALARI HAKKINDA ÖZET BİLGİ<br />

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

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

verilmiştir:<br />

Dim baglanti_metni1, baglanti_metni2 As String<br />

baglanti_metni1 = "Provider=Microsoft.ACE.OLEDB.12.0;<br />

DataSource=|DataDirectory|\vt1.accdb; Persist Security Info=False;"<br />

baglanti_metni2 = "Provider=Microsoft.Jet.OLEDB.4.0;<br />

DataSource=|DataDirectory|\vt1.mdb; Persist Security Info=False;"<br />

İlk cümlede (baglanti_metni1) bağlanılan veritabanı dosyası Access 2007 sürümüne aittir. Dolayısıyla<br />

accdb formatındadır.<br />

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

dosyasıdır.<br />

Bu cümlelerden uygun olanı seçilerek bağlantı kurulur:<br />

Dim baglanti1 As New Data.OleDb.OleDbConnection(baglanti_metni2)<br />

baglanti1.Open()<br />

Bağlandığım veritabanında bir tabloya nasıl veri girebilirim?<br />

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

sql1 = "insert into anatablo (numarasi, adi, soyadi, fakultesi, bolumu)<br />

values (10909299, ‘Salih’, ‘Baran’, ‘Eğitim Bilimleri’, ‘BÖTE’)"<br />

İkinci olarak, bu SQL cümlesi ve daha önce tanımladığımız bağlantı (baglanti1) kullanılarak bir komut<br />

tanımlanması ve bu komutun çalıştırılması gerekir:<br />

Dim komut1 As New System.Data.OleDb.OleDbCommand(sql1, baglanti1)<br />

komut1.ExecuteNonQuery()<br />

Ve artık bilgiler veritabanımızın anatablo isimli tablosunda…<br />

Bağlantımızı kapatabiliriz:<br />

baglanti1.Close()<br />

Peki ya bilgileri form üzerinden almak istersem?<br />

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

sql1 = "insert into anatablo (numarasi, adi, soyadi, fakultesi, bolumu)<br />

values (“ & TxtNumara.Text & “,‘” & TxtAd.Text & “’,‘” & TxtSoyad.Text &<br />

“’,‘” & TxtFakulte.Text & “’,‘” & TxtBolum.Text “’)"<br />

Tolga GÜYER Sayfa 75


VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

Veritabanındaki bir tablodan nasıl veri çekebilirim?<br />

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

baglanti1.Open()<br />

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

sql2 = “select * from anatablo”<br />

Dim komut1 As New System.Data.OleDb.OleDbCommand(sql2, baglanti1)<br />

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

Dim veri_okuyucu As Data.OleDb.OleDbDataReader<br />

veri_okuyucu = komut.ExecuteReader<br />

Artık anatablo içindeki veriler veri_okuyucu nesnesi içersinde. Son olarak bu nesnenin içerdiği<br />

bilgilerin nasıl görüntülenebileceğine bakalım:<br />

While (veri_okuyucu.Read())<br />

LstBilgiler.Items.Add(veri_okuyucu("numarasi") & “ “ & veri_okuyucu("adi")<br />

& “ “ & veri_okuyucu("soyadi"))<br />

End While<br />

Ve bağlantımızı kapatalım:<br />

baglanti1.Close()<br />

Ya sadece belirli alanları çekmek İstersem?<br />

Sadece SQL cümlemizde değişiklik yapacağız:<br />

sql2 = “select numarasi, adi, soyadi from anatablo”<br />

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

Yine SQL cümlemizi değiştirmek yeterli olacaktır:<br />

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

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

Öncelikle şu SQL cümlesinin oluşturulması gerekir:<br />

sql1 = "update anatablo set adi=’“ & TxtAd.Text & “’,soyadi=’” &<br />

TxtSoyad.Text & “’ where numarasi=" & TxtNumara.Text<br />

Bundan sonraki adım, kayıt ekleme ile aynı olacaktır:<br />

Dim komut1 As New System.Data.OleDb.OleDbCommand(sql1, baglanti1)<br />

komut1.ExecuteNonQuery()<br />

Bağlantımızı kapatabiliriz:<br />

baglanti1.Close()<br />

Tolga GÜYER Sayfa 76


VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

Veritabanındaki bir tablonun istediğim bir kaydını nasıl silebilirim?<br />

Öncelikle SQL cümlemizi yazalım:<br />

sql1 = "delete from anatablo where numarasi=" & TxtNumara.Text<br />

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

Dim komut1 As New System.Data.OleDb.OleDbCommand(sql1, baglanti1)<br />

komut1.ExecuteNonQuery()<br />

Bağlantımızı kapatabiliriz:<br />

baglanti1.Close()<br />

Tolga GÜYER Sayfa 77


VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

Uygulama No: 41 – Veritabanı Uygulaması 7<br />

Açıklama : Veritabanı bağlantılı Dinamik ComboBox kullanımı<br />

Ekran Görüntüsü<br />

Açıklamalı Kodlar<br />

Public Class Form1<br />

Dim baglanti As New<br />

Data.OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data<br />

Source=|DataDirectory|\ogrenci.mdb; Persist Security Info=False;")<br />

Dim flag As Byte<br />

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As<br />

System.EventArgs) Handles MyBase.Load<br />

baglanti.Open()<br />

Dim sql As String<br />

‘ Fakülteler form yüklenirken veritabanından gelsin<br />

sql = "select fakulte from fakulte_bolum group by fakulte"<br />

‘group by kullanılıyor çünkü fakülte adları fakulte_bolum<br />

tablosunda tekrar ediyor.<br />

Dim komut As New System.Data.OleDb.OleDbCommand(sql, baglanti)<br />

Dim veri_okuyucu As Data.OleDb.OleDbDataReader<br />

veri_okuyucu = komut.ExecuteReader<br />

While (veri_okuyucu.Read())<br />

CmbFakulte.Items.Add(veri_okuyucu("Fakulte"))<br />

End While<br />

baglanti.Close()<br />

End Sub<br />

Private Sub CmbFakulte_SelectedIndexChanged(ByVal sender As<br />

System.Object, ByVal e As System.EventArgs) Handles<br />

Tolga GÜYER Sayfa 78


VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

CmbFakulte.SelectedIndexChanged<br />

If flag = 0 Then baglanti.Open()<br />

CmbBolum.Items.Clear()<br />

CmbBolum.Text = "SEÇİNİZ"<br />

Dim sql As String<br />

sql = "select Bolum from fakulte_bolum where fakulte = '" &<br />

CmbFakulte.Text & "'"<br />

Dim komut As New System.Data.OleDb.OleDbCommand(sql, baglanti)<br />

Dim veri_okuyucu As Data.OleDb.OleDbDataReader<br />

veri_okuyucu = komut.ExecuteReader<br />

‘Veritabanından seçilen fakülte altında yer alan bölümler<br />

çekiliyor<br />

While (veri_okuyucu.Read())<br />

CmbBolum.Items.Add(veri_okuyucu("bolum"))<br />

End While<br />

If flag = 0 Then baglanti.Close()<br />

End Sub<br />

Private Sub BtnBilgiGetir_Click(ByVal sender As System.Object, ByVal e<br />

As System.EventArgs) Handles BtnBilgiGetir.Click<br />

flag = 1<br />

baglanti.Open()<br />

Dim sql As String<br />

sql = "select * from ana_tablo where Ogrencino = '" &<br />

TxtOgrenciNo.Text & "'"<br />

Dim komut As New System.Data.OleDb.OleDbCommand(sql, baglanti)<br />

Dim veri_okuyucu1 As Data.OleDb.OleDbDataReader<br />

veri_okuyucu1 = komut.ExecuteReader<br />

If Not veri_okuyucu1.HasRows Then<br />

‘ Eğer veri okuyucu boş dönmüş ise…<br />

MsgBox("Bu bilgiyi içeren herhangi bir kayıt bulunamadı...")<br />

Else<br />

While (veri_okuyucu1.Read())<br />

TextAd.Text = veri_okuyucu1("adi")<br />

TextSoyad.Text = veri_okuyucu1("soyadi")<br />

TextBabaAd.Text = veri_okuyucu1("babaadi")<br />

TextGun.Text = veri_okuyucu1("gun")<br />

TextAy.Text = veri_okuyucu1("ay")<br />

TextYil.Text = veri_okuyucu1("yil")<br />

CmbFakulte.SelectedItem = veri_okuyucu1("fakulte")<br />

CmbBolum.SelectedItem = veri_okuyucu1("bolum")<br />

End While<br />

End If<br />

baglanti.Close()<br />

flag = 0<br />

End Sub<br />

Private Sub BtnKaydet_Click(ByVal sender As System.Object, ByVal e As<br />

System.EventArgs) Handles BtnKaydet.Click<br />

baglanti.Open()<br />

Dim sql As String<br />

If CmbFakulte.Text = "SEÇİNİZ" Then<br />

MsgBox("Fakülte Seçiniz!")<br />

ElseIf CmbBolum.Text = "SEÇİNİZ" Then<br />

MsgBox("Bölüm Seçiniz!")<br />

Else<br />

sql = "update ana_tablo set fakulte = '" & CmbFakulte.Text &<br />

"', bolum='" & CmbBolum.Text & "',adi = '" & TextAd.Text & "',soyadi='" &<br />

TextSoyad.Text & "',babaadi = '" & TextBabaAd.Text & "',gun=" &<br />

TextGun.Text & ",ay=" & TextAy.Text & ",yil=" & TextYil.Text & " where<br />

Tolga GÜYER Sayfa 79


VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

ogrencino = '" & TxtOgrenciNo.Text & "'"<br />

Dim komut As New System.Data.OleDb.OleDbCommand(sql, baglanti)<br />

komut.ExecuteNonQuery()<br />

‘Veritabanında ana_tablo üzerinde düzeltme yapıldı.<br />

MsgBox("Bilgiler Veritabanında Güncellenmiştir.")<br />

End If<br />

baglanti.Close()<br />

End Sub<br />

End Class<br />

Tolga GÜYER Sayfa 80


VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

Uygulama No: 42 – Veritabanı Uygulaması 8<br />

Açıklama : Veritabanı bağlantılı web tarayıcısı uygulaması<br />

Ekran Görüntüsü – Form1<br />

Açıklamalı Kodlar<br />

Public Class Form1<br />

Dim baglanti As New<br />

Data.OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data<br />

Source=|DataDirectory|\webadres.mdb; Persist Security Info=False;")<br />

Private Sub BtnGit_Click(ByVal sender As System.Object, ByVal e As<br />

System.EventArgs) Handles BtnGit.Click<br />

If Trim(CmbAdres.Text) "" Then<br />

Dim adresTXT As String = CmbAdres.Text<br />

If Strings.Left(adresTXT, 7) "http://" And CmbAdres.Text <br />

"about:blank" Then<br />

adresTXT = "http://" & adresTXT<br />

End If<br />

Dim adresURL As New Uri(adresTXT)<br />

WebBrowser1.Url = adresURL<br />

CmbAdres.Text = adresTXT<br />

'Adresi veritabanına ekle:<br />

baglanti.Open()<br />

Dim Sql As String = "insert into tablo1 (url,tarih) values ('"<br />

& adresTXT & "','" & Date.Now & "')"<br />

Dim komut As New System.Data.OleDb.OleDbCommand(Sql, baglanti)<br />

komut.ExecuteNonQuery()<br />

baglanti.Close()<br />

Tolga GÜYER Sayfa 81


VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

'Adresi adres çubuğuna ekle:<br />

CmbAdres.Items.Add(adresTXT)<br />

End If<br />

End Sub<br />

Private Sub CmbAdres_KeyPress(ByVal sender As Object, ByVal e As<br />

System.Windows.Forms.KeyPressEventArgs) Handles CmbAdres.KeyPress<br />

'Enter tuşuna basıldığında Git butonuna bas:<br />

If e.KeyChar = Chr(13) Then<br />

BtnGit.PerformClick()<br />

End If<br />

End Sub<br />

Private Sub CmbAdres_SelectedIndexChanged(ByVal sender As<br />

System.Object, ByVal e As System.EventArgs) Handles<br />

CmbAdres.SelectedIndexChanged<br />

'Adres çubuğundan yeni adres seçilir seçilmez git:<br />

Dim adresURL As New Uri(CmbAdres.Text)<br />

WebBrowser1.Url = adresURL<br />

End Sub<br />

Private Sub WebBrowser1_Navigated(ByVal sender As Object, ByVal e As<br />

System.Windows.Forms.WebBrowserNavigatedEventArgs) Handles<br />

WebBrowser1.Navigated<br />

'Gezinilen adresleri da göster:<br />

CmbAdres.Text = WebBrowser1.Url.ToString<br />

End Sub<br />

Private Sub KapatToolStripMenuItem_Click(ByVal sender As System.Object,<br />

ByVal e As System.EventArgs) Handles KapatToolStripMenuItem.Click<br />

End<br />

End Sub<br />

Private Sub BtnAdres_Click(ByVal sender As System.Object, ByVal e As<br />

System.EventArgs) Handles BtnAdres.Click<br />

Dim adresURL As New Uri(CmbAdres.Text)<br />

MsgBox(adresURL.AbsoluteUri)<br />

End Sub<br />

Private Sub SıkKullanılanlaraEkleToolStripMenuItem_Click(ByVal sender<br />

As System.Object, ByVal e As System.EventArgs) Handles<br />

SıkKullanılanlaraEkleToolStripMenuItem.Click<br />

SıkKullanılanlarToolStripMenuItem.DropDownItems.Add(WebBrowser1.Url.ToStrin<br />

g)<br />

End Sub<br />

Private Sub BtnGeri_Click(ByVal sender As System.Object, ByVal e As<br />

System.EventArgs) Handles BtnGeri.Click<br />

WebBrowser1.GoBack()<br />

End Sub<br />

Private Sub BtnIleri_Click(ByVal sender As System.Object, ByVal e As<br />

System.EventArgs) Handles BtnIleri.Click<br />

WebBrowser1.GoForward()<br />

End Sub<br />

Private Sub BtnGiris_Click(ByVal sender As System.Object, ByVal e As<br />

System.EventArgs) Handles BtnGiris.Click<br />

WebBrowser1.GoHome()<br />

Tolga GÜYER Sayfa 82


VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

End Sub<br />

Private Sub BtnArama_Click(ByVal sender As System.Object, ByVal e As<br />

System.EventArgs) Handles BtnArama.Click<br />

WebBrowser1.GoSearch()<br />

End Sub<br />

Private Sub GeçmişZiyaretlerToolStripMenuItem_Click(ByVal sender As<br />

System.Object, ByVal e As System.EventArgs) Handles<br />

GeçmişZiyaretlerToolStripMenuItem.Click<br />

Form2.Show()<br />

End Sub<br />

Private Sub İnternetSeçenekleriToolStripMenuItem_Click(ByVal sender As<br />

System.Object, ByVal e As System.EventArgs) Handles<br />

İnternetSeçenekleriToolStripMenuItem.Click<br />

Form3.Show()<br />

End Sub<br />

End Class<br />

Ekran Görüntüsü – Form2<br />

Açıklamalı Kodlar<br />

Public Class Form2<br />

Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As<br />

System.EventArgs) Handles MyBase.Load<br />

Me.Tablo1TableAdapter.Fill(Me.WebadresDataSet4.Tablo1)<br />

End Sub<br />

Private Sub DataGridView1_CellContentDoubleClick(ByVal sender As<br />

Tolga GÜYER Sayfa 83


VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles<br />

DataGridView1.CellContentDoubleClick<br />

Form1.CmbAdres.Text = DataGridView1.CurrentCell.Value<br />

Form1.BtnGit.PerformClick() ‘Git butonuna bastırıyoruz.<br />

Me.Close()<br />

End Sub<br />

End Class<br />

Veritabanı Yapısı<br />

Tolga GÜYER Sayfa 84


VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

Uygulama No: 43 – Anket<br />

Açıklama : Veritabanı bağlantılı anket oluşturma uygulaması.<br />

Soru Tipleri<br />

1. Açık uçlu soru<br />

2. Çok seçimli<br />

3. Tek seçimli<br />

Soru No İfadesi Soru tipi<br />

1 ….nedir? 1<br />

2 …hangileri? 2<br />

3 …? 3<br />

no Soru no Seçenek ifadesi<br />

1 2 Astronomi<br />

2 2 Edebiyat<br />

3 2 Sinema<br />

4 3 100-500<br />

5 3 500-1000<br />

Ekran Görüntüsü<br />

Açıklamalı Kodlar<br />

Public Class Form1<br />

Dim baglanti As New<br />

Data.OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data<br />

Source=|DataDirectory|\anket.mdb; Persist Security Info=False;")<br />

Tolga GÜYER Sayfa 85


VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

Dim soruno As Byte = 0<br />

Private Sub CmbSoruTipi_SelectedIndexChanged(ByVal sender As<br />

System.Object, ByVal e As System.EventArgs) Handles<br />

CmbSoruTipi.SelectedIndexChanged<br />

'Seçmeli soru tipi ise seçenek girme araçları görünsün:<br />

If CmbSoruTipi.Text = "2" Or CmbSoruTipi.Text = "3" Then<br />

GroupBox1.Visible = True<br />

Else<br />

GroupBox1.Visible = False<br />

End If<br />

End Sub<br />

Private Sub BtnSoruKaydet_Click(ByVal sender As System.Object, ByVal e<br />

As System.EventArgs) Handles BtnSoruKaydet.Click<br />

If Strings.Trim(TxtSoruIfade.Text) "" And CmbSoruTipi.Text ""<br />

Then<br />

baglanti.Open()<br />

Dim Sql As String = "insert into Sorular (soru,sorutipi) values<br />

('" & TxtSoruIfade.Text & "'," & CmbSoruTipi.Text & ")"<br />

Dim komut As New System.Data.OleDb.OleDbCommand(Sql, baglanti)<br />

komut.ExecuteNonQuery()<br />

'Kaydedilen en son soru numarası alınıyor:<br />

Dim komut1 As New System.Data.OleDb.OleDbCommand("select soruno<br />

from Sorular", baglanti)<br />

Dim veri_okuyucu As Data.OleDb.OleDbDataReader<br />

veri_okuyucu = komut1.ExecuteReader<br />

While (veri_okuyucu.Read())<br />

soruno = veri_okuyucu("soruno")<br />

End While<br />

'Döngü bittiğinde soruno değişkeninin içinde kaydedilen en son<br />

soru numarası olacaktır.<br />

baglanti.Close()<br />

If CmbSoruTipi.Text = "1" Then<br />

TxtSoruIfade.Clear()<br />

CmbSoruTipi.Text = ""<br />

TxtSoruIfade.Focus()<br />

End If<br />

Else<br />

MsgBox("Soru ifadesini ve soru tipini giriniz.")<br />

TxtSoruIfade.Focus()<br />

End If<br />

End Sub<br />

Private Sub BtnSecenekKaydet_Click(ByVal sender As System.Object, ByVal<br />

e As System.EventArgs) Handles BtnSecenekKaydet.Click<br />

If soruno 0 Then 'Demek ki soruyu kaydetmiş.<br />

baglanti.Open()<br />

Dim Sql As String = "insert into Secenekler (soruno,secenek)<br />

values (" & soruno & ",'" & TxtSecenekIfade.Text & "')"<br />

Dim komut As New System.Data.OleDb.OleDbCommand(Sql, baglanti)<br />

komut.ExecuteNonQuery()<br />

baglanti.Close()<br />

TxtSecenekIfade.Clear()<br />

TxtSecenekIfade.Focus()<br />

Else<br />

MsgBox("Önce seçenek ekleyeceğiniz soruyu kaydediniz.")<br />

End If<br />

End Sub<br />

Tolga GÜYER Sayfa 86


VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

Private Sub BtnYeniSoru_Click(ByVal sender As System.Object, ByVal e As<br />

System.EventArgs) Handles BtnYeniSoru.Click<br />

GroupBox1.Visible = False<br />

TxtSoruIfade.Clear()<br />

CmbSoruTipi.Text = ""<br />

TxtSoruIfade.Focus()<br />

soruno = 0 'Seçenek eklenecek soru numarası yeniden sıfırlanıyor.<br />

End Sub<br />

Private Sub BtnKapat_Click(ByVal sender As System.Object, ByVal e As<br />

System.EventArgs) Handles BtnKapat.Click<br />

End<br />

End Sub<br />

End Class<br />

Tolga GÜYER Sayfa 87


Uygulama No: 44 – Anket Göster<br />

VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

Açıklama : Bir önceki uygulamada hazırlanan anketin kullanıcı temelli olarak<br />

uygulanması.<br />

Ekran Görüntüsü – Form1<br />

Açıklamalı Kodlar<br />

Public Class Form1<br />

Dim baglanti As New<br />

Data.OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data<br />

Source=|DataDirectory|\anket.mdb; Persist Security Info=False;")<br />

Private Sub BtnGir_Click(ByVal sender As System.Object, ByVal e As<br />

System.EventArgs) Handles BtnGir.Click<br />

baglanti.Open()<br />

Dim sql As String = "select * from kln where kln='" & TxtKln.Text &<br />

"' and sfr='" & TxtSfr.Text & "'"<br />

Dim komut As New System.Data.OleDb.OleDbCommand(sql, baglanti)<br />

Dim veri_okuyucu As Data.OleDb.OleDbDataReader<br />

veri_okuyucu = komut.ExecuteReader<br />

If veri_okuyucu.HasRows = True Then<br />

kln = TxtKln.Text 'Kullanıcıyı form2 ye aktarmak için.<br />

Form2.ShowDialog()<br />

Me.Hide()<br />

Else<br />

MsgBox("Kullanıcı adı ya da şifre hatalı!")<br />

TxtKln.Focus()<br />

End If<br />

baglanti.Close()<br />

End Sub<br />

End Class<br />

Tolga GÜYER Sayfa 88


VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

Ekran Görüntüsü – Form2<br />

Açıklamalı Kodlar<br />

Public Class Form2<br />

Dim baglanti As New<br />

Data.OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data<br />

Source=|DataDirectory|\anket.mdb; Persist Security Info=False;")<br />

Dim komut1 As New System.Data.OleDb.OleDbCommand("select * from<br />

Sorular", baglanti)<br />

Dim veri_okuyucu1 As Data.OleDb.OleDbDataReader<br />

Dim cevap, soru_no As String<br />

Private Function temizle()<br />

TxtSoru.Clear()<br />

TxtCevap.Clear()<br />

Grp1.Visible = False<br />

Grp2.Visible = False<br />

Grp3.Visible = False<br />

cevap = ""<br />

Return Nothing 'Fonksiyon değer döndürmüyor uyarısı için.<br />

End Function<br />

Private Function ekran()<br />

Dim sql1 As String = "insert into kln_cevap (kln,soruno,cevap)<br />

values ('" + kln + "'," + soru_no + ",'" & cevap & "')"<br />

Dim komut3 As New System.Data.OleDb.OleDbCommand(sql1, baglanti)<br />

komut3.ExecuteNonQuery()<br />

If veri_okuyucu1.Read() Then<br />

temizle()<br />

TxtSoru.Text = veri_okuyucu1("soru")<br />

soru_no = veri_okuyucu1("soruno")<br />

If veri_okuyucu1("sorutipi") = 1 Then<br />

Tolga GÜYER Sayfa 89


VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

Grp1.Visible = True<br />

Grp2.Visible = False<br />

Grp3.Visible = False<br />

ElseIf veri_okuyucu1("sorutipi") = 2 Then<br />

Grp1.Visible = False<br />

Grp2.Visible = True<br />

Grp3.Visible = False<br />

Else<br />

Grp1.Visible = False<br />

Grp2.Visible = False<br />

Grp3.Visible = True<br />

End If<br />

If veri_okuyucu1("sorutipi") = 2 Or veri_okuyucu1("sorutipi") =<br />

3 Then<br />

Dim sql As String = "select secenek from Secenekler where<br />

soruno=" & soru_no<br />

Dim komut2 As New System.Data.OleDb.OleDbCommand(sql,<br />

baglanti)<br />

Dim veri_okuyucu2 As Data.OleDb.OleDbDataReader<br />

veri_okuyucu2 = komut2.ExecuteReader<br />

veri_okuyucu2.Read()<br />

Dim kontrol As Control<br />

If veri_okuyucu1("sorutipi") = 2 Then<br />

For Each kontrol In Grp2.Controls<br />

kontrol.Visible = True<br />

kontrol.Text = veri_okuyucu2("secenek")<br />

If Not veri_okuyucu2.Read() Then Exit For<br />

Next<br />

Else<br />

For Each kontrol In Grp3.Controls<br />

kontrol.Visible = True<br />

kontrol.Text = veri_okuyucu2("secenek")<br />

If Not veri_okuyucu2.Read() Then Exit For<br />

Next<br />

End If<br />

End If<br />

Else<br />

MsgBox("Sorular Bitti...")<br />

End If<br />

Return Nothing 'Fonksiyon değer döndürmüyor uyarısı için.<br />

End Function<br />

Private Sub Form2_FormClosing(ByVal sender As Object, ByVal e As<br />

System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing<br />

End 'Arkada açık kalan kullanıcı giriş formunu da sonlandırmak<br />

için.<br />

End Sub<br />

Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As<br />

System.EventArgs) Handles MyBase.Load<br />

baglanti.Open()<br />

veri_okuyucu1 = komut1.ExecuteReader<br />

If veri_okuyucu1.Read() Then<br />

soru_no = veri_okuyucu1("soruno")<br />

TxtSoru.Text = veri_okuyucu1("soru")<br />

If veri_okuyucu1("sorutipi") = 1 Then<br />

Grp1.Visible = True<br />

Grp2.Visible = False<br />

Grp3.Visible = False<br />

ElseIf veri_okuyucu1("sorutipi") = 2 Then<br />

Grp1.Visible = False<br />

Grp2.Visible = True<br />

Tolga GÜYER Sayfa 90


VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

Grp3.Visible = False<br />

Else<br />

Grp1.Visible = False<br />

Grp2.Visible = False<br />

Grp3.Visible = True<br />

End If<br />

If veri_okuyucu1("sorutipi") = 2 Or veri_okuyucu1("sorutipi") =<br />

3 Then<br />

Dim soru_no As String = veri_okuyucu1("soruno")<br />

Dim sql As String = "select secenek from Secenekler where<br />

soruno=" & soru_no<br />

Dim komut2 As New System.Data.OleDb.OleDbCommand(sql,<br />

baglanti)<br />

Dim veri_okuyucu2 As Data.OleDb.OleDbDataReader<br />

veri_okuyucu2 = komut2.ExecuteReader<br />

veri_okuyucu2.Read()<br />

Dim kontrol As Control<br />

If veri_okuyucu1("sorutipi") = 2 Then<br />

For Each kontrol In Grp2.Controls<br />

kontrol.Visible = True<br />

kontrol.Text = veri_okuyucu2("secenek")<br />

If Not veri_okuyucu2.Read() Then Exit For<br />

Next<br />

Else<br />

For Each kontrol In Grp3.Controls<br />

kontrol.Visible = True<br />

kontrol.Text = veri_okuyucu2("secenek")<br />

If Not veri_okuyucu2.Read() Then Exit For<br />

Next<br />

End If<br />

End If<br />

Else<br />

MsgBox("Sorular Bitti...")<br />

baglanti.Close()<br />

End If<br />

End Sub<br />

Private Sub BtnSonraki_Click(ByVal sender As System.Object, ByVal e As<br />

System.EventArgs) Handles BtnSonraki.Click<br />

ekran()<br />

End Sub<br />

Private Sub RadioButton8_CheckedChanged(ByVal sender As System.Object,<br />

ByVal e As System.EventArgs) Handles RadioButton8.CheckedChanged<br />

cevap = RadioButton8.Text<br />

End Sub<br />

Private Sub RadioButton7_CheckedChanged(ByVal sender As System.Object,<br />

ByVal e As System.EventArgs) Handles RadioButton7.CheckedChanged<br />

cevap = RadioButton7.Text<br />

End Sub<br />

Private Sub RadioButton6_CheckedChanged(ByVal sender As System.Object,<br />

ByVal e As System.EventArgs) Handles RadioButton6.CheckedChanged<br />

cevap = RadioButton6.Text<br />

End Sub<br />

Private Sub RadioButton5_CheckedChanged(ByVal sender As System.Object,<br />

ByVal e As System.EventArgs) Handles RadioButton5.CheckedChanged<br />

cevap = RadioButton5.Text<br />

Tolga GÜYER Sayfa 91


VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

End Sub<br />

Private Sub RadioButton4_CheckedChanged(ByVal sender As System.Object,<br />

ByVal e As System.EventArgs) Handles RadioButton4.CheckedChanged<br />

cevap = RadioButton4.Text<br />

End Sub<br />

Private Sub RadioButton3_CheckedChanged(ByVal sender As System.Object,<br />

ByVal e As System.EventArgs) Handles RadioButton3.CheckedChanged<br />

cevap = RadioButton3.Text<br />

End Sub<br />

Private Sub RadioButton2_CheckedChanged(ByVal sender As System.Object,<br />

ByVal e As System.EventArgs) Handles RadioButton2.CheckedChanged<br />

cevap = RadioButton2.Text<br />

End Sub<br />

Private Sub RadioButton1_CheckedChanged(ByVal sender As System.Object,<br />

ByVal e As System.EventArgs) Handles RadioButton1.CheckedChanged<br />

cevap = RadioButton1.Text<br />

End Sub<br />

Private Sub CheckBox8_CheckedChanged(ByVal sender As System.Object,<br />

ByVal e As System.EventArgs) Handles CheckBox8.CheckedChanged<br />

cevap = cevap & ";" & CheckBox8.Text<br />

End Sub<br />

Private Sub CheckBox7_CheckedChanged(ByVal sender As System.Object,<br />

ByVal e As System.EventArgs) Handles CheckBox7.CheckedChanged<br />

cevap = cevap & ";" & CheckBox7.Text<br />

End Sub<br />

Private Sub CheckBox6_CheckedChanged(ByVal sender As System.Object,<br />

ByVal e As System.EventArgs) Handles CheckBox6.CheckedChanged<br />

cevap = cevap & ";" & CheckBox6.Text<br />

End Sub<br />

Private Sub CheckBox5_CheckedChanged(ByVal sender As System.Object,<br />

ByVal e As System.EventArgs) Handles CheckBox5.CheckedChanged<br />

cevap = cevap & ";" & CheckBox5.Text<br />

End Sub<br />

Private Sub CheckBox4_CheckedChanged(ByVal sender As System.Object,<br />

ByVal e As System.EventArgs) Handles CheckBox4.CheckedChanged<br />

cevap = cevap & ";" & CheckBox4.Text<br />

End Sub<br />

Private Sub CheckBox3_CheckedChanged(ByVal sender As System.Object,<br />

ByVal e As System.EventArgs) Handles CheckBox3.CheckedChanged<br />

cevap = cevap & ";" & CheckBox3.Text<br />

End Sub<br />

Private Sub CheckBox2_CheckedChanged(ByVal sender As System.Object,<br />

ByVal e As System.EventArgs) Handles CheckBox2.CheckedChanged<br />

cevap = cevap & ";" & CheckBox2.Text<br />

End Sub<br />

Private Sub CheckBox1_CheckedChanged(ByVal sender As System.Object,<br />

ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged<br />

cevap = cevap & ";" & CheckBox1.Text<br />

Tolga GÜYER Sayfa 92


VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

End Sub<br />

Private Sub TxtCevap_TextChanged(ByVal sender As System.Object, ByVal e<br />

As System.EventArgs) Handles TxtCevap.TextChanged<br />

cevap = TxtCevap.Text<br />

End Sub<br />

End Class<br />

Modül<br />

Module Module1<br />

Public kln As String<br />

End Module<br />

‘ Modül ne işe yarar?<br />

Projenin tamamında kullanacağımız bütün tanımlamalar (burada kullanıcı<br />

adını form1 den form2 ye geçirmek istedik) modülde yapılır.<br />

Veritabanı Yapısı<br />

Tolga GÜYER Sayfa 93


VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

Tolga GÜYER Sayfa 94


VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

Uygulama No: 45 – Veritabanı Uygulaması 9<br />

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

Ekran Görüntüsü<br />

Açıklamalı Kodlar<br />

Public Class Form1<br />

Dim baglanti_metni As String = "Provider=Microsoft.Jet.OLEDB.4.0; Data<br />

Source=|DataDirectory|\ihracat.mdb; Persist Security Info=False;"<br />

Dim baglanti As New Data.OleDb.OleDbConnection(baglanti_metni)<br />

Private Sub Form1_Load(ByVal sender As Object, ByVal e As<br />

System.EventArgs) Handles Me.Load<br />

'Veritabanı ile bağlantı sağlanıyor:<br />

baglanti.Open()<br />

'Yıllar ComboBox dolduruluyor:<br />

Dim sql As String = "select yil from Anatablo group by yil"<br />

Dim komut As New System.Data.OleDb.OleDbCommand(sql, baglanti)<br />

Dim veri_okuyucu As Data.OleDb.OleDbDataReader<br />

veri_okuyucu = komut.ExecuteReader<br />

While (veri_okuyucu.Read())<br />

CmbYil.Items.Add(veri_okuyucu("yil"))<br />

End While<br />

'Sektörler ComboBox dolduruluyor:<br />

Dim sql1 As String = "select sektor from Anatablo group by sektor"<br />

Dim komut1 As New System.Data.OleDb.OleDbCommand(sql1, baglanti)<br />

Dim veri_okuyucu1 As Data.OleDb.OleDbDataReader<br />

veri_okuyucu1 = komut1.ExecuteReader<br />

While (veri_okuyucu1.Read())<br />

CmbSektor.Items.Add(veri_okuyucu1("sektor"))<br />

End While<br />

End Sub<br />

Private Sub BtnGuncelle_Click(ByVal sender As System.Object, ByVal e As<br />

System.EventArgs) Handles BtnGuncelle.Click<br />

Dim sql As String = "select tutar from Anatablo where sektor='" &<br />

CmbSektor.Text & "'"<br />

Dim komut As New System.Data.OleDb.OleDbCommand(sql, baglanti)<br />

Dim veri_okuyucu As Data.OleDb.OleDbDataReader<br />

Dim toplam As Integer = 0<br />

Tolga GÜYER Sayfa 95


VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

veri_okuyucu = komut.ExecuteReader<br />

While (veri_okuyucu.Read())<br />

toplam = toplam + veri_okuyucu("tutar")<br />

End While<br />

LblToplam.Text = toplam<br />

End Sub<br />

Private Sub BtnTutar_Click(ByVal sender As System.Object, ByVal e As<br />

System.EventArgs) Handles BtnTutar.Click<br />

Dim sql As String = "select tutar from Anatablo where yil=" &<br />

CInt(CmbYil.Text) & " and sektor='" & CmbSektor.Text & "'"<br />

Dim komut As New System.Data.OleDb.OleDbCommand(sql, baglanti)<br />

Dim veri_okuyucu As Data.OleDb.OleDbDataReader<br />

veri_okuyucu = komut.ExecuteReader<br />

If veri_okuyucu.HasRows = True Then<br />

veri_okuyucu.Read()<br />

LblIhracatTutar.Text = veri_okuyucu("tutar")<br />

End If<br />

End Sub<br />

Private Sub CmbSektor_SelectedIndexChanged(ByVal sender As<br />

System.Object, ByVal e As System.EventArgs) Handles<br />

CmbSektor.SelectedIndexChanged<br />

LblSektor.Text = CmbSektor.Text<br />

End Sub<br />

End Class<br />

Veritabanı Yapısı<br />

Tolga GÜYER Sayfa 96


VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

Uygulama No: 46 – Veritabanı Uygulaması 10<br />

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

Ekran Görüntüsü<br />

Açıklamalı Kodlar<br />

Public Class Form1<br />

Dim baglanti_metni As String = "Provider=Microsoft.Jet.OLEDB.4.0; Data<br />

Source=|DataDirectory|\otomobil.mdb; Persist Security Info=False;"<br />

Dim baglanti As New Data.OleDb.OleDbConnection(baglanti_metni)<br />

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As<br />

System.EventArgs) Handles MyBase.Load<br />

'Veritabanı ile bağlantı sağlanıyor:<br />

baglanti.Open()<br />

'Marka ComboBox'ı dolduruluyor:<br />

Dim sql As String = "select marka from oto_bilgi group by marka"<br />

Dim komut As New System.Data.OleDb.OleDbCommand(sql, baglanti)<br />

Dim veri_okuyucu As Data.OleDb.OleDbDataReader<br />

veri_okuyucu = komut.ExecuteReader<br />

While (veri_okuyucu.Read())<br />

CmbMarka.Items.Add(veri_okuyucu("marka"))<br />

Tolga GÜYER Sayfa 97


VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

End While<br />

'Yil ComboBox'ı dolduruluyor:<br />

Dim sql1 As String = "select yil from oto_bilgi group by yil"<br />

Dim komut1 As New System.Data.OleDb.OleDbCommand(sql1, baglanti)<br />

Dim veri_okuyucu1 As Data.OleDb.OleDbDataReader<br />

veri_okuyucu1 = komut1.ExecuteReader<br />

While (veri_okuyucu1.Read())<br />

CmbYil.Items.Add(veri_okuyucu1("yil"))<br />

End While<br />

'Renk ComboBox'ı dolduruluyor:<br />

Dim sql2 As String = "select renk from oto_bilgi group by renk"<br />

Dim komut2 As New System.Data.OleDb.OleDbCommand(sql2, baglanti)<br />

Dim veri_okuyucu2 As Data.OleDb.OleDbDataReader<br />

veri_okuyucu2 = komut2.ExecuteReader<br />

While (veri_okuyucu2.Read())<br />

CmbRenk.Items.Add(veri_okuyucu2("renk"))<br />

End While<br />

'Yakıt Türü ComboBox'ı dolduruluyor:<br />

Dim sql3 As String = "select yakit_turu from oto_bilgi group by<br />

yakit_turu"<br />

Dim komut3 As New System.Data.OleDb.OleDbCommand(sql3, baglanti)<br />

Dim veri_okuyucu3 As Data.OleDb.OleDbDataReader<br />

veri_okuyucu3 = komut3.ExecuteReader<br />

While (veri_okuyucu3.Read())<br />

CmbYakitTuru.Items.Add(veri_okuyucu3("yakit_turu"))<br />

End While<br />

End Sub<br />

'Vites ComboBox'ı dolduruluyor:<br />

Dim sql4 As String = "select vites from oto_bilgi group by vites"<br />

Dim komut4 As New System.Data.OleDb.OleDbCommand(sql4, baglanti)<br />

Dim veri_okuyucu4 As Data.OleDb.OleDbDataReader<br />

veri_okuyucu4 = komut4.ExecuteReader<br />

While (veri_okuyucu4.Read())<br />

CmbVites.Items.Add(veri_okuyucu4("vites"))<br />

End While<br />

Private Sub CmbMarka_SelectedIndexChanged(ByVal sender As<br />

System.Object, ByVal e As System.EventArgs) Handles<br />

CmbMarka.SelectedIndexChanged<br />

CmbModel.Text = ""<br />

CmbModel.Items.Clear()<br />

'Marka ComboBox'ına bağlı olarak Model ComboBox'ı dolduruluyor:<br />

Dim sql As String = "select model from oto_bilgi where marka='" &<br />

CmbMarka.Text & "' group by model"<br />

Dim komut As New System.Data.OleDb.OleDbCommand(sql, baglanti)<br />

Dim veri_okuyucu As Data.OleDb.OleDbDataReader<br />

veri_okuyucu = komut.ExecuteReader<br />

While (veri_okuyucu.Read())<br />

CmbModel.Items.Add(veri_okuyucu("model"))<br />

End While<br />

End Sub<br />

Private Sub BtnBul_Click(ByVal sender As System.Object, ByVal e As<br />

System.EventArgs) Handles BtnBul.Click<br />

LstSonuclar.Items.Clear()<br />

Tolga GÜYER Sayfa 98


VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

Dim sonuc_metni As String = ""<br />

Dim sql As String<br />

If CmbYil.Text = "" Then<br />

sql = "SELECT * FROM oto_bilgi WHERE marka='" & CmbMarka.Text &<br />

"' AND model='" & CmbModel.Text & "' AND renk='" & CmbRenk.Text & "' AND<br />

yakit_turu='" & CmbYakitTuru.Text & "' AND vites='" & CmbVites.Text & "'<br />

AND (km BETWEEN " & CInt(TxtKilometre1.Text) & " AND " &<br />

CInt(TxtKilometre2.Text) & ") AND (fiyat BETWEEN " & CInt(TxtFiyat1.Text) &<br />

" AND " & CInt(TxtFiyat2.Text) & ")"<br />

Else<br />

sql = "SELECT * FROM oto_bilgi WHERE marka='" & CmbMarka.Text &<br />

"' AND model='" & CmbModel.Text & "' AND yil=" & CInt(CmbYil.Text) & " AND<br />

renk='" & CmbRenk.Text & "' AND yakit_turu='" & CmbYakitTuru.Text & "' AND<br />

vites='" & CmbVites.Text & "' AND (km BETWEEN " & CInt(TxtKilometre1.Text)<br />

& " AND " & CInt(TxtKilometre2.Text) & ") AND (fiyat BETWEEN " &<br />

CInt(TxtFiyat1.Text) & " AND " & CInt(TxtFiyat2.Text) & ")"<br />

End If<br />

Dim komut As New System.Data.OleDb.OleDbCommand(sql, baglanti)<br />

Dim veri_okuyucu As Data.OleDb.OleDbDataReader<br />

veri_okuyucu = komut.ExecuteReader<br />

If veri_okuyucu.HasRows Then<br />

While (veri_okuyucu.Read())<br />

sonuc_metni = veri_okuyucu("marka") & " " &<br />

veri_okuyucu("model") & " " & veri_okuyucu("versiyon") & ", " &<br />

veri_okuyucu("renk") & " renk, fiyatı ise " & veri_okuyucu("fiyat") & " TL"<br />

LstSonuclar.Items.Add(sonuc_metni)<br />

End While<br />

Else<br />

LstSonuclar.Items.Add("Veritabanımızda bu kriterlere uygun<br />

kayıt yoktur.")<br />

End If<br />

End Sub<br />

End Class<br />

Veritabanı Yapısı<br />

Tolga GÜYER Sayfa 99


VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

Uygulama No: 47 – Veritabanı Uygulaması 11<br />

Açıklama : Basit bir banka (müşteri-hesap) uygulaması. İlişkisel veritabanı<br />

kullanılmıştır.<br />

Ekran Görüntüsü – Form1<br />

Public Class Form1<br />

Açıklamalı Kodlar<br />

Private Sub PictureBox1_Click(ByVal sender As System.Object, ByVal e As<br />

System.EventArgs) Handles PictureBox1.Click<br />

FrmYeniHesap.ShowDialog()<br />

End Sub<br />

Private Sub PictureBox2_Click(ByVal sender As System.Object, ByVal e As<br />

System.EventArgs) Handles PictureBox2.Click<br />

FrmYeniMusteri.ShowDialog()<br />

End Sub<br />

End Class<br />

Tolga GÜYER Sayfa 100


VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

Ekran Görüntüsü – FrmYeniMusteri<br />

Public Class FrmYeniMusteri<br />

Açıklamalı Kodlar<br />

Private Sub BtnKaydet_Click(ByVal sender As System.Object, ByVal e As<br />

System.EventArgs) Handles BtnKaydet.Click<br />

baglantiAc()<br />

'Müşteri tanlosuna kaydediliyor:<br />

Dim musteriTuru As Byte = CByte(Strings.Left(CmbTur.Text, 1))<br />

Dim Sql As String = "insert into musteri<br />

(ad1,ad2,soyad1,soyad2,turu,tel1,tel2,adres) values ('" & TxtAd1.Text &<br />

"','" & TxtAd2.Text & "','" & TxtSoyad1.Text & "','" & TxtSoyad2.Text &<br />

"'," & musteriTuru & ",'" & TxtTel1.Text & "','" & TxtTel2.Text & "','" &<br />

TxtAdres.Text & "')"<br />

Dim komut As New System.Data.OleDb.OleDbCommand(Sql, baglanti)<br />

komut.ExecuteNonQuery()<br />

MsgBox("Müşteri bilgileri veritabanına eklenmiştir.")<br />

TxtAd1.Clear()<br />

TxtAd2.Clear()<br />

TxtSoyad1.Clear()<br />

TxtSoyad2.Clear()<br />

TxtTel1.Clear()<br />

TxtTel2.Clear()<br />

TxtAdres.Clear()<br />

CmbTur.ResetText()<br />

TxtAd1.Focus()<br />

End Sub<br />

End Class<br />

Tolga GÜYER Sayfa 101


VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

Ekran Görüntüsü – FrmYeniHesap<br />

Açıklamalı Kodlar<br />

Public Class FrmYeniHesap<br />

Dim musterino As Integer<br />

Private Sub FrmYeniHesap_Load(ByVal sender As System.Object, ByVal e As<br />

System.EventArgs) Handles MyBase.Load<br />

baglantiAc()<br />

Dim sql As String = "select * from musteri"<br />

Dim komut As New System.Data.OleDb.OleDbCommand(sql, baglanti)<br />

Dim veri_okuyucu As Data.OleDb.OleDbDataReader<br />

veri_okuyucu = komut.ExecuteReader<br />

CmbSahip.Items.Clear()<br />

CmbMusteriNo_Gizli.Items.Clear()'Gizli combo, seçilen müşerinin<br />

numarasını almak için kullanılıyor.<br />

While (veri_okuyucu.Read())<br />

CmbSahip.Items.Add(veri_okuyucu("ad1") & " " &<br />

veri_okuyucu("ad2") & " " & veri_okuyucu("soyad1") & " " &<br />

veri_okuyucu("soyad2") & "-" & veri_okuyucu("no"))<br />

CmbMusteriNo_Gizli.Items.Add(veri_okuyucu("no"))<br />

End While<br />

End Sub<br />

Private Sub BtnKaydet_Click(ByVal sender As System.Object, ByVal e As<br />

System.EventArgs) Handles BtnKaydet.Click<br />

baglantiAc()<br />

'Hesap tablosuna kaydediliyor:<br />

Dim durumu As Byte = CByte(Strings.Left(CmbDurum.Text, 1))<br />

Dim turu As Byte = CByte(Strings.Left(CmbTur.Text, 1))<br />

Dim Sql As String = "insert into hesap<br />

(iban,turu,acilma_tarihi,bakiye,durumu,musterino) values ('" & TxtIBAN.Text<br />

& "'," & turu & ",'" & DateTimePicker1.Value & "'," & TxtBakiye.Text & ","<br />

Tolga GÜYER Sayfa 102


VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

& durumu & "," & musterino & ")"<br />

Dim komut As New System.Data.OleDb.OleDbCommand(Sql, baglanti)<br />

komut.ExecuteNonQuery()<br />

MsgBox("Hesap bilgileri veritabanına eklenmiştir.")<br />

TxtBakiye.Clear()<br />

TxtIBAN.Clear()<br />

CmbDurum.ResetText()<br />

CmbSahip.ResetText()<br />

CmbTur.ResetText()<br />

TxtIBAN.Focus()<br />

End Sub<br />

Private Sub CmbSahip_SelectedIndexChanged(ByVal sender As<br />

System.Object, ByVal e As System.EventArgs) Handles<br />

CmbSahip.SelectedIndexChanged<br />

musterino = CInt(CmbMusteriNo_Gizli.Items(CmbSahip.SelectedIndex))<br />

End Sub<br />

End Class<br />

Veritabanı Yapısı<br />

Tolga GÜYER Sayfa 103


VB.Net Örnek Uygulamalar<br />

2 Kasım 2011<br />

Müşteri tablosunun birincil anahtarı, hesap tablosunda müşteri numarası adıyla yabancı anahtar<br />

yapılmak suretiyle bu iki tablo ilişkilendirilmiştir. İlişki 1-N tipindedir; yani bir müşterinin birden çok<br />

sayıda hesabı olabilirken, bir hesap sadece bir müşteriye ait olabilir.<br />

Tolga GÜYER Sayfa 104

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!