Program Yapmak | Programcılık Hakkında Her Şey | VİSUAL BASİC 6.0 | C, C++ ve C# Yazılım Dilleri | VB.NET Yazılım Dili

VB.NET Veritabani Baglantisi

Merhaba arkadaşlar,

Bu dersimizde VB.NET'te veritabanına nasıl bağlanılır, onu öğreneceğiz ve bazı nesnelerin özeliklerini açıklayacağım.

Bağlayacağımız veri tabanı Access 2003 veritabanı; bunun için öncelikle bir veri tabanı oluşturacağız.

Veritabanın ismi 'VERITABANI' olarak ayarlayın yapacağımız programda kodlar bunlara göre ayarlı bir tablo oluşturun ve içersine 'ADI','SOYADI','NUMARA' adında 3 adet Sütun ekleyin ve 'ADI' Metin ,'SOYADI' Metin ,'NUMARA' Sayı olarak ayarlayın ve tabloyu kaydedip adını 'VERI" olarak ayarlayın. Veri tabanıyla işimiz bitti.(Veri tabanına birkaç veri ekleyin programda sıkıntı yaşamayın)

Şimdi Artık VB.NET'e geçelim =)

http://resim.sanalkurs.net/uploads/DERS.jpg

Şimdi yukarıda gördüğünüz Tasarımı VB.NET'te tasarlayın 1 Adet DataGridView,3 Adet Button,3 Adet Textbox,3 Adet Label

Kod yazmadan önce Veritabanını Proje Klasöründeki Bin/Debug içersine atın siz Release modda çalıştırıyor iseniz Bin/Release Klasörüne atın şimdi. VB.NET açıp
Public Class Form1
yazan kodun üzerine
Imports System.Data.OleDb
komutunu aktaralım aksi takdirde aşağıdaki kodların hiçbiri çalışmayacaktır.

Artık Kod yazmaya başlayalım öncelikle DataGridView nesnesine verileri aktarmakla başlayalım ben ayrı bir yordam oluşturup orada yaptım.(Siz Nesnelerin Eventlarında da yapabilirsiniz.)

Private Sub Listele(ByVal SQL As String)
        Dim baglanti As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source='VERITABANI.mdb'")
        Dim veriler As New DataTable("veriler")
        Dim adapter As New OleDbDataAdapter(SQL, baglanti)
        adapter.Fill(veriler)
        DataGridView1.DataSource = veriler
End Sub


Buradaki
(ByVal SQL As String)
bizim SQL yazıp DataGridView'de Göstermemize yarayacak ilerdeki komutlarda nasıl kullanacağını göstereceğim.

Dim baglanti As New OleDbConnection


bölümü Bizim Veritabanımızın Türünü ve nerede olduğu içindir.

Provider=Microsoft.Jet.OLEDB.4.0


Access 2003 tanımlayan Kod

Data Source='VERITABANI.mdb'


burasıda veritabanımızın bulunduğu Dizin.

Dim veriler As New DataTable


burası bizim VB.NET içersinde oluşturduğumuz sanal tablodur.

("veriler")Sanal tablonun ismi.

Dim adapter As New OleDbDataAdapter


bizim veritabanının yeri ve SQL komutunu birleştirip sanal tablomuza aktarmamıza yarayacak bölüm.

adapter.Fill(veriler)


burada artık sanal tablomuza aktardığımız bölüm ve artık verilerimizi program içinde kullanabiliriz.

Son olarak da:

DataGridView1.DataSource = veriler


diyerek artık DataGridView nesnemize aktarıyoruz veri tabanından gelen verileri.

Şimdi bir yordam daha yapcaz buda bizi kod yığıntısından kurtaracak:

Private Sub Temizle()
        TextBox1.Clear()
        TextBox2.Clear()
        TextBox3.Clear()
End Sub


Kodlardan anlayacağınız gibi formumuzun üzerindeki nesneleri temizliyor. Neden Ekle, Düzenleme ve Silme işleminden sonra kullanıcıyı yormamak için.

Artık Formumuzu Çalıştırmadan önce yapılması gereken ayarlar var.bunları Form_Load Event'ına yazcağız.
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
DataGridView1.EditMode = DataGridViewEditMode.EditProgrammatically
DataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect
Listele("SELECT * FROM VERI'")
End Sub


DataGridView1.EditMode = DataGridViewEditMode.EditProgrammatically


bu kod satırı bizi DataGridView nesnesinin hücrelerine tıkladığımızda verileri değişrirebilir (veritabanındakileri değil)
Bunu engellemek için.

 DataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect


bu kod ise DataGridView nesnesinde hücreleri tek tek seçmek yerine satırı komple seçmek için.

Bu kodları kendiniz isterseniz Properties bölümünden de değiştirebilirsiniz.

'Listele("SELECT * FROM VERI'")' artık hazırladığımız Listele Adındaki Yordamımızı Çalıştırıp ve SQL adındaki değişkenimize SQL aktarıp DataGridView nesnesinde Gösterilmesini Sağladık.Çalıştırdığınızda veritabanındaki veriler gösterilecektir.
Artık Ekle Buttonunu yerleştirelim.

EKLE BUTONU

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim durum As String
        durum = MsgBox("Adı = " & TextBox1.Text & vbNewLine & "Soyadı = " & TextBox2.Text & vbNewLine & "Numara = " & TextBox3.Text & vbNewLine & "Yukarıdaki yazdığınız veriler kayıt edilsinmi '", MsgBoxStyle.Question + MsgBoxStyle.YesNoCancel, "Kayıt Uyarı")
        If durum = vbYes Then
            Dim sql As New String("INSERT INTO VERI (ADI,SOYADI,NUMARA) values ('{0}','{1}',{2})")
            sql = String.Format(sql, TextBox1.Text, TextBox2.Text, TextBox3.Text)
            Dim baglanti As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source='VERITABANI.mdb'")
            Dim komutnesnesi As New OleDb.OleDbCommand(sql, baglanti)
            Dim sonuc As Integer
            baglanti.Open()
            sonuc = komutnesnesi.ExecuteNonQuery()
            If sonuc = 1 Then
                MsgBox("Yandaki Girdiğiniz Veriler Veri Tabanına Kayıt Olmuştur.", MsgBoxStyle.Exclamation, "Kayıt Uyarı")
            End If
            Listele("SELECT * FROM VERI'")
            baglanti.Close()
            Temizle()
        Else

        End If

    End Sub


Burası Biraz uzun o yüzden kısaltarak anlatacağım şimdi buradaki bazı kodların anlatcağım dersle ilgisi yok aslında ama öğrenilmesi gerekir.

'Durum' adında bir değişken tanımladım ve bu değişkene 'Msgbox'nesnesinden geri dönen veri aktardım.Mesaj pencerelerinde dikkat ederseniz sadece 'Tamam' buttonu yoktur.Evet,Hayır ve İptal butonları bulunur.

Visual Basic'te bunun için 'MsgboxStyle' kodu bulunmaktadır.Bu kodun altında Mesaj kutusundaki ikonlar ve buttonların şekilleri vardır yukardaki Kodu incelerseniz 'MsgBoxStyle.Question + MsgBoxStyle.YesNoCancel' mesaj kutusunun ikonu 'Question' yani Soru işareti ikonu '+' diyerek Sitilleri devam edip 'YesNoCancel' butonları ekledim esas işimize yarayacak bölümde burası YesNoCancel buradaki butonlara basıldığında geriye bir değer atar basılan buttona göre bu değerler

Yes butonu için : 'VbYes'
No butonu için : 'VbNo'
Cancel buttonu için : 'VbCancel''dır

buna göre de programa yön verdik 'İf' yapısını kullanarak basılan butonu tespit edip ona göre çalışmaya devam ettim.Bizi ilgilediren Kodlara geçelim

Dim sql As New String("INSERT INTO VERI (ADI,SOYADI,NUMARA) values ('{0}','{1}',{2})")


Burdaki kodda Ekleme yapmak için SQL var ama Farklı bir yolu var SQL'de ''{0}','{1}',{2}' parametre verdik bu parametreler aşağıdaki koda göre çalışır.

sql = String.Format(sql, TextBox1.Text, TextBox2.Text, TextBox3.Text)


Bu kodda parametre sırasıyla çalışır.buna göre SQL deyimimiz çalışacaktır.(parametreler sizin istediğiniz gibi eklenebilir parametrelere karşılık gelecek bir veri olması lazım ekleyeceğiniz parametreye)

Şimdi artık esas ekleme kodlarına gelelim
'baglanti' değişkenimiz gene aynı ama burada adapter nesnesi yok onun yerine 'Dim komutnesnesi As New OleDb.OleDbCommand' Command nesnesi var bu nesne bizim veri tabanında ekleme ve düzenleme gibi değişiklikleri sağlayacak nesnedir.şimdi ekleme işlemine başlamamız için veritabanının içine girmemiz gerekir bunun içinde 'Baglanti.Open()' kodunu kullanıyoruz.

Açtıktan sonra nesnemizi çalıştırıyoruz.' sonuc = komutnesnesi.ExecuteNonQuery()'
'ExecuteNonQuery()' çalıştırmamızı sağlayan kod artık çalıtırdık ama çalıştırma sonucu geriye bir değer atıyor '1' ise veriler veritabanına işlenmiştir '0' ise işlenmemiş anlamındadır.buna göre son olarak onu kontrol edip 'baglanti' nesnesini kapatıp ekleme işlemini bitiriyoruz.'baglanti.Close()'

başta hazırladığımız yordamları burada kullanıyoruz.'Temizle' ve 'Listele' yordamlarını temizleyi çalıştırdığımızda form üzerindeki nesneler boşalıcaktır.'Listeleyi'çalıştırdığımızda ise son eklediğimiz veriyi en altta görüceğiz.

Bundan sonraki kodlar kolay sadece SQL deyimlerini değiştirmemiz yeterli olucak.

Şimdi düzenleme işlemini yapabilmek için önce hangi veriler olduğunu seçmemiz gerekecektir bunu sağlamak için DataGridView Nesnesinin CellClick event'ına kod yazacağız.

Private Sub DataGridView1_CellClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellClick
        TextBox1.Text = DataGridView1.CurrentRow.Cells(0).Value
        TextBox2.Text = DataGridView1.CurrentRow.Cells(1).Value
        TextBox3.Text = DataGridView1.CurrentRow.Cells(2).Value
    End Sub


'DataGridView1.CurrentRow.Cells(0).Value' bu kodun anlamı seçili satırın 0. Hücresinin değeri.

Bunları hazırladığımız formdaki metin kutularına aktardık buna göre düzenleme işlemini yapacağız.

DÜZENLE BUTONU

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Dim sql As New String("UPDATE VERI SET ADI='{0}',SOYADI='{1}',NUMARA={2} WHERE ADI='{3}' AND SOYADI='{4}' AND NUMARA={5}")
        sql = String.Format(sql, TextBox1.Text, TextBox2.Text, TextBox3.Text, DataGridView1.CurrentRow.Cells(0).Value, DataGridView1.CurrentRow.Cells(1).Value, DataGridView1.CurrentRow.Cells(2).Value)
        Dim baglanti As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source='VERITABANI.mdb'")
        Dim komutnesnesi As New OleDb.OleDbCommand(sql, baglanti)
        Dim sonuc As Integer
        baglanti.Open()
        sonuc = komutnesnesi.ExecuteNonQuery()
        If sonuc = 1 Then
            MsgBox("Değiştirmiş Olduğunuz Veriler Güncellenmiştir.", MsgBoxStyle.Exclamation, "Kayıt Uyarı")

        End If
        Listele("SELECT * FROM VERI'")
        baglanti.Close()
        Temizle()
    End Sub


Burada anlatılıcak başka kod yok oyüzden direk olarak Sil butonunun kodlarını yazıcağım.

SİL BUTONU

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        Dim sql As New String("DELETE FROM VERI WHERE ADI='{0}' AND SOYADI='{1}' AND NUMARA={2} ")
        sql = String.Format(sql, TextBox1.Text, TextBox2.Text, TextBox3.Text)
        Dim baglanti As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source='VERITABANI.mdb'")
        Dim komutnesnesi As New OleDb.OleDbCommand(sql, baglanti)
        Dim sonuc As Integer
        baglanti.Open()
        sonuc = komutnesnesi.ExecuteNonQuery()
        If sonuc = 1 Then
            MsgBox("Listeden Seçmiş Olduğunuz Veri Silinmiştir.", MsgBoxStyle.Exclamation, "Kayıt Uyarı")
           
        End If
        Listele("SELECT * FROM VERI'")
        baglanti.Close()
        Temizle()
    End Sub



Anlatacaklarım bu kadar, umarım yaralı olmuştur. Siz artık kendinize göre düzenlersiniz verileri.

Kaynak dosyayı indirmek için tıklayın

Sincan Laptop tamiratı ile alakalı içeriklerin bulunduğu web siteden bilgilere ulaşabilirsiniz. Sincan'da laptop tamiratını en iyi yapan yerleri sorgulayabilirsiniz. Cihan KOÇ
=> Sen de ücretsiz bir internet sitesi kurmak ister misin? O zaman burayı tıkla! <=