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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

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!