VB.Net Örnek Uygulamalar

advertisement
VB.Net Örnek Uygulamalar
2 Kasım 2011
VERİTABANI UYGULAMALARI HAKKINDA ÖZET BİLGİ
VB.Net uygulamasından bir Access veritabanına nasıl bağlanırım?
Bunun için ilk yapmamız gereken, bir bağlantı cümlesi kurmaktır. Aşağıda iki farklı durum için örnekler
verilmiştir:
Dim baglanti_metni1, baglanti_metni2 As String
baglanti_metni1 = "Provider=Microsoft.ACE.OLEDB.12.0;
DataSource=|DataDirectory|\vt1.accdb; Persist Security Info=False;"
baglanti_metni2 = "Provider=Microsoft.Jet.OLEDB.4.0;
DataSource=|DataDirectory|\vt1.mdb; Persist Security Info=False;"
İlk cümlede (baglanti_metni1) bağlanılan veritabanı dosyası Access 2007 sürümüne aittir. Dolayısıyla
accdb formatındadır.
İkinci cümlede ise (baglanti_metni2) bağlanılan veritabanı dosyası Access 2003 sürümüne ait bir mdb
dosyasıdır.
Bu cümlelerden uygun olanı seçilerek bağlantı kurulur:
Dim baglanti1 As New Data.OleDb.OleDbConnection(baglanti_metni2)
baglanti1.Open()
Bağlandığım veritabanında bir tabloya nasıl veri girebilirim?
Öncelikle buna uygun bir SQL cümlesi oluşturmamız gerekir:
sql1 = "insert into anatablo (numarasi, adi, soyadi, fakultesi, bolumu)
values (10909299, ‘Salih’, ‘Baran’, ‘Eğitim Bilimleri’, ‘BÖTE’)"
İkinci olarak, bu SQL cümlesi ve daha önce tanımladığımız bağlantı (baglanti1) kullanılarak bir komut
tanımlanması ve bu komutun çalıştırılması gerekir:
Dim komut1 As New System.Data.OleDb.OleDbCommand(sql1, baglanti1)
komut1.ExecuteNonQuery()
Ve artık bilgiler veritabanımızın anatablo isimli tablosunda…
Bağlantımızı kapatabiliriz:
baglanti1.Close()
Peki ya bilgileri form üzerinden almak istersem?
Yukarıdaki kodlarda yapacağımız tek değişiklik, SQL cümlesinde olacaktır:
sql1 = "insert into anatablo (numarasi, adi, soyadi, fakultesi, bolumu)
values (“ & TxtNumara.Text & “,‘” & TxtAd.Text & “’,‘” & TxtSoyad.Text &
“’,‘” & TxtFakulte.Text & “’,‘” & TxtBolum.Text “’)"
Tolga GÜYER
Sayfa 75
VB.Net Örnek Uygulamalar
2 Kasım 2011
Veritabanındaki bir tablodan nasıl veri çekebilirim?
Daha önce tanımladığımız bağlantımızı açarak başlayalım:
baglanti1.Open()
Şimdi bu bağlantı üzerinden şu SQL cümlesini çalıştıracağız:
sql2 = “select * from anatablo”
Dim komut1 As New System.Data.OleDb.OleDbCommand(sql2, baglanti1)
Şimdi bu komut üzerinden yeni bir nesne olan veri okuyucuyu çalıştıracağız:
Dim veri_okuyucu As Data.OleDb.OleDbDataReader
veri_okuyucu = komut.ExecuteReader
Artık anatablo içindeki veriler veri_okuyucu nesnesi içersinde. Son olarak bu nesnenin içerdiği
bilgilerin nasıl görüntülenebileceğine bakalım:
While (veri_okuyucu.Read())
LstBilgiler.Items.Add(veri_okuyucu("numarasi") & “ “ & veri_okuyucu("adi")
& “ “ & veri_okuyucu("soyadi"))
End While
Ve bağlantımızı kapatalım:
baglanti1.Close()
Ya sadece belirli alanları çekmek İstersem?
Sadece SQL cümlemizde değişiklik yapacağız:
sql2 = “select numarasi, adi, soyadi from anatablo”
Peki “soyadı A harfi ile başlayan” gibi bir koşul koymak istersem?
Yine SQL cümlemizi değiştirmek yeterli olacaktır:
sql2 = “select numarasi, adi, soyadi from anatablo where adi like ‘A%’”
Veritabanındaki bir tablonun istediğim bir kaydını nasıl güncellerim?
Öncelikle şu SQL cümlesinin oluşturulması gerekir:
sql1 = "update anatablo set adi=’“ & TxtAd.Text & “’,soyadi=’” &
TxtSoyad.Text & “’ where numarasi=" & TxtNumara.Text
Bundan sonraki adım, kayıt ekleme ile aynı olacaktır:
Dim komut1 As New System.Data.OleDb.OleDbCommand(sql1, baglanti1)
komut1.ExecuteNonQuery()
Bağlantımızı kapatabiliriz:
baglanti1.Close()
Tolga GÜYER
Sayfa 76
VB.Net Örnek Uygulamalar
2 Kasım 2011
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 77
VB.Net Örnek Uygulamalar
2 Kasım 2011
Uygulama No: 41 – Veritabanı Uygulaması 7
Açıklama
:
Veritabanı bağlantılı Dinamik ComboBox kullanımı
Ekran Görüntüsü
Açıklamalı Kodlar
Public Class Form1
Dim baglanti As New
Data.OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data
Source=|DataDirectory|\ogrenci.mdb; Persist Security Info=False;")
Dim flag As Byte
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
baglanti.Open()
Dim sql As String
‘ Fakülteler form yüklenirken veritabanından gelsin
sql = "select fakulte from fakulte_bolum group by fakulte"
‘group by kullanılıyor çünkü fakülte adları fakulte_bolum
tablosunda tekrar ediyor.
Dim komut As New System.Data.OleDb.OleDbCommand(sql, baglanti)
Dim veri_okuyucu As Data.OleDb.OleDbDataReader
veri_okuyucu = komut.ExecuteReader
While (veri_okuyucu.Read())
CmbFakulte.Items.Add(veri_okuyucu("Fakulte"))
End While
baglanti.Close()
End Sub
Private Sub CmbFakulte_SelectedIndexChanged(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
Tolga GÜYER
Sayfa 78
VB.Net Örnek Uygulamalar
2 Kasım 2011
CmbFakulte.SelectedIndexChanged
If flag = 0 Then baglanti.Open()
CmbBolum.Items.Clear()
CmbBolum.Text = "SEÇİNİZ"
Dim sql As String
sql = "select Bolum from fakulte_bolum where fakulte = '" &
CmbFakulte.Text & "'"
Dim komut As New System.Data.OleDb.OleDbCommand(sql, baglanti)
Dim veri_okuyucu As Data.OleDb.OleDbDataReader
veri_okuyucu = komut.ExecuteReader
‘Veritabanından seçilen fakülte altında yer alan bölümler
çekiliyor
While (veri_okuyucu.Read())
CmbBolum.Items.Add(veri_okuyucu("bolum"))
End While
If flag = 0 Then baglanti.Close()
End Sub
Private Sub BtnBilgiGetir_Click(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles BtnBilgiGetir.Click
flag = 1
baglanti.Open()
Dim sql As String
sql = "select * from ana_tablo where Ogrencino = '" &
TxtOgrenciNo.Text & "'"
Dim komut As New System.Data.OleDb.OleDbCommand(sql, baglanti)
Dim veri_okuyucu1 As Data.OleDb.OleDbDataReader
veri_okuyucu1 = komut.ExecuteReader
If Not veri_okuyucu1.HasRows Then
‘ Eğer veri okuyucu boş dönmüş ise…
MsgBox("Bu bilgiyi içeren herhangi bir kayıt bulunamadı...")
Else
While (veri_okuyucu1.Read())
TextAd.Text = veri_okuyucu1("adi")
TextSoyad.Text = veri_okuyucu1("soyadi")
TextBabaAd.Text = veri_okuyucu1("babaadi")
TextGun.Text = veri_okuyucu1("gun")
TextAy.Text = veri_okuyucu1("ay")
TextYil.Text = veri_okuyucu1("yil")
CmbFakulte.SelectedItem = veri_okuyucu1("fakulte")
CmbBolum.SelectedItem = veri_okuyucu1("bolum")
End While
End If
baglanti.Close()
flag = 0
End Sub
Private Sub BtnKaydet_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles BtnKaydet.Click
baglanti.Open()
Dim sql As String
If CmbFakulte.Text = "SEÇİNİZ" Then
MsgBox("Fakülte Seçiniz!")
ElseIf CmbBolum.Text = "SEÇİNİZ" Then
MsgBox("Bölüm Seçiniz!")
Else
sql = "update ana_tablo set fakulte = '" & CmbFakulte.Text &
"', bolum='" & CmbBolum.Text & "',adi = '" & TextAd.Text & "',soyadi='" &
TextSoyad.Text & "',babaadi = '" & TextBabaAd.Text & "',gun=" &
TextGun.Text & ",ay=" & TextAy.Text & ",yil=" & TextYil.Text & " where
Tolga GÜYER
Sayfa 79
VB.Net Örnek Uygulamalar
2 Kasım 2011
ogrencino = '" & TxtOgrenciNo.Text & "'"
Dim komut As New System.Data.OleDb.OleDbCommand(sql, baglanti)
komut.ExecuteNonQuery()
‘Veritabanında ana_tablo üzerinde düzeltme yapıldı.
MsgBox("Bilgiler Veritabanında Güncellenmiştir.")
End If
baglanti.Close()
End Sub
End Class
Tolga GÜYER
Sayfa 80
Download