Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
VB.Net Örnek Uygulamalar<br />
Tolga GÜYER<br />
02.11.2011
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
İçindekiler<br />
Uygulama No: 1 – Buraya Basmayın! ...................................................................................................... 4<br />
Uygulama No: 2 – Vücut-Kitle İndeksi ..................................................................................................... 5<br />
Uygulama No: 3 – Burçlar ........................................................................................................................ 7<br />
Uygulama No: 4 – Not Hesapla................................................................................................................ 9<br />
Uygulama No: 5 – Ders Ekle .................................................................................................................. 11<br />
Uygulama No: 6 – Ders Kodu ................................................................................................................. 12<br />
Uygulama No: 7 – Geçme Notu ............................................................................................................. 13<br />
Uygulama No: 8 – Numara Oluştur ....................................................................................................... 15<br />
Uygulama No: 9 – İl ve İlçe .................................................................................................................... 17<br />
Uygulama No: 10 – Kimlik Ekle .............................................................................................................. 18<br />
Uygulama No: 11 – E-Posta Adresi Oluşturma ...................................................................................... 20<br />
Uygulama No: 12 – Olaylar-1 ................................................................................................................. 21<br />
Uygulama No: 13 – Dört İşlem .............................................................................................................. 23<br />
Uygulama No: 14 – Ardışık Sayıların Toplamı ........................................................................................ 24<br />
Uygulama No: 15 – Mekanik Sayaç ....................................................................................................... 25<br />
Uygulama No: 16 – Asal Sayı Testi ......................................................................................................... 26<br />
Uygulama No: 17 – Pi Sayısının Yaklaşık Hesabı .................................................................................... 27<br />
Uygulama No: 18 – Kuvvet ve Faktöriyel Hesabı ................................................................................... 29<br />
Uygulama No: 19 – İç İçe Döngü ........................................................................................................... 30<br />
Uygulama No: 20 – 153 Sayısı ............................................................................................................... 31<br />
Uygulama No: 21 – Pisagor Üçlüleri ...................................................................................................... 32<br />
Uygulama No: 22 – Collatz Problemi ..................................................................................................... 33<br />
Uygulama No: 23 – Kaprekar Sayıları .................................................................................................... 35<br />
Uygulama No: 24 – Kaprekar Sabiti ....................................................................................................... 37<br />
Uygulama No: 25 – Mükemmel Sayılar ................................................................................................. 39<br />
Uygulama No: 26 – Aritmetik Ortalama ve Standart Sapma ................................................................. 40<br />
Uygulama No: 27 – Renk Aktarımı......................................................................................................... 42<br />
Uygulama No: 28 – Fonksiyon Kullanımı 1 ............................................................................................ 44<br />
Uygulama No: 29 – Fonksiyon Kullanımı 2 ............................................................................................ 45<br />
Uygulama No: 30 – Palindrom ............................................................................................................... 48<br />
Uygulama No: 31 – Palindrom/Liste ...................................................................................................... 49<br />
Tolga GÜYER Sayfa 2
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
Uygulama No: 32 – Metin İstatistikleri .................................................................................................. 50<br />
Uygulama No: 33 – Anahtarlı Metin Şifreleme ..................................................................................... 52<br />
Uygulama No: 34 – Anahtarlı Metin Şifre Çözme .................................................................................. 54<br />
Uygulama No: 35 – Veritabanı Uygulaması 1 ........................................................................................ 55<br />
Uygulama No: 36 – Veritabanı Uygulaması 2 ........................................................................................ 57<br />
Uygulama No: 37 – Veritabanı Uygulaması 3 ........................................................................................ 59<br />
Uygulama No: 38 – Veritabanı Uygulaması 4 ........................................................................................ 60<br />
Uygulama No: 39 – Veritabanı Uygulaması 5 ........................................................................................ 62<br />
Uygulama No: 40 – Veritabanı Uygulaması 6 ........................................................................................ 65<br />
VERİTABANI UYGULAMALARI HAKKINDA ÖZET BİLGİ ........................................................................... 75<br />
Uygulama No: 41 – Veritabanı Uygulaması 7 ........................................................................................ 78<br />
Uygulama No: 42 – Veritabanı Uygulaması 8 ........................................................................................ 81<br />
Uygulama No: 43 – Anket ...................................................................................................................... 85<br />
Uygulama No: 44 – Anket Göster .......................................................................................................... 88<br />
Uygulama No: 45 – Veritabanı Uygulaması 9 ........................................................................................ 95<br />
Uygulama No: 46 – Veritabanı Uygulaması 10 ...................................................................................... 97<br />
Uygulama No: 47 – Veritabanı Uygulaması 11 .................................................................................... 100<br />
Tolga GÜYER Sayfa 3
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
Uygulama No: 1 – Buraya Basmayın!<br />
Açıklama : Metin kutusuna herhangi bir metin girilmemiş ise butona<br />
basıldığında tepki veriliyor.<br />
Ekran Görüntüsü<br />
Public Class Form1<br />
Açıklamalı Kodlar<br />
Private Sub basma_Click(ByVal sender As Object, ByVal e As<br />
System.EventArgs) Handles basma.Click<br />
If giris.Text = "" Then ‘Eğer metin kutusu boş ise…<br />
MsgBox("Basmayın demiştim")<br />
basma.BackColor = Color.Red ‘Buton kırmızı oluyor.<br />
Else<br />
basma.BackColor = Color.GreenYellow ‘Aksi halde yeşile dönüyor.<br />
End If<br />
End Sub<br />
End Class<br />
Tolga GÜYER Sayfa 4
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
Uygulama No: 2 – Vücut-Kitle İndeksi<br />
Açıklama : Girilen ağırlık ve boy verilerine göre vücut-kitle indeksi<br />
belirleniyor ve kişinin girdiği ağırlık sınıfı görsel destekle<br />
sunuluyor.<br />
Ekran Görüntüsü<br />
Public Class Form1<br />
Açıklamalı Kodlar<br />
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As<br />
System.EventArgs) Handles Button1.Click<br />
TxtVki.Text = TxtKilo.Text / (TxtBoy.Text * TxtBoy.Text)<br />
‘Vücut kitle indeksi=ağırlık (kg) / boyun (m) karesi.<br />
If TxtVki.Text
End Sub<br />
End Class<br />
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
If TxtVki.Text >= 20 And TxtVki.Text < 25 Then<br />
TxtSonuc.Text = "İdeal sınırlarda"<br />
PictureBox1.ImageLocation = "ideal.jpg"<br />
End If<br />
If TxtVki.Text >= 25 And TxtVki.Text < 30 Then<br />
TxtSonuc.Text = "Hafif şişman"<br />
PictureBox1.ImageLocation = "hafif_sisman.jpg"<br />
End If<br />
If TxtVki.Text >= 30 And TxtVki.Text < 35 Then<br />
TxtSonuc.Text = "Şişman"<br />
PictureBox1.ImageLocation = "sisman.jpg"<br />
End If<br />
If TxtVki.Text >= 35 And TxtVki.Text < 45 Then<br />
TxtSonuc.Text = "Sağlık açısından önemli"<br />
PictureBox1.ImageLocation = "saglik_acisindan_tehlike.jpg"<br />
End If<br />
If TxtVki.Text >= 45 And TxtVki.Text < 50 Then<br />
TxtSonuc.Text = "Aşırı şişman"<br />
PictureBox1.ImageLocation = "cok_sisman.jpg"<br />
End If<br />
If TxtVki.Text >= 50 Then<br />
TxtSonuc.Text = "Morbid (ölümcül) şişman"<br />
PictureBox1.ImageLocation = "morbid.jpg"<br />
End If<br />
Tolga GÜYER Sayfa 6
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
Uygulama No: 3 – Burçlar<br />
Açıklama : Date-Time Picker kontrolünden seçilen tarihe göre kişinin<br />
burcunun ne olduğu belirleniyor ve görsel destekle<br />
sunuluyor.<br />
Ekran Görüntüsü<br />
Açıklamalı Kodlar<br />
Public Class Form1<br />
Dim gun, ay As Integer<br />
Private Sub DateTimePicker1_ValueChanged(ByVal sender As Object, ByVal e As<br />
System.EventArgs) Handles DateTimePicker1.ValueChanged<br />
gun = DateTimePicker1.Value.Day ‘Sadece gün bilgisi alınıyor.<br />
ay = DateTimePicker1.Value.Month ‘Sadece ay bilgisi alınıyor.<br />
If (ay = 12 And gun >= 23) Or (ay = 1 And gun = 22) Or (ay = 10 And gun = 21) Or (ay = 2 And gun = 20) Or (ay = 3 And gun
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
If (ay = 3 And gun >= 21) Or (ay = 4 And gun = 21) Or (ay = 5 And gun = 22) Or (ay = 6 And gun = 22) Or (ay = 7 And gun = 24) Or (ay = 8 And gun = 24) Or (ay = 9 And gun = 23) Or (ay = 11 And gun = 23) Or (ay = 12 And gun
Uygulama No: 4 – Not Hesapla<br />
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
Açıklama : Girilen ara sınav ve genel sınav notları kullanılarak geçme<br />
notu hesaplanıyor ve bu geçme notuna karşılık gelen harf<br />
notu belirleniyor.<br />
Ekran Görüntüsü<br />
Public Class Form1<br />
Dim vize, final As Integer<br />
Dim gecme As Double<br />
Açıklamalı Kodlar<br />
Private Sub Txt_Final_TextChanged(ByVal sender As Object, ByVal e As<br />
System.EventArgs) Handles Txt_Final.TextChanged<br />
‘Final notunun girildiği metin kutusu değişirken…<br />
If Txt_Final.Text "" And IsNumeric(Txt_Final.Text) Then<br />
‘Eğer final metin kutusu dolu ve sayısal veri ise…<br />
If Txt_Final.Text > 100 Then<br />
‘Eğer girilen final değeri 100 den büyük ise…<br />
MsgBox("Hatalı Giriş!")<br />
Txt_Final.Clear()<br />
TxtGecme.Clear()<br />
TxtHarf.Clear()<br />
TxtGecme.BackColor = Color.White<br />
Else ‘Aksi halde, yani final 100 den küçük…<br />
If Txt_Vize.Text "" And IsNumeric(Txt_Vize.Text) Then<br />
vize = Txt_Vize.Text<br />
final = Txt_Final.Text<br />
gecme = 2 * vize / 5 + 3 * final / 5<br />
‘vizenin %40’ı + finalin %60’ı<br />
TxtGecme.Text = gecme<br />
If gecme >= 50 Then TxtGecme.BackColor =<br />
Color.GreenYellow Else TxtGecme.BackColor = Color.Red<br />
End If<br />
End If<br />
Else ‘Ya final alanı boş, ya da girilen değer sayısal değil.<br />
TxtGecme.Clear()<br />
Tolga GÜYER Sayfa 9
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
TxtHarf.Clear()<br />
TxtGecme.BackColor = Color.White<br />
End If<br />
End Sub<br />
Private Sub Txt_Vize_TextChanged(ByVal sender As Object, ByVal e As<br />
System.EventArgs) Handles Txt_Vize.TextChanged<br />
‘Aynı şeyler vize notu için de yapılıyor.<br />
If Txt_Vize.Text "" And IsNumeric(Txt_Vize.Text) Then<br />
If Txt_Vize.Text > 100 Then<br />
MsgBox("Hatalı Giriş!")<br />
Txt_Vize.Clear()<br />
TxtGecme.Clear()<br />
TxtHarf.Clear()<br />
TxtGecme.BackColor = Color.White<br />
Else<br />
If Txt_Final.Text "" And IsNumeric(Txt_Final.Text) Then<br />
vize = Txt_Vize.Text<br />
final = Txt_Final.Text<br />
gecme = 2 * vize / 5 + 3 * final / 5<br />
TxtGecme.Text = gecme<br />
If gecme >= 50 Then TxtGecme.BackColor =<br />
Color.GreenYellow Else TxtGecme.BackColor = Color.Red<br />
End If<br />
End If<br />
Else<br />
TxtGecme.Clear()<br />
TxtHarf.Clear()<br />
TxtGecme.BackColor = Color.White<br />
End If<br />
End Sub<br />
Private Sub TxtGecme_TextChanged(ByVal sender As Object, ByVal e As<br />
System.EventArgs) Handles TxtGecme.TextChanged<br />
‘Geçme notu alanı değişirken harf notu hesaplanıyor.<br />
If TxtGecme.Text "" Then<br />
If TxtGecme.Text >= 90 Then<br />
TxtHarf.Text = "AA"<br />
ElseIf TxtGecme.Text >= 80 Then<br />
TxtHarf.Text = "BA"<br />
ElseIf TxtGecme.Text >= 70 Then<br />
TxtHarf.Text = "BB"<br />
ElseIf TxtGecme.Text >= 60 Then<br />
TxtHarf.Text = "CB"<br />
ElseIf TxtGecme.Text >= 50 Then<br />
TxtHarf.Text = "CC"<br />
ElseIf TxtGecme.Text >= 40 Then<br />
TxtHarf.Text = "DC"<br />
ElseIf TxtGecme.Text >= 30 Then<br />
TxtHarf.Text = "DD"<br />
ElseIf TxtGecme.Text >= 20 Then<br />
TxtHarf.Text = "FD"<br />
Else<br />
TxtHarf.Text = "FF"<br />
End If<br />
End If<br />
End Sub<br />
End Class<br />
Tolga GÜYER Sayfa 10
Uygulama No: 5 – Ders Ekle<br />
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
Açıklama : İki adet metin kutusundan alınan bilgilerle oluşturulan<br />
ders kodu ve adı liste kutusuna ekleniyor. Daha sonra<br />
liste kutusundan seçilen ders silinebiliyor.<br />
Ekran Görüntüsü<br />
Açıklamalı Kodlar<br />
Public Class Form1<br />
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As<br />
System.EventArgs) Handles Button1.Click<br />
ListBox1.Items.Add(TextBox1.Text + " " + TextBox2.Text)<br />
‘Ders kodu ve adı metinleri birleştirilerek liste kutusuna<br />
aktarılıyor.<br />
End Sub<br />
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As<br />
System.EventArgs) Handles Button3.Click<br />
ListBox1.Items.Clear()<br />
End Sub<br />
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As<br />
System.EventArgs) Handles Button2.Click<br />
ListBox1.Items.Remove(ListBox1.SelectedItem) ‘Liste kutusundan<br />
seçili olan seçenek siliniyor.<br />
End Sub<br />
End Class<br />
Tolga GÜYER Sayfa 11
Uygulama No: 6 – Ders Kodu<br />
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
Açıklama : Metin kutusuna girilen ders kodu ve adı ayrıştırılarak iki ayrı liste<br />
kutusuna ekleniyor.<br />
Ekran Görüntüsü<br />
Açıklamalı Kodlar<br />
Public Class Form1<br />
Dim dersin_kodu, dersin_adi, ders As String<br />
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As<br />
System.EventArgs) Handles Button1.Click<br />
ders = TextBox1.Text<br />
dersin_kodu = Strings.UCase(Strings.Left(ders, 6))<br />
‘Ders kodu, büyük harfe dönüştürülen metnin soldan 6 karakteri<br />
alınarak ayrıştırılıyor.<br />
dersin_adi = Strings.Right(ders, Strings.Len(ders) - 6)<br />
‘Ders adı, metnin sağdan uzunluğu-6 karakteri alınarak<br />
ayrıştırılıyor.<br />
ListBox1.Items.Add(dersin_kodu)<br />
ListBox2.Items.Add(dersin_adi)<br />
TextBox1.Clear()<br />
End Sub<br />
End Class<br />
Tolga GÜYER Sayfa 12
Uygulama No: 7 – Geçme Notu<br />
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
Açıklama : Metin kutusuna girilen numara bilgisi kullanılarak öğrencinin giriş<br />
yılı ve fakültesi belirleniyor. Arasınav ve Final notları kullanılarak<br />
geçme notu ve bu nota karşılık gelen harf notu hesaplanıyor.<br />
Ekran Görüntüsü<br />
Public Class Form1<br />
Açıklamalı Kodlar<br />
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As<br />
System.EventArgs) Handles Button1.Click<br />
Dim Notu As Integer<br />
Dim Yil As String<br />
Dim Fak, numara As String<br />
Yil = Strings.Left(TextBox1.Text, 2)<br />
‘Eğer giriş yılının son iki hanesi 50’den küçükse 2000’li yıllar<br />
olduğunu anla ve başına 20 ekle. Aksi halde başına 19 ekle:<br />
If Yil < 50 Then<br />
ListBox1.Items.Add("20" + Yil)<br />
Else<br />
ListBox1.Items.Add("19" + Yil)<br />
End If<br />
numara = TextBox1.Text<br />
Fak = Strings.Mid(numara, 3, 2)<br />
If Fak = "01" Then<br />
ListBox2.Items.Add("Mühendislik")<br />
ElseIf Fak = "02" Then<br />
ListBox2.Items.Add("Eğitim Bil.")<br />
ElseIf Fak = "03" Then<br />
ListBox2.Items.Add("Hukuk")<br />
ElseIf Fak = "04" Then<br />
ListBox2.Items.Add("iletişim")<br />
Else<br />
ListBox2.Items.Add("Diğerleri")<br />
End If<br />
ListBox3.Items.Add(TextBox2.Text + " " + TextBox3.Text)<br />
Notu = (TextBox4.Text * 0.4) + (TextBox5.Text * 0.6)<br />
Tolga GÜYER Sayfa 13
End Sub<br />
End Class<br />
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
ListBox4.Items.Add(Notu)<br />
If Notu 89 Then<br />
ListBox5.Items.Add("AA")<br />
ElseIf Notu > 84 Then<br />
ListBox5.Items.Add("BA")<br />
ElseIf Notu > 79 Then<br />
ListBox5.Items.Add("BB")<br />
ElseIf Notu > 74 Then<br />
ListBox5.Items.Add("CB")<br />
ElseIf Notu > 69 Then<br />
ListBox5.Items.Add("CC")<br />
ElseIf Notu > 64 Then<br />
ListBox5.Items.Add("DC")<br />
ElseIf Notu > 59 Then<br />
ListBox5.Items.Add("DD")<br />
ElseIf Notu > 49 Then<br />
ListBox5.Items.Add("FD")<br />
ElseIf Notu < 50 Then<br />
ListBox5.Items.Add("FF")<br />
End If<br />
TextBox1.Text = ""<br />
TextBox2.Text = ""<br />
TextBox3.Text = ""<br />
TextBox4.Text = ""<br />
TextBox5.Text = ""<br />
TextBox1.Focus()<br />
Tolga GÜYER Sayfa 14
Uygulama No: 8 – Numara Oluştur<br />
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
Açıklama : Açılan kutudan (ComboBox) seçilen fakülteye göre öğrenci numarası<br />
oluşturuluyor. Giriş yılı sistem zamanından alınıyor ve her fakülte için sıra<br />
numaraları ayrı sayaçlarda tutuluyor.<br />
Ekran Görüntüsü<br />
Açıklamalı Kodlar<br />
Public Class Form1<br />
Dim fakulte_adi, fakulte_kodu, sira, numara As String<br />
Dim egt_sayac, muh_sayac, huk_sayac, tip_sayac, sayac As Integer<br />
Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As Object,<br />
ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged<br />
fakulte_adi = ComboBox1.Text<br />
If fakulte_adi = "Eğitim Bilimleri Fakültesi" Then<br />
fakulte_kodu = "04"<br />
egt_sayac = egt_sayac + 1<br />
sayac = egt_sayac<br />
ElseIf fakulte_adi = "Mühendislik Fakültesi" Then<br />
fakulte_kodu = "03"<br />
muh_sayac = muh_sayac + 1<br />
sayac = muh_sayac<br />
ElseIf fakulte_adi = "Hukuk Fakültesi" Then<br />
fakulte_kodu = "02"<br />
huk_sayac = huk_sayac + 1<br />
sayac = huk_sayac<br />
ElseIf fakulte_adi = "Tıp Fakültesi" Then<br />
fakulte_kodu = "01"<br />
tip_sayac = tip_sayac + 1<br />
sayac = tip_sayac<br />
End If<br />
‘Sıra numarasının basamak sayısına göre başına ekleyeceği sıfır<br />
sayısına karar veriyor:<br />
If Strings.Len(sayac.ToString) = 1 Then<br />
sira = "000" + sayac.ToString<br />
ElseIf Strings.Len(sayac.ToString) = 2 Then<br />
sira = "00" + sayac.ToString<br />
ElseIf Strings.Len(sayac.ToString) = 3 Then<br />
sira = "0" + sayac.ToString<br />
Else<br />
sira = sayac.ToString<br />
Tolga GÜYER Sayfa 15
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
End If<br />
numara = Strings.Right(System.DateTime.Today.Year, 2) +<br />
fakulte_kodu + sira ‘Sistem saatinden bugünün tarihinin yılı alınıyor ve<br />
bunun sağdan iki basamağı ayrıştırılıyor.<br />
TextBox3.Text = numara<br />
End Sub<br />
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As<br />
System.EventArgs) Handles Button1.Click<br />
TextBox1.Clear()<br />
TextBox2.Clear()<br />
TextBox3.Clear()<br />
TextBox1.Focus()<br />
End Sub<br />
End Class<br />
Tolga GÜYER Sayfa 16
Uygulama No: 9 – İl ve İlçe<br />
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
Açıklama : İl için tanımlanan açılan kutudan seçilen il adına göre ilçe için tanımlanan açılan<br />
kutunun içeriği otomatik olarak dolduruluyor.<br />
Ekran Görüntüsü<br />
Public Class Form1<br />
Açıklamalı Kodlar<br />
Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object,<br />
ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged<br />
ComboBox2.Items.Clear()<br />
If ComboBox1.Text = "Ankara" Then<br />
ComboBox2.Items.Add("Çankaya")<br />
ComboBox2.Items.Add("Etimesgut")<br />
ComboBox2.Items.Add("Keçiören")<br />
ComboBox2.Items.Add("Yenimahalle")<br />
ComboBox2.Items.Add("Mamak")<br />
ElseIf ComboBox1.Text = "İstanbul" Then<br />
ComboBox2.Items.Add("Beşiktaş")<br />
ComboBox2.Items.Add("Şişli")<br />
ComboBox2.Items.Add("Eminönü")<br />
ComboBox2.Items.Add("Beykoz")<br />
ComboBox2.Items.Add("Adalar")<br />
ElseIf ComboBox1.Text = "İzmir" Then<br />
ComboBox2.Items.Add("Karşıyaka")<br />
ComboBox2.Items.Add("Bornova")<br />
ComboBox2.Items.Add("Güzelyalı")<br />
ComboBox2.Items.Add("Buca")<br />
ComboBox2.Items.Add("Konak")<br />
End If<br />
End Sub<br />
End Class<br />
Tolga GÜYER Sayfa 17
Uygulama No: 10 – Kimlik Ekle<br />
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
Uygulama No : 08<br />
Uygulama Adı : Kimlik Ekle<br />
Açıklama : 1. Alanların her üçünün de girilmiş olması gerekiyor. Aksi halde uyarı mesajı<br />
veriliyor.<br />
2. Kimlik numarası 11 hane olmazsa uyarı mesajı veriliyor.<br />
3. Cinsiyet Kadın seçilirse Askerlik Durumu pasif konuma geçiyor.<br />
4. Bilgileri Ekle butonuna basıldığında bilgiler liste kutusuna alt alta ekleniyor.<br />
Ekran Görüntüsü<br />
Açıklamalı Kodlar<br />
Public Class Form1<br />
Dim cinsiyet, ask As String<br />
Private Sub Radio_kadin_Click(ByVal sender As Object, ByVal e As<br />
System.EventArgs) Handles Radio_kadin.Click<br />
GroupBox2.Enabled = False ‘Grup kutusu pasifize ediliyor.<br />
Dolayısıyla üzerindeki radyo düğmeleri de pasif hale gelmiş oluyor.<br />
End Sub<br />
Private Sub Radio_erkek_Click(ByVal sender As Object, ByVal e As<br />
System.EventArgs) Handles Radio_erkek.Click<br />
GroupBox2.Enabled = True<br />
End Sub<br />
Private Sub Btn_ekle_Click(ByVal sender As System.Object, ByVal e As<br />
System.EventArgs) Handles Btn_ekle.Click<br />
If Strings.Trim(Txt_ad.Text) "" And<br />
Strings.Trim(Txt_soyad.Text) "" And Strings.Trim(Txt_kimlik.Text) ""<br />
Then<br />
If Strings.Trim(Strings.Len(Txt_kimlik.Text)) 11 Then<br />
MsgBox("Kimlik Numarası uygun girilmedi")<br />
Exit Sub<br />
End If<br />
Tolga GÜYER Sayfa 18
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
ListBox1.Items.Add("Adı Soyadı: " + Txt_ad.Text + " " +<br />
Txt_soyad.Text)<br />
ListBox1.Items.Add("Kimlik No : " + Txt_kimlik.Text)<br />
If Radio_erkek.Checked = True Then<br />
cinsiyet = "Erkek"<br />
Else<br />
cinsiyet = "Kadın"<br />
End If<br />
ListBox1.Items.Add("Cinsiyeti : " + cinsiyet)<br />
If Radio_erkek.Checked = True Then<br />
If Radio_as1.Checked = True Then<br />
ask = "Yapmış"<br />
ElseIf Radio_as2.Checked = True Then<br />
ask = "Tecilli"<br />
Else<br />
ask = "Muaf"<br />
End If<br />
ListBox1.Items.Add("Askerlik Durumu : " + ask)<br />
End If<br />
ListBox1.Items.Add("********************************************")<br />
Txt_ad.Clear()<br />
Txt_kimlik.Clear()<br />
Txt_soyad.Clear()<br />
Txt_ad.Focus()<br />
Else<br />
MsgBox("Alanların hepsi girilmemiş!")<br />
End If<br />
End Sub<br />
End Class<br />
Tolga GÜYER Sayfa 19
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
Uygulama No: 11 – E-Posta Adresi Oluşturma<br />
Açıklama : Butona basıldığında kişinin adının ilk harfi ile soyadı birleştiriliyor,<br />
ComboBox’dan seçilen üniversiteye göre e-posta adresi otomatik olarak<br />
oluşturuluyor.<br />
Ekran Görüntüsü<br />
Public Class Form1<br />
Açıklamalı Kodlar<br />
Dim eposta, alan As String<br />
Dim k As Byte<br />
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As<br />
System.EventArgs) Handles Button1.Click<br />
k = Strings.InStr(Cmb_universite.Text, " ") 'Üniversite adındaki<br />
ilk boşluğun konumu.<br />
alan = Strings.Mid(Cmb_universite.Text, 1, k - 1)<br />
eposta = Strings.LCase(Strings.Left(Txt_ad.Text, 1) & "." &<br />
Txt_soyad.Text & "@" & alan & ".edu.tr")<br />
'Aşağıda, metin içersinden Türkçe harfler dönüştürülüyor.<br />
'Örneğin çetin => cetin gibi.<br />
eposta = Strings.Replace(eposta, "ş", "s", 1)<br />
eposta = Strings.Replace(eposta, "ğ", "g", 1)<br />
eposta = Strings.Replace(eposta, "ö", "o", 1)<br />
eposta = Strings.Replace(eposta, "ü", "u", 1)<br />
eposta = Strings.Replace(eposta, "ç", "c", 1)<br />
eposta = Strings.Replace(eposta, "ı", "i", 1)<br />
Txt_eposta.Text = eposta<br />
End Sub<br />
End Class<br />
Tolga GÜYER Sayfa 20
Uygulama No: 12 – Olaylar-1<br />
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
Açıklama : Radyo düğmelerinin ve işaretleme kutularının tıklama olayları liste kutusuna<br />
ekleniyor. Sil butonu, liste kutusundan seçilen kayıt(lar)ı siliyor.<br />
Ekran Görüntüsü<br />
Açıklamalı Kodlar<br />
Public Class Form1<br />
Dim i As Byte<br />
Private Sub secenek1_Click(ByVal sender As Object, ByVal e As<br />
System.EventArgs) Handles secenek1.Click<br />
ListBox1.Items.Add(secenek1.Text + " seçildi")<br />
End Sub<br />
Private Sub secenek2_Click(ByVal sender As Object, ByVal e As<br />
System.EventArgs) Handles secenek2.Click<br />
ListBox1.Items.Add(secenek2.Text + " seçildi")<br />
End Sub<br />
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As<br />
System.EventArgs) Handles BtnSil.Click<br />
If ListBox1.SelectedItems.Count 0 Then ‘En az bir seçilmiş<br />
seçenek varsa.<br />
For i = 0 To ListBox1.SelectedItems.Count - 1<br />
ListBox1.Items.Remove(ListBox1.SelectedItem)<br />
Next<br />
End If<br />
End Sub<br />
Private Sub secim1_Click(ByVal sender As Object, ByVal e As<br />
System.EventArgs) Handles secim1.Click<br />
If secim1.Checked = True Then<br />
ListBox1.Items.Add(secim1.Text + " işaretlendi")<br />
Else<br />
ListBox1.Items.Add(secim1.Text + " işareti kaldırıldı")<br />
End If<br />
End Sub<br />
Tolga GÜYER Sayfa 21
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
Private Sub secim2_Click(ByVal sender As Object, ByVal e As<br />
System.EventArgs) Handles secim2.Click<br />
If secim2.Checked = True Then<br />
ListBox1.Items.Add(secim2.Text + " işaretlendi")<br />
Else<br />
ListBox1.Items.Add(secim2.Text + " işareti kaldırıldı")<br />
End If<br />
End Sub<br />
End Class<br />
Tolga GÜYER Sayfa 22
Uygulama No: 13 – Dört İşlem<br />
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
Açıklama : İki sayı için seçilen işleme göre hesap yapılıyor.<br />
Ekran Görüntüsü<br />
Public Class Form1<br />
Dim s1, s2 As Integer<br />
Dim s As Double<br />
Açıklamalı Kodlar<br />
Private Sub hesapla_Click(ByVal sender As System.Object, ByVal e As<br />
System.EventArgs) Handles hesapla.Click<br />
s1 = sayi1.Text<br />
s2 = sayi2.Text<br />
If topla.Checked = True Then<br />
s = s1 + s2<br />
ElseIf cikar.Checked = True Then<br />
s = s1 - s2<br />
ElseIf carp.Checked = True Then<br />
s = s1 * s2<br />
ElseIf bol.Checked = True And s2 0 Then ‘Sıfıra bölme yapmasın.<br />
s = s1 / s2<br />
End If<br />
sonuc.Text = s<br />
End Sub<br />
End Class<br />
Tolga GÜYER Sayfa 23
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
Uygulama No: 14 – Ardışık Sayıların Toplamı<br />
Açıklama : For-Next döngüsünün kullanımına ilişkin basit bir örnek.<br />
Ekran Görüntüsü<br />
Public Class Form1<br />
Açıklamalı Kodlar<br />
Private Sub BtnToplam_Click(ByVal sender As System.Object, ByVal e As<br />
System.EventArgs) Handles BtnToplam.Click<br />
Dim sayac, toplam As Integer<br />
toplam = 0<br />
For sayac = TxtBaslangic.Text To TxtBitis.Text<br />
toplam = toplam + sayac<br />
Next<br />
MsgBox(toplam)<br />
End Sub<br />
End Class<br />
Tolga GÜYER Sayfa 24
Uygulama No: 15 – Mekanik Sayaç<br />
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
Açıklama : For-Next döngüsünün iç içe kullanımına ilişkin basit bir örnek.<br />
Ekran Görüntüsü<br />
Açıklamalı Kodlar<br />
Public Class Form1<br />
Private Sub BtnBaslat_Click(ByVal sender As System.Object, ByVal e As<br />
System.EventArgs) Handles BtnBaslat.Click<br />
For basamak1 = 0 To 9<br />
LblB1.Text = basamak1<br />
For bekle = 0 To 10000000 ‘Her adımda beklemeyi sağlar.<br />
Next<br />
LblB1.Refresh()‘Etiketin (Label) tazelenmesi. Yeni sayıyı her<br />
adımda göstermesi için gereklidir.<br />
For basamak2 = 0 To 9<br />
LblB2.Text = basamak2<br />
For bekle = 0 To 10000000<br />
Next<br />
LblB2.Refresh()<br />
For basamak3 = 0 To 9<br />
LblB3.Text = basamak3<br />
For bekle = 0 To 10000000<br />
Next<br />
LblB3.Refresh()<br />
Next<br />
Next<br />
Next<br />
End Sub<br />
End Class<br />
Tolga GÜYER Sayfa 25
Uygulama No: 16 – Asal Sayı Testi<br />
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
Açıklama : Sayı asal ise “Asaldır” mesajı veriliyor. Aksi halde sayının ilk böleni gösteriliyor.<br />
Ekran Görüntüsü<br />
Public Class Form1<br />
Açıklamalı Kodlar<br />
Private Sub BtnAsalmi_Click(ByVal sender As System.Object, ByVal e As<br />
System.EventArgs) Handles BtnAsalmi.Click<br />
Dim asalmi As Boolean = True<br />
Dim say As UInt64 ‘En büyük tamsayı türü.<br />
For say = 2 To TxtSayi.Text / 2 ‘Sayının yarısına kadar bölen<br />
araştırılacak.<br />
If TxtSayi.Text Mod say = 0 Then ‘Eğer tam bölüyor ise…<br />
asalmi = False<br />
Exit For ‘Daha fazla araştırmaya gerek yok.<br />
End If<br />
Next<br />
If asalmi = True Then ‘Demekki yukarıdaki koşula hiç girmemiş.<br />
MsgBox("ASALDIR")<br />
Else : MsgBox("ASAL DEĞİLDİR. " & say & " sayısı bu sayıyı<br />
böler.")<br />
End If<br />
End Sub<br />
End Class<br />
Tolga GÜYER Sayfa 26
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
Uygulama No: 17 – Pi Sayısının Yaklaşık Hesabı<br />
Açıklama : Girilen yaklaşım değerine bağlı olarak aşağıdaki toplam formülü ile Pi sayısı<br />
yaklaşık olarak hesaplanıyor.<br />
Ekran Görüntüsü<br />
Public Class Form1<br />
Açıklamalı Kodlar<br />
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As<br />
System.EventArgs) Handles Button1.Click<br />
Dim toplam As Double = 1<br />
Dim k, i, faktor, faktor1 As Long<br />
If Strings.Trim(TxtYaklasim.Text) "" Then ‘Boş text<br />
istemiyoruz.<br />
If IsNumeric(TxtYaklasim.Text) Then ‘Sayısal olmayan veri de<br />
istemiyoruz.<br />
If TxtYaklasim.Text > 0 And TxtYaklasim.Text < 10 Then<br />
‘Bir de yaklaşım sayısı 1 il 9 arasında olacak.<br />
For k = 1 To TxtYaklasim.Text<br />
'k faktöriyel hesaplanıyor:<br />
faktor = 1<br />
For i = 1 To k<br />
faktor = faktor * i<br />
Next<br />
'2k+1 faktöriyel hesaplanıyor:<br />
faktor1 = 1<br />
For i = 1 To 2 * k + 1<br />
faktor1 = faktor1 * i<br />
Next<br />
'Toplam hesaplanıyor:<br />
toplam = toplam + ((2 ^ k) * (faktor ^ 2)) /<br />
faktor1<br />
Next<br />
LblSonuc.Text = 2 * toplam<br />
Else<br />
MsgBox("Yaklaşım sayısı 1-9 arasında olmalıdır!")<br />
End If<br />
Tolga GÜYER Sayfa 27
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
Else<br />
MsgBox("Lütfen sayısal veri giriniz!")<br />
End If<br />
Else<br />
MsgBox("İlgili alana veri girişi yapınız!")<br />
End If<br />
End Sub<br />
End Class<br />
Tolga GÜYER Sayfa 28
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
Uygulama No: 18 – Kuvvet ve Faktöriyel Hesabı<br />
Açıklama : Girilen sayının istenilen kuvveti ve faktöriyeli hesaplanıyor. “For-Next” döngü<br />
yapısının kullanımına ilişkin bir örnektir.<br />
Ekran Görüntüsü<br />
Açıklamalı Kodlar<br />
Public Class Form1<br />
Dim sayi, kuvvet As Integer<br />
Dim sonuc As Long<br />
Private Sub btnhesapla_Click(ByVal sender As System.Object, ByVal e As<br />
System.EventArgs) Handles btnhesapla.Click<br />
sayi = txtsayi.Text<br />
kuvvet = txtkuvvet.Text<br />
sonuc = 1<br />
For sayac = 1 To kuvvet<br />
sonuc = sayi * sonuc ‘Sayı, kuvvet defa kendisi ile<br />
çarpılıyor.<br />
Next sayac<br />
txtsonuc.Text = sonuc<br />
End Sub<br />
Private Sub btnfaktor_Click(ByVal sender As System.Object, ByVal e As<br />
System.EventArgs) Handles btnfaktor.Click<br />
sayi = txtsayi.Text<br />
sonuc = 1<br />
For sayac = 1 To sayi<br />
sonuc = sayac * sonuc ‘Sayıya kadar olan bütün sayılar<br />
çarpılıyor.<br />
Next sayac<br />
txtfaktor.Text = sonuc<br />
End Sub<br />
End Class<br />
Tolga GÜYER Sayfa 29
Uygulama No: 19 – İç İçe Döngü<br />
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
Açıklama : 000 ile 999 arasındaki sayılar iç içe düzenlenmiş üç for-next döngü yapısı<br />
kullanılarak oluşturuluyor. Kod içersinde yer alan<br />
“System.Threading.Thread.Sleep(10)” ifadesi, her adımda bekleme<br />
işlevini gerçekleştiriyor. Dolayısıyla sayaçların değişimi gözlenebiliyor.<br />
Ekran Görüntüsü<br />
Açıklamalı Kodlar<br />
Public Class Form1<br />
Dim sayi As Integer<br />
Dim k As Long<br />
Private Sub btnbaslat_Click(ByVal sender As System.Object, ByVal e As<br />
System.EventArgs) Handles btnbaslat.Click<br />
For sayac1 = 0 To 9<br />
For sayac2 = 0 To 9<br />
For sayac3 = 0 To 9<br />
lstsayi.Items.Add(sayac1.ToString + sayac2.ToString +<br />
sayac3.ToString)<br />
txtsayi3.Text = sayac3<br />
txtsayi2.Text = sayac2<br />
txtsayi1.Text = sayac1<br />
txtsayi3.Refresh()<br />
txtsayi2.Refresh()<br />
txtsayi1.Refresh()<br />
System.Threading.Thread.Sleep(10) ‘Her adımda 10 ms<br />
bekle.<br />
Next sayac3<br />
Next sayac2<br />
Next sayac1<br />
End Sub<br />
End Class<br />
Tolga GÜYER Sayfa 30
Uygulama No: 20 – 153 Sayısı<br />
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
Açıklama : 153 Sayısı şöyle bir özelliğe sahiptir: 153 = 1 3 + 5 3 + 3 3 . Acaba 100 ile 999<br />
arasında bu özelliği sağlayan, yani basamaklarının küplerinin toplamına eşit olan<br />
başka sayı ya da sayılar var mıdır?<br />
Ekran Görüntüsü<br />
Açıklamalı Kodlar<br />
Public Class Form1<br />
Dim sayi As Integer<br />
Private Sub Form1_Load(ByVal sender As Object, ByVal e As<br />
System.EventArgs) Handles Me.Load<br />
For yuzler = 1 To 9<br />
For onlar = 0 To 9<br />
For birler = 0 To 9<br />
sayi = 100 * yuzler + 10 * onlar + birler<br />
If sayi = yuzler ^ 3 + onlar ^ 3 + birler ^ 3 Then<br />
ListBox1.Items.Add(sayi)<br />
Next birler<br />
Next onlar<br />
Next yuzler<br />
End Sub<br />
End Class<br />
Tolga GÜYER Sayfa 31
Uygulama No: 21 – Pisagor Üçlüleri<br />
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
Açıklama : a 2 + b 2 = c 2 özelliğini sağlayan sayılar, dik üçgenin kenar uzunluklarını gösterirler<br />
ve Pisagor üçlüleri olarak anılırlar. 1 ile 99 arasındaki doğal sayılardan bu eşitliği<br />
sağlayanlar hangileri olabilir?<br />
Ekran Görüntüsü<br />
Public Class Form1<br />
Açıklamalı Kodlar<br />
Private Sub Form1_Load(ByVal sender As Object, ByVal e As<br />
System.EventArgs) Handles Me.Load<br />
For a = 1 To 99<br />
For b = 1 To 99<br />
For c = 1 To 99<br />
If (c ^ 2 = a ^ 2 + b ^ 2) And (a < b) Then<br />
ListBox1.Items.Add(a.ToString + " - " + b.ToString + " - " + c.ToString)<br />
Next c<br />
Next b<br />
Next a<br />
End Sub<br />
End Class<br />
Tolga GÜYER Sayfa 32
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
Uygulama No: 22 – Collatz Problemi<br />
Açıklama : Dolu tanesi sayıları olarak da bilinen problem, girilecek bir pozitif tamsayı ile<br />
başlayan bir sayı dizisi oluşturmaya dayanır. Dizinin her bir elemanı, bir önceki<br />
sayı kullanılarak şu kural dahilinde hesaplanır: Eğer sayı çift ise bir sonraki sayı<br />
bu sayının yarısı, tek ise üç katının bir fazlası olacaktır. Böylece ilk sayısı verilen<br />
bir sayı dizisi oluşturulur.<br />
Örneğin, ilk sayı 7 ise dizi şu şekilde oluşacaktır:<br />
7, 22, 11, 34, 17, 52, 26, 13, 40, 20, 10, 5, 16, 8, 4, 2, 1, 4, 2, 1, 4, 2, 1,...<br />
Ya da ilk sayı 21 ise,<br />
21, 64, 32, 16, 8, 4, 2, 1, ...<br />
Görüldüğü gibi dizi 1 sayısına ulaştığı anda sonsuz döngüye girmektedir. Aslında<br />
başlangıç sayısı olarak ne girersek girelim dizi her zaman 1 sayısına ulaşmaktadır,<br />
ama bu durum henüz matematiksel olarak kanıtlanamamıştır...<br />
Ekran Görüntüsü<br />
Tolga GÜYER Sayfa 33
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
Açıklamalı Kodlar<br />
Public Class Form1<br />
Dim sayi, sayac, enbuyuk As Long<br />
Private Sub btnbaslat_Click(ByVal sender As System.Object, ByVal e As<br />
System.EventArgs) Handles btnbaslat.Click<br />
sayi = txtsayi.Text<br />
lstdizi.Items.Clear()<br />
sayac = 0<br />
enbuyuk = 0<br />
Do<br />
lstdizi.Items.Add(sayi)<br />
If sayi Mod 2 = 0 Then ‘Sayı çift ise.<br />
sayi = sayi / 2<br />
Else<br />
‘Sayı tek ise.<br />
sayi = sayi * 3 + 1<br />
End If<br />
sayac = sayac + 1<br />
If sayi > enbuyuk Then enbuyuk = sayi ‘sayi enbuyuk’ten daha<br />
büyük ise yeni enbuyuk değeri sayi olsun.<br />
Loop Until sayi = 1<br />
lstdizi.Items.Add(1)<br />
lbladimsayisi.Text = sayac + 1<br />
lblenbuyuk.Text = enbuyuk<br />
End Sub<br />
End Class<br />
Tolga GÜYER Sayfa 34
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
Uygulama No: 23 – Kaprekar Sayıları<br />
Açıklama : Kaprekar sayıları , 1949 yılında Hintli matematikçi Kaprekar tarafından tariflenen<br />
sayılardır.<br />
n basamaklı bir t Kaprekar sayısının karesi alınıp sağdaki n basamağı solda kalan<br />
n-1 basamağa eklendiğinde sonuç yine t sayısını verir.<br />
Örnek:<br />
55 , iki basamaklı bir sayıdır.<br />
552 = 3025 , sağdan iki basamak 25 , soldan iki basamak 30.<br />
Bu iki sayının toplamı 30+25=55 yani sayının kendisidir.<br />
1, 9, 45, 55, 99, 297, 703, 999, 2223, 2728, 4879 sayıları da diğer bazı Kaprekar<br />
sayılarıdır.<br />
Ekran Görüntüsü<br />
Açıklamalı Kodlar<br />
Public Class Form1<br />
Dim sayi, uz, sayi_kare, sagtaraf, soltaraf, basla, bitir,<br />
sagtaraf_uzunluk, sayi_kare_uzunluk As Long<br />
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As<br />
System.EventArgs) Handles BtnHesapla.Click<br />
LstSayi.Items.Clear()<br />
Tolga GÜYER Sayfa 35
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
basla = TxtBaslangic.Text ' Bu sayı aralığın başlangıç sayısı ve<br />
en az 9 girilmeli<br />
bitir = TxtBitis.Text<br />
For sayi = basla To bitir<br />
uz = Strings.Len(sayi.ToString)<br />
sayi_kare = sayi * sayi<br />
sagtaraf = Strings.Right(sayi_kare.ToString, uz)<br />
sayi_kare_uzunluk = Strings.Len(sayi_kare.ToString)<br />
sagtaraf_uzunluk = Strings.Len(sagtaraf.ToString)<br />
soltaraf = Strings.Left(sayi_kare.ToString, sayi_kare_uzunluk<br />
- sagtaraf_uzunluk)<br />
If sagtaraf + soltaraf = sayi And sayi 10 Then<br />
LstSayi.Items.Add(sayi)<br />
End If<br />
Next<br />
End Sub<br />
End Class<br />
Tolga GÜYER Sayfa 36
Uygulama No: 24 – Kaprekar Sabiti<br />
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
Açıklama : Hintli matematikçi Kaprekar (1905-1986) tarafından tanımlanan , dört basamaklı<br />
sayılara en fazla yedi kez aşağıdaki işlemler uygulandığında ortaya çıkan sabit<br />
6174 sayısı.<br />
İşlemler , tüm basamakları aynı sayıdan oluşmayan (2222 gibi - ilk adımda sıfır<br />
sonucunu verecektir) ve herhangi üç basamağındaki sayılar aynı olup kalan bir<br />
basamaktaki sayı bu sayıdan bir büyük ya da bir küçük olmayan (1112, 5565<br />
veya 8788 gibi - ilk adımda 999 sayısını verecektir) dört basamaklı sayılara<br />
uygulandığında en fazla yedi adımda sıfır veya 6174 sabit sayısını verir.<br />
Yukarıdaki şartlara uygun dört basamaklı bir sayı alınır.<br />
Sayının basamaklarını büyükten küçüğe ve küçükten büyüğe doğru sıralayarak<br />
iki adet dört basamaklı sayı elde edilir.<br />
Elden edilen sayılardan büyükten küçüğü çıkarılır.<br />
2. adım tekrar edilir.<br />
En fazla yedi adımda sıfır ya da 6174 sabit sayısı elde edilecek ve kısır döngüye<br />
girilecektir.<br />
Örnek:<br />
6544 − 4456 = 2088<br />
8820 − 0288 = 8532<br />
8532 − 2358 = 6174<br />
7641 − 1467 = 6174<br />
Ekran Görüntüsü<br />
Açıklamalı Kodlar<br />
Public Class Form1<br />
Dim Tmp, Loop1, Loop2, Pos As Byte<br />
Dim enkucuksayi, enbuyuksayi, fark As Integer<br />
Dim sayilar(0 To 3)<br />
Private Sub BtnSirala_Click(ByVal sender As System.Object, ByVal e As<br />
System.EventArgs) Handles BtnSirala.Click<br />
LstBuyukKucuk.Items.Clear()<br />
sayilar(0) = TxtSayi1.Text<br />
Tolga GÜYER Sayfa 37
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
sayilar(1) = TxtSayi2.Text<br />
sayilar(2) = TxtSayi3.Text<br />
sayilar(3) = TxtSayi4.Text<br />
‘Sıralama algoritması kullanılarak sayilar dizisi küçükten büyüğe<br />
doğru sıralanıyor:<br />
Do<br />
For Loop1 = 0 To 3<br />
Pos = Loop1<br />
For Loop2 = Loop1 + 1 To 3<br />
If sayilar(Loop2) < sayilar(Pos) Then<br />
Pos = Loop2<br />
End If<br />
Next Loop2<br />
If Pos Loop1 Then<br />
Tmp = sayilar(Pos)<br />
sayilar(Pos) = sayilar(Loop1)<br />
sayilar(Loop1) = Tmp<br />
End If<br />
Next Loop1<br />
enkucuksayi = 1000 * sayilar(0) + 100 * sayilar(1) + 10 *<br />
sayilar(2) + sayilar(3)<br />
enbuyuksayi = 1000 * sayilar(3) + 100 * sayilar(2) + 10 *<br />
sayilar(1) + sayilar(0)<br />
fark = enbuyuksayi - enkucuksayi<br />
LstBuyukKucuk.Items.Add(enbuyuksayi.ToString + "-" +<br />
enkucuksayi.ToString + "=" + fark.ToString)<br />
End Sub<br />
End Class<br />
sayilar(0) = Strings.Mid(fark.ToString, 1, 1)<br />
sayilar(1) = Strings.Mid(fark.ToString, 2, 1)<br />
sayilar(2) = Strings.Mid(fark.ToString, 3, 1)<br />
sayilar(3) = Strings.Mid(fark.ToString, 4, 1)<br />
Loop Until fark = 6174<br />
Tolga GÜYER Sayfa 38
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
Uygulama No: 25 – Mükemmel Sayılar<br />
Açıklama : 1 dahil, kendisi hariç olmak üzere bölenlerinin toplamına eşit olan sayılara<br />
mükemmel sayı adı verilir.<br />
Örneğin 6=1+2+3 olduğundan bir mükemmel sayıdır.<br />
Bir sonraki mükemmel sayı 28’dir. Çünkü 28=1+2+4+7+14 olur.<br />
Geliştirdiğimiz uygulama, kullanıcı tarafından girilecek bir sayının mükemmel<br />
olup olmadığını test etmekte, değil ise bir sonraki mükemmel sayıyı<br />
hesaplamaktadır.<br />
Ekran Görüntüsü<br />
Açıklamalı Kodlar<br />
Public Class Form1<br />
Dim sayi, sayi1, toplam, k As Long<br />
Private Sub BtnKontrol_Click(ByVal sender As System.Object, ByVal e As<br />
System.EventArgs) Handles BtnKontrol.Click<br />
sayi = TxtSayi.Text<br />
toplam = 0<br />
For k = 2 To sayi / 2<br />
If sayi Mod k = 0 Then toplam = toplam + k<br />
Next<br />
If toplam + 1 = sayi Then<br />
MsgBox("MÜKEMMEL!")<br />
Else ‘Sayı mükemmel değil ise bir sonrakini ara:<br />
sayi1 = sayi<br />
Do<br />
toplam = 0<br />
sayi1 = sayi1 + 1<br />
For k = 2 To sayi1 / 2<br />
If sayi1 Mod k = 0 Then toplam = toplam + k<br />
Next<br />
Loop Until toplam + 1 = sayi1<br />
MsgBox(sayi1)<br />
End If<br />
End Sub<br />
End Class<br />
Tolga GÜYER Sayfa 39
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
Uygulama No: 26 – Aritmetik Ortalama ve Standart Sapma<br />
Açıklama : Liste kutusuna aktarılan sayıların aritmetik ortalama ve standart sapmaları<br />
hesaplanıyor.<br />
Ekran Görüntüsü<br />
Açıklamalı Kodlar<br />
Public Class Form1<br />
Dim toplam1, toplam2 As Integer<br />
Dim ort, StdSapma As Double<br />
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As<br />
System.EventArgs) Handles BtnEkle.Click<br />
LstSayilar.Items.Add(TxtSayi.Text)<br />
TxtSayi.Clear()<br />
TxtSayi.Focus()<br />
End Sub<br />
Private Sub BtnCikis_Click(ByVal sender As System.Object, ByVal e As<br />
System.EventArgs) Handles BtnCikis.Click<br />
End<br />
End Sub<br />
Private Sub BtnOrtalama_Click(ByVal sender As System.Object, ByVal e As<br />
System.EventArgs) Handles BtnOrtalama.Click<br />
toplam1 = 0<br />
For k = 0 To LstSayilar.Items.Count - 1<br />
toplam1 = toplam1 + LstSayilar.Items.Item(k) 'liste kutusundaki<br />
sayılar toplanıyor.<br />
Next<br />
ort = toplam1 / LstSayilar.Items.Count 'Toplamın say adetine oranı.<br />
MsgBox(ort)<br />
End Sub<br />
Private Sub BtnStdSapma_Click(ByVal sender As System.Object, ByVal e As<br />
Tolga GÜYER Sayfa 40
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
System.EventArgs) Handles BtnStdSapma.Click<br />
toplam2 = 0<br />
For k As Integer = 0 To LstSayilar.Items.Count - 1<br />
toplam2 = toplam2 + (LstSayilar.Items(k) - ort) ^ 2 'Liste<br />
kutusundaki sayıların her biri ile ortalama arasındaki farkların kareleri<br />
toplamı.<br />
Next<br />
StdSapma = Math.Sqrt(toplam2 / (LstSayilar.Items.Count - 1)) 'Kareler<br />
toplamının sayı adetinin bir eksiğine oranının karekökü.<br />
MsgBox(StdSapma)<br />
End Sub<br />
Private Sub BtnSil_Click(ByVal sender As System.Object, ByVal e As<br />
System.EventArgs) Handles BtnSil.Click<br />
LstSayilar.Items.Clear()<br />
TxtSayi.Focus()<br />
End Sub<br />
End Class<br />
Tolga GÜYER Sayfa 41
Uygulama No: 27 – Renk Aktarımı<br />
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
Açıklama : Label (etiket) nesneleri kullanarak oluşturulmuş bir renk paletinin kullanımı.<br />
Ekran Görüntüsü<br />
Public Class Form1<br />
Açıklamalı Kodlar<br />
Private Sub Label1_Click(ByVal sender As System.Object, ByVal e As<br />
System.EventArgs) Handles Label1.Click<br />
If RBtnForm.Checked Then ‘Eğer formun rengi opsiyonu seçili ise<br />
Me.BackColor = Label1.BackColor<br />
Else<br />
TextBox1.BackColor = Label1.BackColor<br />
End If<br />
End Sub<br />
Private Sub Label2_Click(ByVal sender As System.Object, ByVal e As<br />
System.EventArgs) Handles Label2.Click<br />
If RBtnForm.Checked Then<br />
Me.BackColor = Label2.BackColor<br />
Else<br />
TextBox1.BackColor = Label2.BackColor<br />
End If<br />
End Sub<br />
Private Sub Label3_Click(ByVal sender As System.Object, ByVal e As<br />
System.EventArgs) Handles Label3.Click<br />
If RBtnForm.Checked Then<br />
Me.BackColor = Label3.BackColor<br />
Else<br />
TextBox1.BackColor = Label3.BackColor<br />
End If<br />
End Sub<br />
Private Sub Label4_Click(ByVal sender As System.Object, ByVal e As<br />
System.EventArgs) Handles Label4.Click<br />
If RBtnForm.Checked Then<br />
Me.BackColor = Label4.BackColor<br />
Else<br />
TextBox1.BackColor = Label4.BackColor<br />
End If<br />
Tolga GÜYER Sayfa 42
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
End Sub<br />
Private Sub Label5_Click(ByVal sender As System.Object, ByVal e As<br />
System.EventArgs) Handles Label5.Click<br />
If RBtnForm.Checked Then<br />
Me.BackColor = Label5.BackColor<br />
Else<br />
TextBox1.BackColor = Label5.BackColor<br />
End If<br />
End Sub<br />
End Class<br />
Tolga GÜYER Sayfa 43
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
Uygulama No: 28 – Fonksiyon Kullanımı 1<br />
Açıklama : Fonksiyon kullanılarak dört işlem hesabı.<br />
Ekran Görüntüsü<br />
Açıklamalı Kodlar<br />
Public Class Form1<br />
Function islem(ByVal kod As Char, ByVal s1 As Integer, ByVal s2 As<br />
Integer) As Double<br />
Select Case kod<br />
Case "+" : Return (s1 + s2)<br />
Case "-" : Return (s1 - s2)<br />
Case "*" : Return (s1 * s2)<br />
Case "/" : Return (s1 / s2)<br />
End Select<br />
End Function<br />
Private Sub RadioTopla_CheckedChanged(ByVal sender As System.Object,<br />
ByVal e As System.EventArgs) Handles RadioTopla.CheckedChanged<br />
TxtSonuc.Text = islem("+", CInt(TxtSayi1.Text),<br />
CInt(TxtSayi2.Text))<br />
End Sub<br />
Private Sub RadioCikar_CheckedChanged(ByVal sender As System.Object,<br />
ByVal e As System.EventArgs) Handles RadioCikar.CheckedChanged<br />
TxtSonuc.Text = islem("-", CInt(TxtSayi1.Text),<br />
CInt(TxtSayi2.Text))<br />
End Sub<br />
Private Sub RadioCarp_CheckedChanged(ByVal sender As System.Object,<br />
ByVal e As System.EventArgs) Handles RadioCarp.CheckedChanged<br />
TxtSonuc.Text = islem("*", CInt(TxtSayi1.Text),<br />
CInt(TxtSayi2.Text))<br />
End Sub<br />
Private Sub RadioBol_CheckedChanged(ByVal sender As System.Object,<br />
ByVal e As System.EventArgs) Handles RadioBol.CheckedChanged<br />
TxtSonuc.Text = islem("/", CInt(TxtSayi1.Text),<br />
CInt(TxtSayi2.Text))<br />
End Sub<br />
End Class<br />
Tolga GÜYER Sayfa 44
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
Uygulama No: 29 – Fonksiyon Kullanımı 2<br />
Açıklama : Fonksiyon kullanılarak maaş hesabı.<br />
Ekran Görüntüsü<br />
Public Class Form1<br />
Açıklamalı Kodlar<br />
Function cocuk_yardimi(ByVal m As Integer, ByVal c As Byte) As Double<br />
If c = 2 Then<br />
Return (c * m / 100)<br />
ElseIf c = 3 Then<br />
Return (2 * c * m / 100)<br />
ElseIf c > 3 Then<br />
Return (5 * c * m / 100)<br />
Else : Return 0<br />
End If<br />
End Function<br />
Function aile_yardimi(ByVal kod As Byte) As Integer<br />
If kod = 1 Then<br />
Return (22)<br />
ElseIf kod = 2 Then<br />
Return (48)<br />
Else : Return 0<br />
End If<br />
End Function<br />
Function yabanci_dil(ByVal kod As Byte) As Integer<br />
If kod = 1 Then<br />
Tolga GÜYER Sayfa 45
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
Return 125<br />
ElseIf kod = 2 Then<br />
Return 55<br />
ElseIf kod = 3 Then<br />
Return 25<br />
Else<br />
Return 0<br />
End If<br />
End Function<br />
Function kidem(ByVal m As Integer, ByVal kod As Byte) As Double<br />
Return (kod * m / 100)<br />
End Function<br />
Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As<br />
System.Object, ByVal e As System.EventArgs) Handles<br />
ComboBox1.SelectedIndexChanged<br />
If ComboBox1.Text = "Bekar" Then<br />
ComboBox2.Enabled = False<br />
RadioButton1.Enabled = False<br />
RadioButton2.Enabled = False<br />
RadioButton1.Checked = False<br />
RadioButton2.Checked = False<br />
ElseIf ComboBox1.Text = "Boşanmış/Dul" Then<br />
ComboBox2.Enabled = True<br />
RadioButton1.Enabled = False<br />
RadioButton2.Enabled = False<br />
RadioButton1.Checked = False<br />
RadioButton2.Checked = False<br />
Else<br />
ComboBox2.Enabled = True<br />
RadioButton1.Enabled = True<br />
RadioButton2.Enabled = True<br />
End If<br />
End Sub<br />
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As<br />
System.EventArgs) Handles Button1.Click<br />
Dim m_gosterge As Integer = TextBox1.Text<br />
Dim maas As Double<br />
Dim kod As Byte = 0<br />
Dim cocuk_sayisi As Byte<br />
If ComboBox2.Text = ">3" Then<br />
cocuk_sayisi = 4<br />
Else<br />
cocuk_sayisi = CInt(ComboBox2.Text)<br />
End If<br />
maas = m_gosterge + cocuk_yardimi(m_gosterge, cocuk_sayisi)<br />
If RadioButton1.Checked Then kod = 1<br />
If RadioButton2.Checked Then kod = 2<br />
maas = maas + aile_yardimi(kod)<br />
kod = 0<br />
If ComboBox3.Text = "90-100" Then kod = 1<br />
If ComboBox3.Text = "80-89" Then kod = 2<br />
If ComboBox3.Text = "70-79" Then kod = 3<br />
maas = maas + yabanci_dil(kod)<br />
Tolga GÜYER Sayfa 46
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
kod = 0<br />
If ComboBox4.Text = "Lise" Then kod = 1<br />
If ComboBox4.Text = "Üniversite" Then kod = 2<br />
If ComboBox4.Text = "Yüksek Lisans" Then kod = 3<br />
If ComboBox4.Text = "Doktora" Then kod = 4<br />
maas = maas + kidem(m_gosterge, kod)<br />
Label5.Text = maas<br />
End Sub<br />
End Class<br />
Tolga GÜYER Sayfa 47
Uygulama No: 30 – Palindrom<br />
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
Açıklama : Girilen metnin palindrom (tersten de aynı şekilde okunan) olup olmadığının test<br />
edilmesi.<br />
Ekran Görüntüsü<br />
Açıklamalı Kodlar<br />
Public Class Form1<br />
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As<br />
System.EventArgs) Handles Button1.Click<br />
Dim metin As String = TextBox1.Text<br />
Dim metin_ters As String = ""<br />
For k = Len(metin) - 1 To 0 Step -1<br />
metin_ters = metin_ters & metin(k)<br />
Next<br />
If metin = metin_ters Then MsgBox("TAMAM")<br />
End Sub<br />
End Class<br />
Tolga GÜYER Sayfa 48
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
Uygulama No: 31 – Palindrom/Liste<br />
Açıklama : Girilen metnin içerisinde yer alan palindrom kelimeler ayıklanarak liste kutusuna<br />
aktarılıyor.<br />
Ekran Görüntüsü<br />
Açıklamalı Kodlar<br />
Public Class Form1<br />
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As<br />
System.EventArgs) Handles Button1.Click<br />
Dim metin As String = TextBox1.Text & " "<br />
Dim kelime, kelime_ters As String<br />
Dim p As Integer = 1<br />
ListBox1.Items.Clear()<br />
For k = 0 To Len(metin) - 1<br />
If metin(k) = " " Then<br />
kelime = Trim(Strings.Mid(metin, p, k - p + 1))<br />
kelime_ters = ""<br />
For j = Len(kelime) - 1 To 0 Step -1<br />
kelime_ters = kelime_ters & kelime(j)<br />
Next<br />
If kelime = kelime_ters Then ListBox1.Items.Add(kelime)<br />
p = p + Len(kelime) + 1<br />
End If<br />
Next<br />
End Sub<br />
End Class<br />
Tolga GÜYER Sayfa 49
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
Uygulama No: 32 – Metin İstatistikleri<br />
Açıklama : Çok-satırlı bir metin kutusuna girilen metnin hece, kelime ve cümle sayıları<br />
hesaplanıyor ve girilen bir anahtar kelimenin metin içersinde geçme sayısı<br />
bulunuyor.<br />
Ekran Görüntüsü<br />
Açıklamalı Kodlar<br />
Public Class Form1<br />
Dim metin, anahtar, sonkarakter As String<br />
Dim kelime_sayisi, cumle_sayisi, hece_sayisi, p, konum, sayac As Integer<br />
Private Sub BtnHesapla_Click(ByVal sender As System.Object, ByVal e As<br />
System.EventArgs) Handles BtnHesapla.Click<br />
metin = TxtMetin.Text + " "<br />
kelime_sayisi = 0<br />
cumle_sayisi = 0<br />
hece_sayisi = 0<br />
For k = 0 To Strings.Len(metin) - 1 'Metni sonuna kadar karakter<br />
karakter tarıyor.<br />
If metin(k) = " " Then kelime_sayisi = kelime_sayisi + 1 'Kelime<br />
sayısı=boşluk sayısı. Çünkü yukarıda fazladan bir boşluk eklemiştik.<br />
If k = Strings.Len(metin) - 1 Then Exit For 'Aşağıdaki koşulda son<br />
karakterden sonra (k+1) arama yapmasın<br />
Tolga GÜYER Sayfa 50
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
If (metin(k) = "." And (metin(k + 1) = " " Or Strings.Asc(metin(k +<br />
1)) = 13)) Or metin(k) = "?" Or metin(k) = "!" Then cumle_sayisi = cumle_sayisi +<br />
1<br />
'Hece sayısı=sesli harf sayısı:<br />
If metin(k) = "a" Or metin(k) = "e" Or metin(k) = "ı" Or metin(k) =<br />
"i" Or metin(k) = "o" Or metin(k) = "ö" Or metin(k) = "u" Or metin(k) = "ü" Then<br />
hece_sayisi = hece_sayisi + 1<br />
Next<br />
LblCumleSayisi.Text = cumle_sayisi<br />
LblKelimeSayisi.Text = kelime_sayisi<br />
LblHeceSayisi.Text = hece_sayisi<br />
End Sub<br />
Private Sub BtnBul_Click(ByVal sender As System.Object, ByVal e As<br />
System.EventArgs) Handles BtnBul.Click<br />
metin = TxtMetin.Text<br />
If RadioButton1.Checked Then 'Serbest arama. Yani "masa" aranırken<br />
"masal" da bulunur.<br />
anahtar = TxtAnahtarKelime.Text<br />
Else<br />
anahtar = " " + TxtAnahtarKelime.Text + " " 'Tam eşitlik arama.<br />
"masa" aranırken, "masal" bulunmaz.<br />
End If<br />
sayac = 0<br />
konum = 1<br />
Do<br />
p = Strings.InStr(konum, metin, anahtar) '"anahtar" kelime "metin"<br />
içersinde "konum"dan başlayarak aranıyor.<br />
If p 0 Then sayac = sayac + 1<br />
konum = p + Strings.Len(anahtar) 'Bulunca aramaya yeni konumdan<br />
devam et.<br />
Loop Until p = 0<br />
LblSayi.Text = sayac<br />
End Sub<br />
End Class<br />
Tolga GÜYER Sayfa 51
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
Uygulama No: 33 – Anahtarlı Metin Şifreleme<br />
Açıklama :<br />
Çok-satırlı bir metin kutusuna girilen bir metin, anahtar<br />
kelime kullanılarak şifreleniyor. Şifreleme, metnin her bir<br />
karakterinin ASCII koduna, anahtar kelimenin her bir<br />
karakterinin ASCII kodunun eklenmesi ile gerçekleştiriliyor.<br />
Aşağıda, örnek üzerinden şifreleme algoritmasının<br />
açıklaması yapılmıştır:<br />
Ek Açıklama<br />
Metin = “Bilgisayar ve Öğretim”<br />
Anahtar = “okul”<br />
B 254 İ 60 l 254 g 254 i 254 s a y a r v e Ö ğ r<br />
o 50 k 50 u 255 l 254 o 253 k u l o k u l o k u l o<br />
,<br />
Toplam=304<br />
Mod 255=49<br />
Ü<br />
110<br />
110<br />
#<br />
509<br />
254<br />
^<br />
508<br />
253<br />
?<br />
507<br />
252<br />
h 8 9 d 6 , i 2 1 m * }<br />
, 49 Ü # 254 ^ 253 ? 252 h 8 9 d 6 , i 2 1 m * }<br />
110<br />
o 50 k 50 u 255 l 254 o 253 k u l o k u l o k u l o<br />
Fark=-1<br />
Fark
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
Açıklamalı Kodlar<br />
Public Class Form1<br />
Private Sub BtnSifrele_Click(ByVal sender As System.Object, ByVal e As<br />
System.EventArgs) Handles BtnSifrele.Click<br />
Dim metin As String = TxtMetin.Text<br />
Dim anahtar As String = InputBox("Anahtar kelimeyi giriniz:")<br />
Dim sifreli_metin As String = ""<br />
Dim j As Byte = 0<br />
For k = 0 To Strings.Len(metin) - 1 'Metni karakter karakter sonuna<br />
kadar tara.<br />
sifreli_metin = sifreli_metin + Strings.Chr((Strings.Asc(metin(k)) +<br />
Strings.Asc(anahtar(j))) Mod 255)<br />
'Şifreli metni, her bir karakterinin koduna anahtar kelimenin<br />
sıradaki karakterinin kodunu ekleyerek bul.<br />
'Neden Mod 255? Çünkü toplam 255 değerini aşabilir.<br />
j = j + 1<br />
If j = Strings.Len(anahtar) Then j = 0 'Anahtar kelimenin indisi<br />
ayrı tutulmalı. Yoksa indisde değer aşımı olur.<br />
Next<br />
TxtSifreliMetin.Text = sifreli_metin<br />
End Sub<br />
End Class<br />
Tolga GÜYER Sayfa 53
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
Uygulama No: 34 – Anahtarlı Metin Şifre Çözme<br />
Açıklama : Önceki uygulamada gerçekleştirilen şifrelemeyi, aynı anahtarın girilmesi şartıyla<br />
ters algoritma kullanarak çözen uygulama.<br />
Ekran Görüntüsü<br />
Açıklamalı Kodlar<br />
Public Class Form1<br />
Private Sub BtnSifrecoz_Click(ByVal sender As System.Object, ByVal e As<br />
System.EventArgs) Handles BtnSifrecoz.Click<br />
Dim sifreli_metin As String = TxtSifreliMetin.Text<br />
Dim anahtar As String = InputBox("Anahtar kelimeyi giriniz:")<br />
Dim metin As String = ""<br />
Dim kod As Integer<br />
Dim j As Byte = 0<br />
For k = 0 To Strings.Len(sifreli_metin) - 1<br />
kod = Strings.Asc(sifreli_metin(k)) - Strings.Asc(anahtar(j))<br />
If kod
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
Uygulama No: 35 – Veritabanı Uygulaması 1<br />
Açıklama : Veritabanı ile bağlantı kurulması ve veri okunması.<br />
Ekran Görüntüsü<br />
Public Class Form1<br />
Açıklamalı Kodlar<br />
Private Sub BtnTamam_Click(ByVal sender As System.Object, ByVal e As<br />
System.EventArgs) Handles BtnTamam.Click<br />
Dim baglanti_metni1, baglanti_metni2 As String<br />
baglanti_metni1 = "Provider=Microsoft.ACE.OLEDB.12.0; Data<br />
Source=|DataDirectory|\vt1.accdb; Persist Security Info=False;"<br />
baglanti_metni2 = "Provider=Microsoft.Jet.OLEDB.4.0; Data<br />
Source=|DataDirectory|\vt1.mdb; Persist Security Info=False;"<br />
‘Bu bağlantı metinlerinden birisi kullanılacaktır.<br />
‘MS.ACE.OLEDB motoru 64 bit işletim sistemlerinde sorun çıkarabiliyor.<br />
‘Bu durumda MS.Jet.OLEDB motorunun ve mdb formatının kullanılması tavsiye<br />
edilir.<br />
Dim baglanti1 As New Data.OleDb.OleDbConnection(baglanti_metni2)<br />
baglanti1.Open()<br />
‘Bağlantı metni kullanılarak yeni bir bağlantı tanımlanıyor ve açılıyor.<br />
Dim sql1 As String<br />
sql1 = "select * from tablo1 where klnad='" & TxtKlnAd.Text & "'<br />
and sifre='" & TxtSifre.Text & "'"<br />
‘Formdaki alanların değerleri kullanılarak veri seçme işlevine sahip bir<br />
SQL cümlesi oluşturuluyor.<br />
Dim komut1 As New System.Data.OleDb.OleDbCommand(sql1, baglanti1)<br />
‘Bağlantı ve SQL cümlesi kullanılarak yeni bir veritabanı komutu<br />
tanımlanıyor.<br />
Dim veri_okuyucu1 As Data.OleDb.OleDbDataReader<br />
veri_okuyucu1 = komut1.ExecuteReader<br />
‘Tanımlanan veritabanı komutu üzerinden bir veri okuyucusu tanımlanıyor ve<br />
çalıştırılıyor.<br />
If veri_okuyucu1.HasRows = True Then ‘Eğer veri okuyucusunda veri<br />
varsa<br />
MsgBox("Kullanıcı kayıtlı.")<br />
Tolga GÜYER Sayfa 55
End Sub<br />
End Class<br />
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
Else<br />
MsgBox("Kullanıcı kayıtlı değil.")<br />
End If<br />
baglanti1.Close()<br />
Tolga GÜYER Sayfa 56
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
Uygulama No: 36 – Veritabanı Uygulaması 2<br />
Açıklama : Veritabanı ile bağlantı kurulması ve veri okunması.<br />
Ekran Görüntüsü<br />
Public Class Form1<br />
Açıklamalı Kodlar<br />
Private Sub BtnTamam_Click(ByVal sender As System.Object, ByVal e As<br />
System.EventArgs) Handles BtnTamam.Click<br />
Dim baglanti_metni1, baglanti_metni2 As String<br />
baglanti_metni1 = "Provider=Microsoft.ACE.OLEDB.12.0; Data<br />
Source=|DataDirectory|\vt1.accdb; Persist Security Info=False;"<br />
baglanti_metni2 = "Provider=Microsoft.Jet.OLEDB.4.0; Data<br />
Source=|DataDirectory|\vt1.mdb; Persist Security Info=False;"<br />
‘Bu bağlantı metinlerinden birisi kullanılacaktır.<br />
‘MS.ACE.OLEDB motoru 64 bit işletim sistemlerinde sorun çıkarabiliyor.<br />
‘Bu durumda MS.Jet.OLEDB motorunun ve mdb formatının kullanılması tavsiye<br />
edilir.<br />
Dim baglanti1 As New Data.OleDb.OleDbConnection(baglanti_metni2)<br />
baglanti1.Open()<br />
‘Bağlantı metni kullanılarak yeni bir bağlantı tanımlanıyor ve açılıyor.<br />
Dim sql1 As String<br />
sql1 = "select * from tablo1 where klnad='" & TxtKlnAd.Text & "'<br />
and sifre='" & TxtSifre.Text & "'"<br />
‘Formdaki alanların değerleri kullanılarak veri seçme işlevine sahip bir<br />
SQL cümlesi oluşturuluyor.<br />
Dim komut1 As New System.Data.OleDb.OleDbCommand(sql1, baglanti1)<br />
‘Bağlantı ve SQL cümlesi kullanılarak yeni bir veritabanı komutu<br />
tanımlanıyor.<br />
Dim veri_okuyucu1 As Data.OleDb.OleDbDataReader<br />
veri_okuyucu1 = komut1.ExecuteReader<br />
‘Tanımlanan veritabanı komutu üzerinden bir veri okuyucusu tanımlanıyor ve<br />
çalıştırılıyor.<br />
If veri_okuyucu1.HasRows = True Then ‘Eğer veri okuyucusunda veri<br />
varsa<br />
veri_okuyucu1.Read()<br />
Tolga GÜYER Sayfa 57
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
MsgBox("Merhaba " & veri_okuyucu1("ad") & " " &<br />
veri_okuyucu1("soyad") & ". MATRIX'e hoşgeldin...") ‘Veri okuyucusu<br />
kullanılarak istenilen alana ulaşmak mümkün.<br />
Else<br />
MsgBox("Kullanıcı kayıtlı değil.")<br />
End If<br />
baglanti1.Close()<br />
End Sub<br />
End Class<br />
Tolga GÜYER Sayfa 58
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
Uygulama No: 37 – Veritabanı Uygulaması 3<br />
Açıklama : Veritabanına kayıt eklenmesi.<br />
Ekran Görüntüsü<br />
Public Class Form1<br />
Açıklamalı Kodlar<br />
Private Sub BtnKaydet_Click(ByVal sender As System.Object, ByVal e As<br />
System.EventArgs) Handles BtnKaydet.Click<br />
Dim baglanti_metni1, baglanti_metni2 As String<br />
baglanti_metni1 = "Provider=Microsoft.ACE.OLEDB.12.0; Data<br />
Source=|DataDirectory|\vt2.accdb; Persist Security Info=False;"<br />
baglanti_metni2 = "Provider=Microsoft.Jet.OLEDB.4.0; Data<br />
Source=|DataDirectory|\vt2.mdb; Persist Security Info=False;"<br />
Dim baglanti1 As New Data.OleDb.OleDbConnection(baglanti_metni2)<br />
baglanti1.Open()<br />
Dim sql1 As String<br />
sql1 = "insert into anatablo (ad,soyad,fakulte,bolum) values ('" +<br />
TxtAd.Text + "','" + TxtSoyad.Text + "','" + CmbFakulte.Text + "','" +<br />
CmbBolum.Text + "')"<br />
‘Veritabanı tablosuna satır eklemek için kullanılacak SQL cümlesi<br />
End Sub<br />
End Class<br />
Dim komut1 As New System.Data.OleDb.OleDbCommand(sql1, baglanti1)<br />
komut1.ExecuteNonQuery()‘SQL sorgusu burada çalıştırılıyor.<br />
baglanti1.Close()<br />
MsgBox("Veriler Kaydedildi")<br />
TxtAd.Clear()<br />
TxtSoyad.Clear()<br />
TxtAd.Focus()<br />
CmbBolum.ResetText()<br />
CmbFakulte.ResetText()<br />
Tolga GÜYER Sayfa 59
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
Uygulama No: 38 – Veritabanı Uygulaması 4<br />
Açıklama : Veritabanına kayıt eklenmesi.<br />
Ekran Görüntüsü<br />
Public Class Form1<br />
Açıklamalı Kodlar<br />
Private Sub BtnKaydet_Click(ByVal sender As System.Object, ByVal e As<br />
System.EventArgs) Handles BtnKaydet.Click<br />
Dim baglanti_metni1, baglanti_metni2 As String<br />
baglanti_metni1 = "Provider=Microsoft.ACE.OLEDB.12.0; Data<br />
Source=|DataDirectory|\sinema.accdb; Persist Security Info=False;"<br />
baglanti_metni2 = "Provider=Microsoft.Jet.OLEDB.4.0; Data<br />
Source=|DataDirectory|\sinema.mdb; Persist Security Info=False;"<br />
Dim baglanti1 As New Data.OleDb.OleDbConnection(baglanti_metni2)<br />
baglanti1.Open()<br />
Dim sql1 As String<br />
sql1 = "insert into filmler (film_adi,yonetmen,yili,yildiz,yorum)<br />
values ('" + TxtFilmAdi.Text + "','" + TxtYonetmen.Text + "'," &<br />
CInt(CmbYili.Text) & "," & CInt(CmbYildiz.Text) & ",'" & TxtYorum.Text +<br />
"')"<br />
‘Dikkat: insert cümlesinde veritabanında sayı türünde tanımlanmış alanlar<br />
için tek tırnak işareti kullanılmaz.<br />
Dim komut1 As New System.Data.OleDb.OleDbCommand(sql1, baglanti1)<br />
komut1.ExecuteNonQuery()<br />
baglanti1.Close()<br />
MsgBox("Veriler Kaydedildi")<br />
TxtFilmAdi.Clear()<br />
TxtYonetmen.Clear()<br />
Tolga GÜYER Sayfa 60
End Sub<br />
TxtYorum.Clear()<br />
TxtFilmAdi.Focus()<br />
CmbYildiz.ResetText()<br />
CmbYili.ResetText()<br />
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As<br />
System.EventArgs) Handles MyBase.Load<br />
For k = 1900 To 2010<br />
CmbYili.Items.Add(k)<br />
Next<br />
End Sub<br />
End Class<br />
Tolga GÜYER Sayfa 61
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
Uygulama No: 39 – Veritabanı Uygulaması 5<br />
Açıklama : Veritabanına kayıt eklenmesi – Resim uygulamalı.<br />
Ekran Görüntüsü<br />
Açıklamalı Kodlar<br />
Public Class Form1<br />
Dim b1, b2, b3, b4, b5, yildiz As Byte<br />
Private Sub BtnKaydet_Click(ByVal sender As System.Object, ByVal e As<br />
System.EventArgs) Handles BtnKaydet.Click<br />
Dim baglanti_metni1, baglanti_metni2 As String<br />
baglanti_metni1 = "Provider=Microsoft.ACE.OLEDB.12.0; Data<br />
Source=|DataDirectory|\sinema.accdb; Persist Security Info=False;"<br />
baglanti_metni2 = "Provider=Microsoft.Jet.OLEDB.4.0; Data<br />
Source=|DataDirectory|\sinema.mdb; Persist Security Info=False;"<br />
Dim baglanti1 As New Data.OleDb.OleDbConnection(baglanti_metni2)<br />
baglanti1.Open()<br />
Dim sql1 As String<br />
sql1 = "insert into filmler (film_adi,yonetmen,yili,yildiz,yorum)<br />
values ('" + TxtFilmAdi.Text + "','" + TxtYonetmen.Text + "'," &<br />
CInt(CmbYili.Text) & "," & yildiz & ",'" & TxtYorum.Text + "')"<br />
Dim komut1 As New System.Data.OleDb.OleDbCommand(sql1, baglanti1)<br />
komut1.ExecuteNonQuery()<br />
baglanti1.Close()<br />
TxtFilmAdi.Clear()<br />
TxtYonetmen.Clear()<br />
TxtYorum.Clear()<br />
Tolga GÜYER Sayfa 62
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
End Sub<br />
TxtFilmAdi.Focus()<br />
CmbYili.ResetText()<br />
PictureBox1.ImageLocation = "bos_yildiz.bmp"<br />
PictureBox1.Load()<br />
PictureBox2.ImageLocation = "bos_yildiz.bmp"<br />
PictureBox2.Load()<br />
PictureBox3.ImageLocation = "bos_yildiz.bmp"<br />
PictureBox3.Load()<br />
PictureBox4.ImageLocation = "bos_yildiz.bmp"<br />
PictureBox4.Load()<br />
PictureBox5.ImageLocation = "bos_yildiz.bmp"<br />
PictureBox5.Load()<br />
b1 = 0<br />
b2 = 0<br />
b3 = 0<br />
b4 = 0<br />
b5 = 0<br />
yildiz = 0<br />
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As<br />
System.EventArgs) Handles MyBase.Load<br />
For k = 1900 To 2010 ‘ComboBox bu döngü ile dolduruluyor.<br />
CmbYili.Items.Add(k)<br />
Next<br />
yildiz = 0 ‘Filmin yıldız toplamını tutacak değişken; başlangıçta<br />
sıfırlanıyor.<br />
End Sub<br />
Private Sub PictureBox1_Click(ByVal sender As System.Object, ByVal e<br />
As System.EventArgs) Handles PictureBox1.Click<br />
If b1 = 0 Then ‘Eğer ilk defa tıklandı ise<br />
PictureBox1.ImageLocation = "dolu_yildiz.bmp" ‘Resim dosyası<br />
PictureBox1.Load()‘Resmi yükle<br />
b1 = 1<br />
yildiz = yildiz + 1 ‘Her sarı yıldız resmi için yıldız puanını<br />
bir artır.<br />
Else ‘Eğer ikinci defa tıklandı ise<br />
PictureBox1.ImageLocation = "bos_yildiz.bmp"<br />
PictureBox1.Load()<br />
b1 = 0<br />
yildiz = yildiz – 1 ‘Her beyaz yıldız resmi için yıldız<br />
puanını bir azalt.<br />
End If<br />
End Sub<br />
Private Sub PictureBox2_Click(ByVal sender As System.Object, ByVal e<br />
As System.EventArgs) Handles PictureBox2.Click<br />
If b2 = 0 Then<br />
PictureBox2.ImageLocation = "dolu_yildiz.bmp"<br />
PictureBox2.Load()<br />
b2 = 1<br />
yildiz = yildiz + 1<br />
Else<br />
PictureBox2.ImageLocation = "bos_yildiz.bmp"<br />
PictureBox2.Load()<br />
b2 = 0<br />
yildiz = yildiz - 1<br />
Tolga GÜYER Sayfa 63
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
End If<br />
End Sub<br />
Private Sub PictureBox3_Click(ByVal sender As System.Object, ByVal e<br />
As System.EventArgs) Handles PictureBox3.Click<br />
If b3 = 0 Then<br />
PictureBox3.ImageLocation = "dolu_yildiz.bmp"<br />
PictureBox3.Load()<br />
b3 = 1<br />
yildiz = yildiz + 1<br />
Else<br />
PictureBox3.ImageLocation = "bos_yildiz.bmp"<br />
PictureBox3.Load()<br />
b3 = 0<br />
yildiz = yildiz - 1<br />
End If<br />
End Sub<br />
Private Sub PictureBox4_Click(ByVal sender As System.Object, ByVal e<br />
As System.EventArgs) Handles PictureBox4.Click<br />
If b4 = 0 Then<br />
PictureBox4.ImageLocation = "dolu_yildiz.bmp"<br />
PictureBox4.Load()<br />
b4 = 1<br />
yildiz = yildiz + 1<br />
Else<br />
PictureBox4.ImageLocation = "bos_yildiz.bmp"<br />
PictureBox4.Load()<br />
b4 = 0<br />
yildiz = yildiz - 1<br />
End If<br />
End Sub<br />
Private Sub PictureBox5_Click(ByVal sender As System.Object, ByVal e<br />
As System.EventArgs) Handles PictureBox5.Click<br />
If b5 = 0 Then<br />
PictureBox5.ImageLocation = "dolu_yildiz.bmp"<br />
PictureBox5.Load()<br />
b5 = 1<br />
yildiz = yildiz + 1<br />
Else<br />
PictureBox5.ImageLocation = "bos_yildiz.bmp"<br />
PictureBox5.Load()<br />
b5 = 0<br />
yildiz = yildiz - 1<br />
End If<br />
End Sub<br />
Private Sub BtnKapat_Click(ByVal sender As System.Object, ByVal e As<br />
System.EventArgs) Handles BtnKapat.Click<br />
End<br />
End Sub<br />
End Class<br />
Tolga GÜYER Sayfa 64
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
Uygulama No: 40 – Veritabanı Uygulaması 6<br />
Açıklama : Veritabanına kayıt ekleme, kayıt düzeltme, kayıt silme ve dinamik<br />
ComboBox denetimi<br />
Ekran Görüntüsü – Form3 (Menü)<br />
Public Class Form3<br />
Açıklamalı Kodlar<br />
Private Sub BtnGiris_Click(ByVal sender As System.Object, ByVal e As<br />
System.EventArgs) Handles BtnGiris.Click<br />
Form1.ShowDialog()‘Form1 in açılmasını sağlar. Show metodundan<br />
farkı, form açıldığında arkada kalan diğer uygulama pencerelerinin<br />
çalışmasına izin vermemesidir.<br />
End Sub<br />
Private Sub BtnAra_Click(ByVal sender As System.Object, ByVal e As<br />
System.EventArgs) Handles BtnAra.Click<br />
Form2.ShowDialog()<br />
End Sub<br />
Private Sub BtnKapat_Click(ByVal sender As System.Object, ByVal e As<br />
System.EventArgs) Handles BtnKapat.Click<br />
End<br />
End Sub<br />
End Class<br />
Tolga GÜYER Sayfa 65
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
Ekran Görüntüsü – Form1 (Veri Girişi)<br />
Açıklamalı Kodlar<br />
Public Class Form1<br />
Dim baglanti As New<br />
Data.OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;<br />
DataSource=|DataDirectory|\meteor.mdb; Persist Security Info=False;")<br />
Private Sub BtnKaydet_Click(ByVal sender As System.Object, ByVal e As<br />
System.EventArgs) Handles BtnKaydet.Click<br />
baglanti.Open()<br />
If CmbBolge.Text = "SEÇİNİZ" Then ‘Bölge seçmeden olmaz…<br />
MsgBox("Bölge Seçiniz!")<br />
ElseIf Cmbil.Text = "SEÇİNİZ" Then ‘İl seçmeden olmaz…<br />
MsgBox("İl Seçiniz!")<br />
Else<br />
Dim sql, hava_durumu As String<br />
Dim hava_durumu_kodu As Byte<br />
If rdb_gunesli_1.Checked Then ‘Eğer güneşli resminin yanındaki<br />
radyo düğmesi işaretli ise bu durumda hava durumu kodu ve haca durumu<br />
değişkenlerine uygun değerler aktarılıyor.<br />
hava_durumu_kodu = 1<br />
hava_durumu = "Güneşli"<br />
ElseIf rdb_azbulutlu_2.Checked Then<br />
Tolga GÜYER Sayfa 66
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
hava_durumu_kodu = 2<br />
hava_durumu = "Az Bulutlu"<br />
ElseIf rdb_bulutlu_3.Checked Then<br />
hava_durumu_kodu = 3<br />
hava_durumu = "Bulutlu"<br />
ElseIf rdb_gokgurultulu_4.Checked Then<br />
hava_durumu_kodu = 4<br />
hava_durumu = "Gök Gürültülü ve Sağanak Yağışlı"<br />
ElseIf rdb_karlakar_5.Checked Then<br />
hava_durumu_kodu = 5<br />
hava_durumu = "Karla Karışık Yağmurlu"<br />
ElseIf rdb_kar_6.Checked Then<br />
hava_durumu_kodu = 6<br />
hava_durumu = "Kar Yağışlı"<br />
ElseIf rdb_parcali_7.Checked Then<br />
hava_durumu_kodu = 7<br />
hava_durumu = "Parçalı Bulutlu"<br />
ElseIf rdb_saganak_8.Checked Then<br />
hava_durumu_kodu = 8<br />
hava_durumu = "Sağanak Yağışlı"<br />
ElseIf rdb_sis_9.Checked Then<br />
hava_durumu_kodu = 9<br />
hava_durumu = "Sisli"<br />
ElseIf rdb_yeryeryagmur_10.Checked Then<br />
hava_durumu_kodu = 10<br />
hava_durumu = "Yer Yer Yağmurlu"<br />
End If<br />
sql = "insert into ana_tablo<br />
(bolge,il,hava_durumu_kodu,hava_durumu,yorum,tarih) values ('" &<br />
CmbBolge.Text & "','" & Cmbil.Text & "'," & hava_durumu_kodu & ",'" &<br />
hava_durumu & "','" & TxtYorum.Text & "','" & Tarih.Value.Date & "')"<br />
Dim komut As New System.Data.OleDb.OleDbCommand(sql, baglanti)<br />
komut.ExecuteNonQuery()<br />
MsgBox("Bilgiler Veritabanına Kaydedilmiştir.")<br />
CmbBolge.Text = "SEÇİNİZ" ‘Kayıttan sora ekran ilk haline<br />
getiriliyor.<br />
Cmbil.Text = "SEÇİNİZ"<br />
Cmbil.Items.Clear()<br />
TxtYorum.Clear()<br />
rdb_gunesli_1.Checked = False<br />
rdb_azbulutlu_2.Checked = False<br />
rdb_bulutlu_3.Checked = False<br />
rdb_gokgurultulu_4.Checked = False<br />
rdb_karlakar_5.Checked = False<br />
rdb_kar_6.Checked = False<br />
rdb_parcali_7.Checked = False<br />
rdb_saganak_8.Checked = False<br />
rdb_sis_9.Checked = False<br />
rdb_yeryeryagmur_10.Checked = False<br />
CmbBolge.Focus()<br />
End If<br />
baglanti.Close()<br />
End Sub<br />
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As<br />
System.EventArgs) Handles MyBase.Load<br />
Tolga GÜYER Sayfa 67
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
baglanti.Open()<br />
Dim sql As String<br />
sql = "select bolge from bolge_il group by bolge" ‘Form yüklenirken<br />
veritabanındaki bolge_il tablosundan coğrafi bölgeler alınıyor.<br />
Dim komut As New System.Data.OleDb.OleDbCommand(sql, baglanti)<br />
Dim veri_okuyucu As Data.OleDb.OleDbDataReader<br />
veri_okuyucu = komut.ExecuteReader<br />
While (veri_okuyucu.Read())‘Bu döngü çekilen veriyi (bölgeler)<br />
taramak için kullanılıyor.<br />
CmbBolge.Items.Add(veri_okuyucu("bolge")) ‘Bölgeler ilgili<br />
ComboBox a seçenek olarak ekleniyor.<br />
End While<br />
baglanti.Close()<br />
End Sub<br />
Private Sub BtnKapat_Click(ByVal sender As System.Object, ByVal e As<br />
System.EventArgs) Handles BtnKapat.Click<br />
baglanti.Close()<br />
End<br />
End Sub<br />
Private Sub CmbBolge_SelectedIndexChanged(ByVal sender As<br />
System.Object, ByVal e As System.EventArgs) Handles<br />
CmbBolge.SelectedIndexChanged<br />
baglanti.Open()<br />
Cmbil.Items.Clear()<br />
Cmbil.Text = "SEÇİNİZ"<br />
Dim sql As String<br />
sql = "select il from bolge_il where bolge = '" & CmbBolge.Text &<br />
"'"<br />
‘Seçilen bölge altında yer alan iller seçiliyor ve ilgili ComboBox a<br />
seçenek olarak ekleniyor.<br />
Dim komut As New System.Data.OleDb.OleDbCommand(sql, baglanti)<br />
Dim veri_okuyucu As Data.OleDb.OleDbDataReader<br />
veri_okuyucu = komut.ExecuteReader<br />
While (veri_okuyucu.Read())<br />
Cmbil.Items.Add(veri_okuyucu("il"))<br />
End While<br />
baglanti.Close()<br />
End Sub<br />
End Class<br />
Tolga GÜYER Sayfa 68
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
Ekran Görüntüsü – Form2 (Veri Arama/Düzeltme/Silme)<br />
Açıklamalı Kodlar<br />
Public Class Form2<br />
Dim baglanti As New<br />
Data.OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data<br />
Source=|DataDirectory|\meteor.mdb; Persist Security Info=False;")<br />
Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As<br />
System.EventArgs) Handles MyBase.Load<br />
baglanti.Open()<br />
Dim sql As String<br />
sql = "select bolge from bolge_il group by bolge"<br />
Dim komut As New System.Data.OleDb.OleDbCommand(sql, baglanti)<br />
Dim veri_okuyucu As Data.OleDb.OleDbDataReader<br />
veri_okuyucu = komut.ExecuteReader<br />
While (veri_okuyucu.Read())<br />
CmbBolge.Items.Add(veri_okuyucu("bolge"))<br />
End While<br />
baglanti.Close()<br />
End Sub<br />
Private Sub CmbBolge_SelectedIndexChanged(ByVal sender As<br />
System.Object, ByVal e As System.EventArgs) Handles<br />
CmbBolge.SelectedIndexChanged<br />
baglanti.Open()<br />
Cmbil.Items.Clear()<br />
Tolga GÜYER Sayfa 69
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
"'"<br />
Cmbil.Text = "SEÇİNİZ"<br />
Dim sql As String<br />
sql = "select il from bolge_il where bolge = '" & CmbBolge.Text &<br />
Dim komut As New System.Data.OleDb.OleDbCommand(sql, baglanti)<br />
Dim veri_okuyucu As Data.OleDb.OleDbDataReader<br />
veri_okuyucu = komut.ExecuteReader<br />
While (veri_okuyucu.Read())<br />
Cmbil.Items.Add(veri_okuyucu("il"))<br />
End While<br />
baglanti.Close()<br />
End Sub<br />
Private Sub BtnKapat_Click(ByVal sender As System.Object, ByVal e As<br />
System.EventArgs) Handles BtnKapat.Click<br />
baglanti.Close()<br />
Me.Close()<br />
End Sub<br />
Private Sub BtnAra_Click(ByVal sender As System.Object, ByVal e As<br />
System.EventArgs) Handles BtnAra.Click<br />
baglanti.Open()<br />
Dim sql As String<br />
sql = "select hava_durumu_kodu,yorum from ana_tablo where il = '" &<br />
Cmbil.Text & "' and tarih like '" & Tarih.Value.Date & "'"<br />
‘il ve tarih değeri tutan kayıt aranıyor.<br />
Dim komut As New System.Data.OleDb.OleDbCommand(sql, baglanti)<br />
Dim veri_okuyucu As Data.OleDb.OleDbDataReader<br />
veri_okuyucu = komut.ExecuteReader<br />
ise…<br />
If Not veri_okuyucu.HasRows Then ‘Eğer veri oluyucu kayıt içermiyor<br />
MsgBox("Bu bilgiyi içeren herhangi bir kayıt bulunamadı...")<br />
Else<br />
While (veri_okuyucu.Read())<br />
If veri_okuyucu("hava_durumu_kodu") = 1 Then<br />
rdb_gunesli_1.Checked = True<br />
ElseIf veri_okuyucu("hava_durumu_kodu") = 2 Then<br />
rdb_azbulutlu_2.Checked = True<br />
ElseIf veri_okuyucu("hava_durumu_kodu") = 3 Then<br />
rdb_bulutlu_3.Checked = True<br />
ElseIf veri_okuyucu("hava_durumu_kodu") = 4 Then<br />
rdb_gokgurultulu_4.Checked = True<br />
ElseIf veri_okuyucu("hava_durumu_kodu") = 5 Then<br />
rdb_karlakar_5.Checked = True<br />
ElseIf veri_okuyucu("hava_durumu_kodu") = 6 Then<br />
rdb_kar_6.Checked = True<br />
ElseIf veri_okuyucu("hava_durumu_kodu") = 7 Then<br />
rdb_parcali_7.Checked = True<br />
ElseIf veri_okuyucu("hava_durumu_kodu") = 8 Then<br />
rdb_saganak_8.Checked = True<br />
ElseIf veri_okuyucu("hava_durumu_kodu") = 9 Then<br />
rdb_sis_9.Checked = True<br />
Else<br />
rdb_yeryeryagmur_10.Checked = True<br />
End If<br />
Tolga GÜYER Sayfa 70
End Sub<br />
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
TxtYorum.Text = veri_okuyucu("yorum")<br />
End While<br />
End If<br />
baglanti.Close()<br />
Private Sub BtnKaydet_Click(ByVal sender As System.Object, ByVal e As<br />
System.EventArgs) Handles BtnKaydet.Click<br />
baglanti.Open()<br />
If CmbBolge.Text = "SEÇİNİZ" Then<br />
MsgBox("Bölge Seçiniz!")<br />
ElseIf Cmbil.Text = "SEÇİNİZ" Then<br />
MsgBox("İl Seçiniz!")<br />
Else<br />
Dim sql, hava_durumu As String<br />
Dim hava_durumu_kodu As Byte<br />
If rdb_gunesli_1.Checked Then<br />
hava_durumu_kodu = 1<br />
hava_durumu = "Güneşli"<br />
ElseIf rdb_azbulutlu_2.Checked Then<br />
hava_durumu_kodu = 2<br />
hava_durumu = "Az Bulutlu"<br />
ElseIf rdb_bulutlu_3.Checked Then<br />
hava_durumu_kodu = 3<br />
hava_durumu = "Bulutlu"<br />
ElseIf rdb_gokgurultulu_4.Checked Then<br />
hava_durumu_kodu = 4<br />
hava_durumu = "Gök Gürültülü ve Sağanak Yağışlı"<br />
ElseIf rdb_karlakar_5.Checked Then<br />
hava_durumu_kodu = 5<br />
hava_durumu = "Karla Karışık Yağmurlu"<br />
ElseIf rdb_kar_6.Checked Then<br />
hava_durumu_kodu = 6<br />
hava_durumu = "Kar Yağışlı"<br />
ElseIf rdb_parcali_7.Checked Then<br />
hava_durumu_kodu = 7<br />
hava_durumu = "Parçalı Bulutlu"<br />
ElseIf rdb_saganak_8.Checked Then<br />
hava_durumu_kodu = 8<br />
hava_durumu = "Sağanak Yağışlı"<br />
ElseIf rdb_sis_9.Checked Then<br />
hava_durumu_kodu = 9<br />
hava_durumu = "Sisli"<br />
ElseIf rdb_yeryeryagmur_10.Checked Then<br />
hava_durumu_kodu = 10<br />
hava_durumu = "Yer Yer Yağmurlu"<br />
End If<br />
sql = "update ana_tablo set hava_durumu_kodu = " &<br />
hava_durumu_kodu & ",hava_durumu = '" & hava_durumu & "',yorum = '" &<br />
TxtYorum.Text & "' where il = '" & Cmbil.Text & "' and tarih like '" &<br />
Tarih.Value.Date & "'"<br />
‘Veritabanında güncelleme işlemi gerçekleştiriliyor.<br />
Dim komut As New System.Data.OleDb.OleDbCommand(sql, baglanti)<br />
komut.ExecuteNonQuery()<br />
MsgBox("Bilgiler Veritabanında Güncellenmiştir.")<br />
Tolga GÜYER Sayfa 71
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
End If<br />
baglanti.Close()<br />
End Sub<br />
Private Sub BtnSil_Click(ByVal sender As System.Object, ByVal e As<br />
System.EventArgs) Handles BtnSil.Click<br />
baglanti.Open()<br />
If CmbBolge.Text = "SEÇİNİZ" Then<br />
MsgBox("Bölge Seçiniz!")<br />
ElseIf Cmbil.Text = "SEÇİNİZ" Then<br />
MsgBox("İl Seçiniz!")<br />
Else<br />
Dim sql As String<br />
sql = "delete from ana_tablo where il = '" & Cmbil.Text & "'<br />
and tarih like '" & Tarih.Value.Date & "'"<br />
‘Veritabanından formda bilgileri bulunan kayıt siliniyor.<br />
Dim komut As New System.Data.OleDb.OleDbCommand(sql, baglanti)<br />
komut.ExecuteNonQuery()<br />
End Sub<br />
End Class<br />
MsgBox("Bilgiler Veritabanından Silinmiştir.")<br />
End If<br />
baglanti.Close()<br />
CmbBolge.Text = "SEÇİNİZ"<br />
Cmbil.Text = "SEÇİNİZ"<br />
Cmbil.Items.Clear()<br />
TxtYorum.Clear()<br />
rdb_gunesli_1.Checked = False<br />
rdb_azbulutlu_2.Checked = False<br />
rdb_bulutlu_3.Checked = False<br />
rdb_gokgurultulu_4.Checked = False<br />
rdb_karlakar_5.Checked = False<br />
rdb_kar_6.Checked = False<br />
rdb_parcali_7.Checked = False<br />
rdb_saganak_8.Checked = False<br />
rdb_sis_9.Checked = False<br />
rdb_yeryeryagmur_10.Checked = False<br />
CmbBolge.Focus()<br />
Tolga GÜYER Sayfa 72
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
Veritabanı Tasarımı (meteor.mdb)<br />
Tolga GÜYER Sayfa 73
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
Tolga GÜYER Sayfa 74
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
VERİTABANI UYGULAMALARI HAKKINDA ÖZET BİLGİ<br />
VB.Net uygulamasından bir Access veritabanına nasıl bağlanırım?<br />
Bunun için ilk yapmamız gereken, bir bağlantı cümlesi kurmaktır. Aşağıda iki farklı durum için örnekler<br />
verilmiştir:<br />
Dim baglanti_metni1, baglanti_metni2 As String<br />
baglanti_metni1 = "Provider=Microsoft.ACE.OLEDB.12.0;<br />
DataSource=|DataDirectory|\vt1.accdb; Persist Security Info=False;"<br />
baglanti_metni2 = "Provider=Microsoft.Jet.OLEDB.4.0;<br />
DataSource=|DataDirectory|\vt1.mdb; Persist Security Info=False;"<br />
İlk cümlede (baglanti_metni1) bağlanılan veritabanı dosyası Access 2007 sürümüne aittir. Dolayısıyla<br />
accdb formatındadır.<br />
İkinci cümlede ise (baglanti_metni2) bağlanılan veritabanı dosyası Access 2003 sürümüne ait bir mdb<br />
dosyasıdır.<br />
Bu cümlelerden uygun olanı seçilerek bağlantı kurulur:<br />
Dim baglanti1 As New Data.OleDb.OleDbConnection(baglanti_metni2)<br />
baglanti1.Open()<br />
Bağlandığım veritabanında bir tabloya nasıl veri girebilirim?<br />
Öncelikle buna uygun bir SQL cümlesi oluşturmamız gerekir:<br />
sql1 = "insert into anatablo (numarasi, adi, soyadi, fakultesi, bolumu)<br />
values (10909299, ‘Salih’, ‘Baran’, ‘Eğitim Bilimleri’, ‘BÖTE’)"<br />
İkinci olarak, bu SQL cümlesi ve daha önce tanımladığımız bağlantı (baglanti1) kullanılarak bir komut<br />
tanımlanması ve bu komutun çalıştırılması gerekir:<br />
Dim komut1 As New System.Data.OleDb.OleDbCommand(sql1, baglanti1)<br />
komut1.ExecuteNonQuery()<br />
Ve artık bilgiler veritabanımızın anatablo isimli tablosunda…<br />
Bağlantımızı kapatabiliriz:<br />
baglanti1.Close()<br />
Peki ya bilgileri form üzerinden almak istersem?<br />
Yukarıdaki kodlarda yapacağımız tek değişiklik, SQL cümlesinde olacaktır:<br />
sql1 = "insert into anatablo (numarasi, adi, soyadi, fakultesi, bolumu)<br />
values (“ & TxtNumara.Text & “,‘” & TxtAd.Text & “’,‘” & TxtSoyad.Text &<br />
“’,‘” & TxtFakulte.Text & “’,‘” & TxtBolum.Text “’)"<br />
Tolga GÜYER Sayfa 75
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
Veritabanındaki bir tablodan nasıl veri çekebilirim?<br />
Daha önce tanımladığımız bağlantımızı açarak başlayalım:<br />
baglanti1.Open()<br />
Şimdi bu bağlantı üzerinden şu SQL cümlesini çalıştıracağız:<br />
sql2 = “select * from anatablo”<br />
Dim komut1 As New System.Data.OleDb.OleDbCommand(sql2, baglanti1)<br />
Şimdi bu komut üzerinden yeni bir nesne olan veri okuyucuyu çalıştıracağız:<br />
Dim veri_okuyucu As Data.OleDb.OleDbDataReader<br />
veri_okuyucu = komut.ExecuteReader<br />
Artık anatablo içindeki veriler veri_okuyucu nesnesi içersinde. Son olarak bu nesnenin içerdiği<br />
bilgilerin nasıl görüntülenebileceğine bakalım:<br />
While (veri_okuyucu.Read())<br />
LstBilgiler.Items.Add(veri_okuyucu("numarasi") & “ “ & veri_okuyucu("adi")<br />
& “ “ & veri_okuyucu("soyadi"))<br />
End While<br />
Ve bağlantımızı kapatalım:<br />
baglanti1.Close()<br />
Ya sadece belirli alanları çekmek İstersem?<br />
Sadece SQL cümlemizde değişiklik yapacağız:<br />
sql2 = “select numarasi, adi, soyadi from anatablo”<br />
Peki “soyadı A harfi ile başlayan” gibi bir koşul koymak istersem?<br />
Yine SQL cümlemizi değiştirmek yeterli olacaktır:<br />
sql2 = “select numarasi, adi, soyadi from anatablo where adi like ‘A%’”<br />
Veritabanındaki bir tablonun istediğim bir kaydını nasıl güncellerim?<br />
Öncelikle şu SQL cümlesinin oluşturulması gerekir:<br />
sql1 = "update anatablo set adi=’“ & TxtAd.Text & “’,soyadi=’” &<br />
TxtSoyad.Text & “’ where numarasi=" & TxtNumara.Text<br />
Bundan sonraki adım, kayıt ekleme ile aynı olacaktır:<br />
Dim komut1 As New System.Data.OleDb.OleDbCommand(sql1, baglanti1)<br />
komut1.ExecuteNonQuery()<br />
Bağlantımızı kapatabiliriz:<br />
baglanti1.Close()<br />
Tolga GÜYER Sayfa 76
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
Veritabanındaki bir tablonun istediğim bir kaydını nasıl silebilirim?<br />
Öncelikle SQL cümlemizi yazalım:<br />
sql1 = "delete from anatablo where numarasi=" & TxtNumara.Text<br />
Bundan sonraki adım, kayıt ekleme ve güncelleme ile aynı olacaktır:<br />
Dim komut1 As New System.Data.OleDb.OleDbCommand(sql1, baglanti1)<br />
komut1.ExecuteNonQuery()<br />
Bağlantımızı kapatabiliriz:<br />
baglanti1.Close()<br />
Tolga GÜYER Sayfa 77
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
Uygulama No: 41 – Veritabanı Uygulaması 7<br />
Açıklama : Veritabanı bağlantılı Dinamik ComboBox kullanımı<br />
Ekran Görüntüsü<br />
Açıklamalı Kodlar<br />
Public Class Form1<br />
Dim baglanti As New<br />
Data.OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data<br />
Source=|DataDirectory|\ogrenci.mdb; Persist Security Info=False;")<br />
Dim flag As Byte<br />
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As<br />
System.EventArgs) Handles MyBase.Load<br />
baglanti.Open()<br />
Dim sql As String<br />
‘ Fakülteler form yüklenirken veritabanından gelsin<br />
sql = "select fakulte from fakulte_bolum group by fakulte"<br />
‘group by kullanılıyor çünkü fakülte adları fakulte_bolum<br />
tablosunda tekrar ediyor.<br />
Dim komut As New System.Data.OleDb.OleDbCommand(sql, baglanti)<br />
Dim veri_okuyucu As Data.OleDb.OleDbDataReader<br />
veri_okuyucu = komut.ExecuteReader<br />
While (veri_okuyucu.Read())<br />
CmbFakulte.Items.Add(veri_okuyucu("Fakulte"))<br />
End While<br />
baglanti.Close()<br />
End Sub<br />
Private Sub CmbFakulte_SelectedIndexChanged(ByVal sender As<br />
System.Object, ByVal e As System.EventArgs) Handles<br />
Tolga GÜYER Sayfa 78
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
CmbFakulte.SelectedIndexChanged<br />
If flag = 0 Then baglanti.Open()<br />
CmbBolum.Items.Clear()<br />
CmbBolum.Text = "SEÇİNİZ"<br />
Dim sql As String<br />
sql = "select Bolum from fakulte_bolum where fakulte = '" &<br />
CmbFakulte.Text & "'"<br />
Dim komut As New System.Data.OleDb.OleDbCommand(sql, baglanti)<br />
Dim veri_okuyucu As Data.OleDb.OleDbDataReader<br />
veri_okuyucu = komut.ExecuteReader<br />
‘Veritabanından seçilen fakülte altında yer alan bölümler<br />
çekiliyor<br />
While (veri_okuyucu.Read())<br />
CmbBolum.Items.Add(veri_okuyucu("bolum"))<br />
End While<br />
If flag = 0 Then baglanti.Close()<br />
End Sub<br />
Private Sub BtnBilgiGetir_Click(ByVal sender As System.Object, ByVal e<br />
As System.EventArgs) Handles BtnBilgiGetir.Click<br />
flag = 1<br />
baglanti.Open()<br />
Dim sql As String<br />
sql = "select * from ana_tablo where Ogrencino = '" &<br />
TxtOgrenciNo.Text & "'"<br />
Dim komut As New System.Data.OleDb.OleDbCommand(sql, baglanti)<br />
Dim veri_okuyucu1 As Data.OleDb.OleDbDataReader<br />
veri_okuyucu1 = komut.ExecuteReader<br />
If Not veri_okuyucu1.HasRows Then<br />
‘ Eğer veri okuyucu boş dönmüş ise…<br />
MsgBox("Bu bilgiyi içeren herhangi bir kayıt bulunamadı...")<br />
Else<br />
While (veri_okuyucu1.Read())<br />
TextAd.Text = veri_okuyucu1("adi")<br />
TextSoyad.Text = veri_okuyucu1("soyadi")<br />
TextBabaAd.Text = veri_okuyucu1("babaadi")<br />
TextGun.Text = veri_okuyucu1("gun")<br />
TextAy.Text = veri_okuyucu1("ay")<br />
TextYil.Text = veri_okuyucu1("yil")<br />
CmbFakulte.SelectedItem = veri_okuyucu1("fakulte")<br />
CmbBolum.SelectedItem = veri_okuyucu1("bolum")<br />
End While<br />
End If<br />
baglanti.Close()<br />
flag = 0<br />
End Sub<br />
Private Sub BtnKaydet_Click(ByVal sender As System.Object, ByVal e As<br />
System.EventArgs) Handles BtnKaydet.Click<br />
baglanti.Open()<br />
Dim sql As String<br />
If CmbFakulte.Text = "SEÇİNİZ" Then<br />
MsgBox("Fakülte Seçiniz!")<br />
ElseIf CmbBolum.Text = "SEÇİNİZ" Then<br />
MsgBox("Bölüm Seçiniz!")<br />
Else<br />
sql = "update ana_tablo set fakulte = '" & CmbFakulte.Text &<br />
"', bolum='" & CmbBolum.Text & "',adi = '" & TextAd.Text & "',soyadi='" &<br />
TextSoyad.Text & "',babaadi = '" & TextBabaAd.Text & "',gun=" &<br />
TextGun.Text & ",ay=" & TextAy.Text & ",yil=" & TextYil.Text & " where<br />
Tolga GÜYER Sayfa 79
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
ogrencino = '" & TxtOgrenciNo.Text & "'"<br />
Dim komut As New System.Data.OleDb.OleDbCommand(sql, baglanti)<br />
komut.ExecuteNonQuery()<br />
‘Veritabanında ana_tablo üzerinde düzeltme yapıldı.<br />
MsgBox("Bilgiler Veritabanında Güncellenmiştir.")<br />
End If<br />
baglanti.Close()<br />
End Sub<br />
End Class<br />
Tolga GÜYER Sayfa 80
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
Uygulama No: 42 – Veritabanı Uygulaması 8<br />
Açıklama : Veritabanı bağlantılı web tarayıcısı uygulaması<br />
Ekran Görüntüsü – Form1<br />
Açıklamalı Kodlar<br />
Public Class Form1<br />
Dim baglanti As New<br />
Data.OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data<br />
Source=|DataDirectory|\webadres.mdb; Persist Security Info=False;")<br />
Private Sub BtnGit_Click(ByVal sender As System.Object, ByVal e As<br />
System.EventArgs) Handles BtnGit.Click<br />
If Trim(CmbAdres.Text) "" Then<br />
Dim adresTXT As String = CmbAdres.Text<br />
If Strings.Left(adresTXT, 7) "http://" And CmbAdres.Text <br />
"about:blank" Then<br />
adresTXT = "http://" & adresTXT<br />
End If<br />
Dim adresURL As New Uri(adresTXT)<br />
WebBrowser1.Url = adresURL<br />
CmbAdres.Text = adresTXT<br />
'Adresi veritabanına ekle:<br />
baglanti.Open()<br />
Dim Sql As String = "insert into tablo1 (url,tarih) values ('"<br />
& adresTXT & "','" & Date.Now & "')"<br />
Dim komut As New System.Data.OleDb.OleDbCommand(Sql, baglanti)<br />
komut.ExecuteNonQuery()<br />
baglanti.Close()<br />
Tolga GÜYER Sayfa 81
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
'Adresi adres çubuğuna ekle:<br />
CmbAdres.Items.Add(adresTXT)<br />
End If<br />
End Sub<br />
Private Sub CmbAdres_KeyPress(ByVal sender As Object, ByVal e As<br />
System.Windows.Forms.KeyPressEventArgs) Handles CmbAdres.KeyPress<br />
'Enter tuşuna basıldığında Git butonuna bas:<br />
If e.KeyChar = Chr(13) Then<br />
BtnGit.PerformClick()<br />
End If<br />
End Sub<br />
Private Sub CmbAdres_SelectedIndexChanged(ByVal sender As<br />
System.Object, ByVal e As System.EventArgs) Handles<br />
CmbAdres.SelectedIndexChanged<br />
'Adres çubuğundan yeni adres seçilir seçilmez git:<br />
Dim adresURL As New Uri(CmbAdres.Text)<br />
WebBrowser1.Url = adresURL<br />
End Sub<br />
Private Sub WebBrowser1_Navigated(ByVal sender As Object, ByVal e As<br />
System.Windows.Forms.WebBrowserNavigatedEventArgs) Handles<br />
WebBrowser1.Navigated<br />
'Gezinilen adresleri da göster:<br />
CmbAdres.Text = WebBrowser1.Url.ToString<br />
End Sub<br />
Private Sub KapatToolStripMenuItem_Click(ByVal sender As System.Object,<br />
ByVal e As System.EventArgs) Handles KapatToolStripMenuItem.Click<br />
End<br />
End Sub<br />
Private Sub BtnAdres_Click(ByVal sender As System.Object, ByVal e As<br />
System.EventArgs) Handles BtnAdres.Click<br />
Dim adresURL As New Uri(CmbAdres.Text)<br />
MsgBox(adresURL.AbsoluteUri)<br />
End Sub<br />
Private Sub SıkKullanılanlaraEkleToolStripMenuItem_Click(ByVal sender<br />
As System.Object, ByVal e As System.EventArgs) Handles<br />
SıkKullanılanlaraEkleToolStripMenuItem.Click<br />
SıkKullanılanlarToolStripMenuItem.DropDownItems.Add(WebBrowser1.Url.ToStrin<br />
g)<br />
End Sub<br />
Private Sub BtnGeri_Click(ByVal sender As System.Object, ByVal e As<br />
System.EventArgs) Handles BtnGeri.Click<br />
WebBrowser1.GoBack()<br />
End Sub<br />
Private Sub BtnIleri_Click(ByVal sender As System.Object, ByVal e As<br />
System.EventArgs) Handles BtnIleri.Click<br />
WebBrowser1.GoForward()<br />
End Sub<br />
Private Sub BtnGiris_Click(ByVal sender As System.Object, ByVal e As<br />
System.EventArgs) Handles BtnGiris.Click<br />
WebBrowser1.GoHome()<br />
Tolga GÜYER Sayfa 82
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
End Sub<br />
Private Sub BtnArama_Click(ByVal sender As System.Object, ByVal e As<br />
System.EventArgs) Handles BtnArama.Click<br />
WebBrowser1.GoSearch()<br />
End Sub<br />
Private Sub GeçmişZiyaretlerToolStripMenuItem_Click(ByVal sender As<br />
System.Object, ByVal e As System.EventArgs) Handles<br />
GeçmişZiyaretlerToolStripMenuItem.Click<br />
Form2.Show()<br />
End Sub<br />
Private Sub İnternetSeçenekleriToolStripMenuItem_Click(ByVal sender As<br />
System.Object, ByVal e As System.EventArgs) Handles<br />
İnternetSeçenekleriToolStripMenuItem.Click<br />
Form3.Show()<br />
End Sub<br />
End Class<br />
Ekran Görüntüsü – Form2<br />
Açıklamalı Kodlar<br />
Public Class Form2<br />
Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As<br />
System.EventArgs) Handles MyBase.Load<br />
Me.Tablo1TableAdapter.Fill(Me.WebadresDataSet4.Tablo1)<br />
End Sub<br />
Private Sub DataGridView1_CellContentDoubleClick(ByVal sender As<br />
Tolga GÜYER Sayfa 83
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles<br />
DataGridView1.CellContentDoubleClick<br />
Form1.CmbAdres.Text = DataGridView1.CurrentCell.Value<br />
Form1.BtnGit.PerformClick() ‘Git butonuna bastırıyoruz.<br />
Me.Close()<br />
End Sub<br />
End Class<br />
Veritabanı Yapısı<br />
Tolga GÜYER Sayfa 84
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
Uygulama No: 43 – Anket<br />
Açıklama : Veritabanı bağlantılı anket oluşturma uygulaması.<br />
Soru Tipleri<br />
1. Açık uçlu soru<br />
2. Çok seçimli<br />
3. Tek seçimli<br />
Soru No İfadesi Soru tipi<br />
1 ….nedir? 1<br />
2 …hangileri? 2<br />
3 …? 3<br />
no Soru no Seçenek ifadesi<br />
1 2 Astronomi<br />
2 2 Edebiyat<br />
3 2 Sinema<br />
4 3 100-500<br />
5 3 500-1000<br />
Ekran Görüntüsü<br />
Açıklamalı Kodlar<br />
Public Class Form1<br />
Dim baglanti As New<br />
Data.OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data<br />
Source=|DataDirectory|\anket.mdb; Persist Security Info=False;")<br />
Tolga GÜYER Sayfa 85
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
Dim soruno As Byte = 0<br />
Private Sub CmbSoruTipi_SelectedIndexChanged(ByVal sender As<br />
System.Object, ByVal e As System.EventArgs) Handles<br />
CmbSoruTipi.SelectedIndexChanged<br />
'Seçmeli soru tipi ise seçenek girme araçları görünsün:<br />
If CmbSoruTipi.Text = "2" Or CmbSoruTipi.Text = "3" Then<br />
GroupBox1.Visible = True<br />
Else<br />
GroupBox1.Visible = False<br />
End If<br />
End Sub<br />
Private Sub BtnSoruKaydet_Click(ByVal sender As System.Object, ByVal e<br />
As System.EventArgs) Handles BtnSoruKaydet.Click<br />
If Strings.Trim(TxtSoruIfade.Text) "" And CmbSoruTipi.Text ""<br />
Then<br />
baglanti.Open()<br />
Dim Sql As String = "insert into Sorular (soru,sorutipi) values<br />
('" & TxtSoruIfade.Text & "'," & CmbSoruTipi.Text & ")"<br />
Dim komut As New System.Data.OleDb.OleDbCommand(Sql, baglanti)<br />
komut.ExecuteNonQuery()<br />
'Kaydedilen en son soru numarası alınıyor:<br />
Dim komut1 As New System.Data.OleDb.OleDbCommand("select soruno<br />
from Sorular", baglanti)<br />
Dim veri_okuyucu As Data.OleDb.OleDbDataReader<br />
veri_okuyucu = komut1.ExecuteReader<br />
While (veri_okuyucu.Read())<br />
soruno = veri_okuyucu("soruno")<br />
End While<br />
'Döngü bittiğinde soruno değişkeninin içinde kaydedilen en son<br />
soru numarası olacaktır.<br />
baglanti.Close()<br />
If CmbSoruTipi.Text = "1" Then<br />
TxtSoruIfade.Clear()<br />
CmbSoruTipi.Text = ""<br />
TxtSoruIfade.Focus()<br />
End If<br />
Else<br />
MsgBox("Soru ifadesini ve soru tipini giriniz.")<br />
TxtSoruIfade.Focus()<br />
End If<br />
End Sub<br />
Private Sub BtnSecenekKaydet_Click(ByVal sender As System.Object, ByVal<br />
e As System.EventArgs) Handles BtnSecenekKaydet.Click<br />
If soruno 0 Then 'Demek ki soruyu kaydetmiş.<br />
baglanti.Open()<br />
Dim Sql As String = "insert into Secenekler (soruno,secenek)<br />
values (" & soruno & ",'" & TxtSecenekIfade.Text & "')"<br />
Dim komut As New System.Data.OleDb.OleDbCommand(Sql, baglanti)<br />
komut.ExecuteNonQuery()<br />
baglanti.Close()<br />
TxtSecenekIfade.Clear()<br />
TxtSecenekIfade.Focus()<br />
Else<br />
MsgBox("Önce seçenek ekleyeceğiniz soruyu kaydediniz.")<br />
End If<br />
End Sub<br />
Tolga GÜYER Sayfa 86
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
Private Sub BtnYeniSoru_Click(ByVal sender As System.Object, ByVal e As<br />
System.EventArgs) Handles BtnYeniSoru.Click<br />
GroupBox1.Visible = False<br />
TxtSoruIfade.Clear()<br />
CmbSoruTipi.Text = ""<br />
TxtSoruIfade.Focus()<br />
soruno = 0 'Seçenek eklenecek soru numarası yeniden sıfırlanıyor.<br />
End Sub<br />
Private Sub BtnKapat_Click(ByVal sender As System.Object, ByVal e As<br />
System.EventArgs) Handles BtnKapat.Click<br />
End<br />
End Sub<br />
End Class<br />
Tolga GÜYER Sayfa 87
Uygulama No: 44 – Anket Göster<br />
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
Açıklama : Bir önceki uygulamada hazırlanan anketin kullanıcı temelli olarak<br />
uygulanması.<br />
Ekran Görüntüsü – Form1<br />
Açıklamalı Kodlar<br />
Public Class Form1<br />
Dim baglanti As New<br />
Data.OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data<br />
Source=|DataDirectory|\anket.mdb; Persist Security Info=False;")<br />
Private Sub BtnGir_Click(ByVal sender As System.Object, ByVal e As<br />
System.EventArgs) Handles BtnGir.Click<br />
baglanti.Open()<br />
Dim sql As String = "select * from kln where kln='" & TxtKln.Text &<br />
"' and sfr='" & TxtSfr.Text & "'"<br />
Dim komut As New System.Data.OleDb.OleDbCommand(sql, baglanti)<br />
Dim veri_okuyucu As Data.OleDb.OleDbDataReader<br />
veri_okuyucu = komut.ExecuteReader<br />
If veri_okuyucu.HasRows = True Then<br />
kln = TxtKln.Text 'Kullanıcıyı form2 ye aktarmak için.<br />
Form2.ShowDialog()<br />
Me.Hide()<br />
Else<br />
MsgBox("Kullanıcı adı ya da şifre hatalı!")<br />
TxtKln.Focus()<br />
End If<br />
baglanti.Close()<br />
End Sub<br />
End Class<br />
Tolga GÜYER Sayfa 88
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
Ekran Görüntüsü – Form2<br />
Açıklamalı Kodlar<br />
Public Class Form2<br />
Dim baglanti As New<br />
Data.OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data<br />
Source=|DataDirectory|\anket.mdb; Persist Security Info=False;")<br />
Dim komut1 As New System.Data.OleDb.OleDbCommand("select * from<br />
Sorular", baglanti)<br />
Dim veri_okuyucu1 As Data.OleDb.OleDbDataReader<br />
Dim cevap, soru_no As String<br />
Private Function temizle()<br />
TxtSoru.Clear()<br />
TxtCevap.Clear()<br />
Grp1.Visible = False<br />
Grp2.Visible = False<br />
Grp3.Visible = False<br />
cevap = ""<br />
Return Nothing 'Fonksiyon değer döndürmüyor uyarısı için.<br />
End Function<br />
Private Function ekran()<br />
Dim sql1 As String = "insert into kln_cevap (kln,soruno,cevap)<br />
values ('" + kln + "'," + soru_no + ",'" & cevap & "')"<br />
Dim komut3 As New System.Data.OleDb.OleDbCommand(sql1, baglanti)<br />
komut3.ExecuteNonQuery()<br />
If veri_okuyucu1.Read() Then<br />
temizle()<br />
TxtSoru.Text = veri_okuyucu1("soru")<br />
soru_no = veri_okuyucu1("soruno")<br />
If veri_okuyucu1("sorutipi") = 1 Then<br />
Tolga GÜYER Sayfa 89
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
Grp1.Visible = True<br />
Grp2.Visible = False<br />
Grp3.Visible = False<br />
ElseIf veri_okuyucu1("sorutipi") = 2 Then<br />
Grp1.Visible = False<br />
Grp2.Visible = True<br />
Grp3.Visible = False<br />
Else<br />
Grp1.Visible = False<br />
Grp2.Visible = False<br />
Grp3.Visible = True<br />
End If<br />
If veri_okuyucu1("sorutipi") = 2 Or veri_okuyucu1("sorutipi") =<br />
3 Then<br />
Dim sql As String = "select secenek from Secenekler where<br />
soruno=" & soru_no<br />
Dim komut2 As New System.Data.OleDb.OleDbCommand(sql,<br />
baglanti)<br />
Dim veri_okuyucu2 As Data.OleDb.OleDbDataReader<br />
veri_okuyucu2 = komut2.ExecuteReader<br />
veri_okuyucu2.Read()<br />
Dim kontrol As Control<br />
If veri_okuyucu1("sorutipi") = 2 Then<br />
For Each kontrol In Grp2.Controls<br />
kontrol.Visible = True<br />
kontrol.Text = veri_okuyucu2("secenek")<br />
If Not veri_okuyucu2.Read() Then Exit For<br />
Next<br />
Else<br />
For Each kontrol In Grp3.Controls<br />
kontrol.Visible = True<br />
kontrol.Text = veri_okuyucu2("secenek")<br />
If Not veri_okuyucu2.Read() Then Exit For<br />
Next<br />
End If<br />
End If<br />
Else<br />
MsgBox("Sorular Bitti...")<br />
End If<br />
Return Nothing 'Fonksiyon değer döndürmüyor uyarısı için.<br />
End Function<br />
Private Sub Form2_FormClosing(ByVal sender As Object, ByVal e As<br />
System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing<br />
End 'Arkada açık kalan kullanıcı giriş formunu da sonlandırmak<br />
için.<br />
End Sub<br />
Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As<br />
System.EventArgs) Handles MyBase.Load<br />
baglanti.Open()<br />
veri_okuyucu1 = komut1.ExecuteReader<br />
If veri_okuyucu1.Read() Then<br />
soru_no = veri_okuyucu1("soruno")<br />
TxtSoru.Text = veri_okuyucu1("soru")<br />
If veri_okuyucu1("sorutipi") = 1 Then<br />
Grp1.Visible = True<br />
Grp2.Visible = False<br />
Grp3.Visible = False<br />
ElseIf veri_okuyucu1("sorutipi") = 2 Then<br />
Grp1.Visible = False<br />
Grp2.Visible = True<br />
Tolga GÜYER Sayfa 90
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
Grp3.Visible = False<br />
Else<br />
Grp1.Visible = False<br />
Grp2.Visible = False<br />
Grp3.Visible = True<br />
End If<br />
If veri_okuyucu1("sorutipi") = 2 Or veri_okuyucu1("sorutipi") =<br />
3 Then<br />
Dim soru_no As String = veri_okuyucu1("soruno")<br />
Dim sql As String = "select secenek from Secenekler where<br />
soruno=" & soru_no<br />
Dim komut2 As New System.Data.OleDb.OleDbCommand(sql,<br />
baglanti)<br />
Dim veri_okuyucu2 As Data.OleDb.OleDbDataReader<br />
veri_okuyucu2 = komut2.ExecuteReader<br />
veri_okuyucu2.Read()<br />
Dim kontrol As Control<br />
If veri_okuyucu1("sorutipi") = 2 Then<br />
For Each kontrol In Grp2.Controls<br />
kontrol.Visible = True<br />
kontrol.Text = veri_okuyucu2("secenek")<br />
If Not veri_okuyucu2.Read() Then Exit For<br />
Next<br />
Else<br />
For Each kontrol In Grp3.Controls<br />
kontrol.Visible = True<br />
kontrol.Text = veri_okuyucu2("secenek")<br />
If Not veri_okuyucu2.Read() Then Exit For<br />
Next<br />
End If<br />
End If<br />
Else<br />
MsgBox("Sorular Bitti...")<br />
baglanti.Close()<br />
End If<br />
End Sub<br />
Private Sub BtnSonraki_Click(ByVal sender As System.Object, ByVal e As<br />
System.EventArgs) Handles BtnSonraki.Click<br />
ekran()<br />
End Sub<br />
Private Sub RadioButton8_CheckedChanged(ByVal sender As System.Object,<br />
ByVal e As System.EventArgs) Handles RadioButton8.CheckedChanged<br />
cevap = RadioButton8.Text<br />
End Sub<br />
Private Sub RadioButton7_CheckedChanged(ByVal sender As System.Object,<br />
ByVal e As System.EventArgs) Handles RadioButton7.CheckedChanged<br />
cevap = RadioButton7.Text<br />
End Sub<br />
Private Sub RadioButton6_CheckedChanged(ByVal sender As System.Object,<br />
ByVal e As System.EventArgs) Handles RadioButton6.CheckedChanged<br />
cevap = RadioButton6.Text<br />
End Sub<br />
Private Sub RadioButton5_CheckedChanged(ByVal sender As System.Object,<br />
ByVal e As System.EventArgs) Handles RadioButton5.CheckedChanged<br />
cevap = RadioButton5.Text<br />
Tolga GÜYER Sayfa 91
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
End Sub<br />
Private Sub RadioButton4_CheckedChanged(ByVal sender As System.Object,<br />
ByVal e As System.EventArgs) Handles RadioButton4.CheckedChanged<br />
cevap = RadioButton4.Text<br />
End Sub<br />
Private Sub RadioButton3_CheckedChanged(ByVal sender As System.Object,<br />
ByVal e As System.EventArgs) Handles RadioButton3.CheckedChanged<br />
cevap = RadioButton3.Text<br />
End Sub<br />
Private Sub RadioButton2_CheckedChanged(ByVal sender As System.Object,<br />
ByVal e As System.EventArgs) Handles RadioButton2.CheckedChanged<br />
cevap = RadioButton2.Text<br />
End Sub<br />
Private Sub RadioButton1_CheckedChanged(ByVal sender As System.Object,<br />
ByVal e As System.EventArgs) Handles RadioButton1.CheckedChanged<br />
cevap = RadioButton1.Text<br />
End Sub<br />
Private Sub CheckBox8_CheckedChanged(ByVal sender As System.Object,<br />
ByVal e As System.EventArgs) Handles CheckBox8.CheckedChanged<br />
cevap = cevap & ";" & CheckBox8.Text<br />
End Sub<br />
Private Sub CheckBox7_CheckedChanged(ByVal sender As System.Object,<br />
ByVal e As System.EventArgs) Handles CheckBox7.CheckedChanged<br />
cevap = cevap & ";" & CheckBox7.Text<br />
End Sub<br />
Private Sub CheckBox6_CheckedChanged(ByVal sender As System.Object,<br />
ByVal e As System.EventArgs) Handles CheckBox6.CheckedChanged<br />
cevap = cevap & ";" & CheckBox6.Text<br />
End Sub<br />
Private Sub CheckBox5_CheckedChanged(ByVal sender As System.Object,<br />
ByVal e As System.EventArgs) Handles CheckBox5.CheckedChanged<br />
cevap = cevap & ";" & CheckBox5.Text<br />
End Sub<br />
Private Sub CheckBox4_CheckedChanged(ByVal sender As System.Object,<br />
ByVal e As System.EventArgs) Handles CheckBox4.CheckedChanged<br />
cevap = cevap & ";" & CheckBox4.Text<br />
End Sub<br />
Private Sub CheckBox3_CheckedChanged(ByVal sender As System.Object,<br />
ByVal e As System.EventArgs) Handles CheckBox3.CheckedChanged<br />
cevap = cevap & ";" & CheckBox3.Text<br />
End Sub<br />
Private Sub CheckBox2_CheckedChanged(ByVal sender As System.Object,<br />
ByVal e As System.EventArgs) Handles CheckBox2.CheckedChanged<br />
cevap = cevap & ";" & CheckBox2.Text<br />
End Sub<br />
Private Sub CheckBox1_CheckedChanged(ByVal sender As System.Object,<br />
ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged<br />
cevap = cevap & ";" & CheckBox1.Text<br />
Tolga GÜYER Sayfa 92
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
End Sub<br />
Private Sub TxtCevap_TextChanged(ByVal sender As System.Object, ByVal e<br />
As System.EventArgs) Handles TxtCevap.TextChanged<br />
cevap = TxtCevap.Text<br />
End Sub<br />
End Class<br />
Modül<br />
Module Module1<br />
Public kln As String<br />
End Module<br />
‘ Modül ne işe yarar?<br />
Projenin tamamında kullanacağımız bütün tanımlamalar (burada kullanıcı<br />
adını form1 den form2 ye geçirmek istedik) modülde yapılır.<br />
Veritabanı Yapısı<br />
Tolga GÜYER Sayfa 93
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
Tolga GÜYER Sayfa 94
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
Uygulama No: 45 – Veritabanı Uygulaması 9<br />
Açıklama : Veritabanından koşullu sorgulama gerçekleştirilen uygulama.<br />
Ekran Görüntüsü<br />
Açıklamalı Kodlar<br />
Public Class Form1<br />
Dim baglanti_metni As String = "Provider=Microsoft.Jet.OLEDB.4.0; Data<br />
Source=|DataDirectory|\ihracat.mdb; Persist Security Info=False;"<br />
Dim baglanti As New Data.OleDb.OleDbConnection(baglanti_metni)<br />
Private Sub Form1_Load(ByVal sender As Object, ByVal e As<br />
System.EventArgs) Handles Me.Load<br />
'Veritabanı ile bağlantı sağlanıyor:<br />
baglanti.Open()<br />
'Yıllar ComboBox dolduruluyor:<br />
Dim sql As String = "select yil from Anatablo group by yil"<br />
Dim komut As New System.Data.OleDb.OleDbCommand(sql, baglanti)<br />
Dim veri_okuyucu As Data.OleDb.OleDbDataReader<br />
veri_okuyucu = komut.ExecuteReader<br />
While (veri_okuyucu.Read())<br />
CmbYil.Items.Add(veri_okuyucu("yil"))<br />
End While<br />
'Sektörler ComboBox dolduruluyor:<br />
Dim sql1 As String = "select sektor from Anatablo group by sektor"<br />
Dim komut1 As New System.Data.OleDb.OleDbCommand(sql1, baglanti)<br />
Dim veri_okuyucu1 As Data.OleDb.OleDbDataReader<br />
veri_okuyucu1 = komut1.ExecuteReader<br />
While (veri_okuyucu1.Read())<br />
CmbSektor.Items.Add(veri_okuyucu1("sektor"))<br />
End While<br />
End Sub<br />
Private Sub BtnGuncelle_Click(ByVal sender As System.Object, ByVal e As<br />
System.EventArgs) Handles BtnGuncelle.Click<br />
Dim sql As String = "select tutar from Anatablo where sektor='" &<br />
CmbSektor.Text & "'"<br />
Dim komut As New System.Data.OleDb.OleDbCommand(sql, baglanti)<br />
Dim veri_okuyucu As Data.OleDb.OleDbDataReader<br />
Dim toplam As Integer = 0<br />
Tolga GÜYER Sayfa 95
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
veri_okuyucu = komut.ExecuteReader<br />
While (veri_okuyucu.Read())<br />
toplam = toplam + veri_okuyucu("tutar")<br />
End While<br />
LblToplam.Text = toplam<br />
End Sub<br />
Private Sub BtnTutar_Click(ByVal sender As System.Object, ByVal e As<br />
System.EventArgs) Handles BtnTutar.Click<br />
Dim sql As String = "select tutar from Anatablo where yil=" &<br />
CInt(CmbYil.Text) & " and sektor='" & CmbSektor.Text & "'"<br />
Dim komut As New System.Data.OleDb.OleDbCommand(sql, baglanti)<br />
Dim veri_okuyucu As Data.OleDb.OleDbDataReader<br />
veri_okuyucu = komut.ExecuteReader<br />
If veri_okuyucu.HasRows = True Then<br />
veri_okuyucu.Read()<br />
LblIhracatTutar.Text = veri_okuyucu("tutar")<br />
End If<br />
End Sub<br />
Private Sub CmbSektor_SelectedIndexChanged(ByVal sender As<br />
System.Object, ByVal e As System.EventArgs) Handles<br />
CmbSektor.SelectedIndexChanged<br />
LblSektor.Text = CmbSektor.Text<br />
End Sub<br />
End Class<br />
Veritabanı Yapısı<br />
Tolga GÜYER Sayfa 96
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
Uygulama No: 46 – Veritabanı Uygulaması 10<br />
Açıklama : Veritabanından gerçekleştirilen ikinci el otomobil sorgulaması.<br />
Ekran Görüntüsü<br />
Açıklamalı Kodlar<br />
Public Class Form1<br />
Dim baglanti_metni As String = "Provider=Microsoft.Jet.OLEDB.4.0; Data<br />
Source=|DataDirectory|\otomobil.mdb; Persist Security Info=False;"<br />
Dim baglanti As New Data.OleDb.OleDbConnection(baglanti_metni)<br />
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As<br />
System.EventArgs) Handles MyBase.Load<br />
'Veritabanı ile bağlantı sağlanıyor:<br />
baglanti.Open()<br />
'Marka ComboBox'ı dolduruluyor:<br />
Dim sql As String = "select marka from oto_bilgi group by marka"<br />
Dim komut As New System.Data.OleDb.OleDbCommand(sql, baglanti)<br />
Dim veri_okuyucu As Data.OleDb.OleDbDataReader<br />
veri_okuyucu = komut.ExecuteReader<br />
While (veri_okuyucu.Read())<br />
CmbMarka.Items.Add(veri_okuyucu("marka"))<br />
Tolga GÜYER Sayfa 97
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
End While<br />
'Yil ComboBox'ı dolduruluyor:<br />
Dim sql1 As String = "select yil from oto_bilgi group by yil"<br />
Dim komut1 As New System.Data.OleDb.OleDbCommand(sql1, baglanti)<br />
Dim veri_okuyucu1 As Data.OleDb.OleDbDataReader<br />
veri_okuyucu1 = komut1.ExecuteReader<br />
While (veri_okuyucu1.Read())<br />
CmbYil.Items.Add(veri_okuyucu1("yil"))<br />
End While<br />
'Renk ComboBox'ı dolduruluyor:<br />
Dim sql2 As String = "select renk from oto_bilgi group by renk"<br />
Dim komut2 As New System.Data.OleDb.OleDbCommand(sql2, baglanti)<br />
Dim veri_okuyucu2 As Data.OleDb.OleDbDataReader<br />
veri_okuyucu2 = komut2.ExecuteReader<br />
While (veri_okuyucu2.Read())<br />
CmbRenk.Items.Add(veri_okuyucu2("renk"))<br />
End While<br />
'Yakıt Türü ComboBox'ı dolduruluyor:<br />
Dim sql3 As String = "select yakit_turu from oto_bilgi group by<br />
yakit_turu"<br />
Dim komut3 As New System.Data.OleDb.OleDbCommand(sql3, baglanti)<br />
Dim veri_okuyucu3 As Data.OleDb.OleDbDataReader<br />
veri_okuyucu3 = komut3.ExecuteReader<br />
While (veri_okuyucu3.Read())<br />
CmbYakitTuru.Items.Add(veri_okuyucu3("yakit_turu"))<br />
End While<br />
End Sub<br />
'Vites ComboBox'ı dolduruluyor:<br />
Dim sql4 As String = "select vites from oto_bilgi group by vites"<br />
Dim komut4 As New System.Data.OleDb.OleDbCommand(sql4, baglanti)<br />
Dim veri_okuyucu4 As Data.OleDb.OleDbDataReader<br />
veri_okuyucu4 = komut4.ExecuteReader<br />
While (veri_okuyucu4.Read())<br />
CmbVites.Items.Add(veri_okuyucu4("vites"))<br />
End While<br />
Private Sub CmbMarka_SelectedIndexChanged(ByVal sender As<br />
System.Object, ByVal e As System.EventArgs) Handles<br />
CmbMarka.SelectedIndexChanged<br />
CmbModel.Text = ""<br />
CmbModel.Items.Clear()<br />
'Marka ComboBox'ına bağlı olarak Model ComboBox'ı dolduruluyor:<br />
Dim sql As String = "select model from oto_bilgi where marka='" &<br />
CmbMarka.Text & "' group by model"<br />
Dim komut As New System.Data.OleDb.OleDbCommand(sql, baglanti)<br />
Dim veri_okuyucu As Data.OleDb.OleDbDataReader<br />
veri_okuyucu = komut.ExecuteReader<br />
While (veri_okuyucu.Read())<br />
CmbModel.Items.Add(veri_okuyucu("model"))<br />
End While<br />
End Sub<br />
Private Sub BtnBul_Click(ByVal sender As System.Object, ByVal e As<br />
System.EventArgs) Handles BtnBul.Click<br />
LstSonuclar.Items.Clear()<br />
Tolga GÜYER Sayfa 98
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
Dim sonuc_metni As String = ""<br />
Dim sql As String<br />
If CmbYil.Text = "" Then<br />
sql = "SELECT * FROM oto_bilgi WHERE marka='" & CmbMarka.Text &<br />
"' AND model='" & CmbModel.Text & "' AND renk='" & CmbRenk.Text & "' AND<br />
yakit_turu='" & CmbYakitTuru.Text & "' AND vites='" & CmbVites.Text & "'<br />
AND (km BETWEEN " & CInt(TxtKilometre1.Text) & " AND " &<br />
CInt(TxtKilometre2.Text) & ") AND (fiyat BETWEEN " & CInt(TxtFiyat1.Text) &<br />
" AND " & CInt(TxtFiyat2.Text) & ")"<br />
Else<br />
sql = "SELECT * FROM oto_bilgi WHERE marka='" & CmbMarka.Text &<br />
"' AND model='" & CmbModel.Text & "' AND yil=" & CInt(CmbYil.Text) & " AND<br />
renk='" & CmbRenk.Text & "' AND yakit_turu='" & CmbYakitTuru.Text & "' AND<br />
vites='" & CmbVites.Text & "' AND (km BETWEEN " & CInt(TxtKilometre1.Text)<br />
& " AND " & CInt(TxtKilometre2.Text) & ") AND (fiyat BETWEEN " &<br />
CInt(TxtFiyat1.Text) & " AND " & CInt(TxtFiyat2.Text) & ")"<br />
End If<br />
Dim komut As New System.Data.OleDb.OleDbCommand(sql, baglanti)<br />
Dim veri_okuyucu As Data.OleDb.OleDbDataReader<br />
veri_okuyucu = komut.ExecuteReader<br />
If veri_okuyucu.HasRows Then<br />
While (veri_okuyucu.Read())<br />
sonuc_metni = veri_okuyucu("marka") & " " &<br />
veri_okuyucu("model") & " " & veri_okuyucu("versiyon") & ", " &<br />
veri_okuyucu("renk") & " renk, fiyatı ise " & veri_okuyucu("fiyat") & " TL"<br />
LstSonuclar.Items.Add(sonuc_metni)<br />
End While<br />
Else<br />
LstSonuclar.Items.Add("Veritabanımızda bu kriterlere uygun<br />
kayıt yoktur.")<br />
End If<br />
End Sub<br />
End Class<br />
Veritabanı Yapısı<br />
Tolga GÜYER Sayfa 99
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
Uygulama No: 47 – Veritabanı Uygulaması 11<br />
Açıklama : Basit bir banka (müşteri-hesap) uygulaması. İlişkisel veritabanı<br />
kullanılmıştır.<br />
Ekran Görüntüsü – Form1<br />
Public Class Form1<br />
Açıklamalı Kodlar<br />
Private Sub PictureBox1_Click(ByVal sender As System.Object, ByVal e As<br />
System.EventArgs) Handles PictureBox1.Click<br />
FrmYeniHesap.ShowDialog()<br />
End Sub<br />
Private Sub PictureBox2_Click(ByVal sender As System.Object, ByVal e As<br />
System.EventArgs) Handles PictureBox2.Click<br />
FrmYeniMusteri.ShowDialog()<br />
End Sub<br />
End Class<br />
Tolga GÜYER Sayfa 100
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
Ekran Görüntüsü – FrmYeniMusteri<br />
Public Class FrmYeniMusteri<br />
Açıklamalı Kodlar<br />
Private Sub BtnKaydet_Click(ByVal sender As System.Object, ByVal e As<br />
System.EventArgs) Handles BtnKaydet.Click<br />
baglantiAc()<br />
'Müşteri tanlosuna kaydediliyor:<br />
Dim musteriTuru As Byte = CByte(Strings.Left(CmbTur.Text, 1))<br />
Dim Sql As String = "insert into musteri<br />
(ad1,ad2,soyad1,soyad2,turu,tel1,tel2,adres) values ('" & TxtAd1.Text &<br />
"','" & TxtAd2.Text & "','" & TxtSoyad1.Text & "','" & TxtSoyad2.Text &<br />
"'," & musteriTuru & ",'" & TxtTel1.Text & "','" & TxtTel2.Text & "','" &<br />
TxtAdres.Text & "')"<br />
Dim komut As New System.Data.OleDb.OleDbCommand(Sql, baglanti)<br />
komut.ExecuteNonQuery()<br />
MsgBox("Müşteri bilgileri veritabanına eklenmiştir.")<br />
TxtAd1.Clear()<br />
TxtAd2.Clear()<br />
TxtSoyad1.Clear()<br />
TxtSoyad2.Clear()<br />
TxtTel1.Clear()<br />
TxtTel2.Clear()<br />
TxtAdres.Clear()<br />
CmbTur.ResetText()<br />
TxtAd1.Focus()<br />
End Sub<br />
End Class<br />
Tolga GÜYER Sayfa 101
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
Ekran Görüntüsü – FrmYeniHesap<br />
Açıklamalı Kodlar<br />
Public Class FrmYeniHesap<br />
Dim musterino As Integer<br />
Private Sub FrmYeniHesap_Load(ByVal sender As System.Object, ByVal e As<br />
System.EventArgs) Handles MyBase.Load<br />
baglantiAc()<br />
Dim sql As String = "select * from musteri"<br />
Dim komut As New System.Data.OleDb.OleDbCommand(sql, baglanti)<br />
Dim veri_okuyucu As Data.OleDb.OleDbDataReader<br />
veri_okuyucu = komut.ExecuteReader<br />
CmbSahip.Items.Clear()<br />
CmbMusteriNo_Gizli.Items.Clear()'Gizli combo, seçilen müşerinin<br />
numarasını almak için kullanılıyor.<br />
While (veri_okuyucu.Read())<br />
CmbSahip.Items.Add(veri_okuyucu("ad1") & " " &<br />
veri_okuyucu("ad2") & " " & veri_okuyucu("soyad1") & " " &<br />
veri_okuyucu("soyad2") & "-" & veri_okuyucu("no"))<br />
CmbMusteriNo_Gizli.Items.Add(veri_okuyucu("no"))<br />
End While<br />
End Sub<br />
Private Sub BtnKaydet_Click(ByVal sender As System.Object, ByVal e As<br />
System.EventArgs) Handles BtnKaydet.Click<br />
baglantiAc()<br />
'Hesap tablosuna kaydediliyor:<br />
Dim durumu As Byte = CByte(Strings.Left(CmbDurum.Text, 1))<br />
Dim turu As Byte = CByte(Strings.Left(CmbTur.Text, 1))<br />
Dim Sql As String = "insert into hesap<br />
(iban,turu,acilma_tarihi,bakiye,durumu,musterino) values ('" & TxtIBAN.Text<br />
& "'," & turu & ",'" & DateTimePicker1.Value & "'," & TxtBakiye.Text & ","<br />
Tolga GÜYER Sayfa 102
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
& durumu & "," & musterino & ")"<br />
Dim komut As New System.Data.OleDb.OleDbCommand(Sql, baglanti)<br />
komut.ExecuteNonQuery()<br />
MsgBox("Hesap bilgileri veritabanına eklenmiştir.")<br />
TxtBakiye.Clear()<br />
TxtIBAN.Clear()<br />
CmbDurum.ResetText()<br />
CmbSahip.ResetText()<br />
CmbTur.ResetText()<br />
TxtIBAN.Focus()<br />
End Sub<br />
Private Sub CmbSahip_SelectedIndexChanged(ByVal sender As<br />
System.Object, ByVal e As System.EventArgs) Handles<br />
CmbSahip.SelectedIndexChanged<br />
musterino = CInt(CmbMusteriNo_Gizli.Items(CmbSahip.SelectedIndex))<br />
End Sub<br />
End Class<br />
Veritabanı Yapısı<br />
Tolga GÜYER Sayfa 103
VB.Net Örnek Uygulamalar<br />
2 Kasım 2011<br />
Müşteri tablosunun birincil anahtarı, hesap tablosunda müşteri numarası adıyla yabancı anahtar<br />
yapılmak suretiyle bu iki tablo ilişkilendirilmiştir. İlişki 1-N tipindedir; yani bir müşterinin birden çok<br />
sayıda hesabı olabilirken, bir hesap sadece bir müşteriye ait olabilir.<br />
Tolga GÜYER Sayfa 104