VB.Net Örnek Uygulamalar

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