Hızlı Konu Açma

Hızlı Konu Açmak için tıklayınız.

Son Mesajlar

Konulardaki Son Mesajlar

Reklam

Forumda Reklam Vermek İçin Bize Ulaşın

VB.NET Veritabanı Bağlantısı

BOMBFACTORY

Uzman Üye
Uzman Üye
Trabzonspor
Katılım
5 Ocak 2014
Mesajlar
3,333
Tepkime puanı
6
Puanları
136
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 =)



Ş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

Kod:

Public Class Form1

yazan kodun üzerine

Kod:

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.)

Kod:

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 = verilerEnd Sub

Buradaki

Kod:

(ByVal SQL As String)


bizim SQL yazıp DataGridView'de Göstermemize yarayacak ilerdeki komutlarda nasıl kullanacağını göstereceğim.

Kod:

Dim baglanti As New OleDbConnection

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

Kod:

Provider=Microsoft.Jet.OLEDB.4.0

Access 2003 tanımlayan Kod

Kod:

Data Source='VERITABANI.mdb'

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

Kod:

Dim veriler As New DataTable


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

("veriler")Sanal tablonun ismi.

Kod:

Dim adapter As New OleDbDataAdapter

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

Kod:

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:

Kod:

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:

Kod:

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.

Kod:

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.LoadDataGridView1.EditMode = DataGridViewEditMode.EditProgrammaticallyDataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelectListele("SELECT * FROM VERI'")End Sub

Kod:

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.

Kod:

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

Kod:

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

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

Kod:

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.

Kod:

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.

Kod:

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

Kod:

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

Kod:

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.


Linkleri sadece kayıtlı üyeler görebilir. Linkleri görebilmek için Üye Girişi yapın veya ücretsiz olarak Kayıt Olun

 

Users Who Are Viewing This Konu (Users: 0, Guests: 1)

Üst