Visual Basic.net Veritabanı?

erkan1525
23-10-2011, 12:10   |  #1  
OP Taze Üye
Teşekkür Sayısı: 0
11 mesaj
Kayıt Tarihi:Kayıt: Tem 2009

Merhaba,
Ben daha önce visual basic 6 kullanıyordum. vb.net'e geçmeye karar verdim. Bilgisayarımda Visual Studio 2010 var. En büyük problemi veritabanlarıyla yaşıyorum. Bu sorunu çözmek için sizden yardım istiyorum. Benimle aynı sorunları yaşayan çok kişide olduğuna eminim. Aşağıdaki sorularıma sırasıyla ve güzel bir şekilde cevap veren abimiz benim gibi yüzlerce kişiye yardım etmiş olacaktır.

* 1.
Veribanı ile ilgili temel ihtiyaçlarımız.

Yeni kayıt eklemek
Kayıt düzenlemek
Kayıtları bir data grid de listelemek
Kayıt aramak
kayıt silmek

vb6 da Yukarıdaki ihtiyaçların çoğunu "ado data control" aracılığıyla sql kullanarak hallediyorduk. Aslında ben çoğu uygulamada sadece arama yapmak için SQL kullanıyordum.
Daha anlaşılır olması için bir örnek vermeliyim:
Yapmak istediğimiz şey bir telefon defteri olsun veritabanımızda "adresdefteri" die bir tablo "id, adi, telefon" diye kayıt alanları olsun.

Ben böyle bir uygulamada bir modüle "Public Bag As New ADODB.Connection, Public bR As New ADODB.Recordset" şeklinde 2 nesne tanımlar bir forma 3 tane text kutusu birkaç button birde dataGrid eklerdim. Data grid ve text kutularını veritabanıyla ilişkilendirir, arama sonuçlarının datagridde listelenmesini sağlar, datagriddeki kayıtlara tıklanınca text kutularında verilerin ayrıntılı görünmesini sağlardım. Veritabanının yolunu v.s tüm ayrıntıları kodla hallederdim böylece birkaç farklı veritabanına rahatlıkla bağlanabilirdim. Yani tüm kontrol bendeydi.

Vb.Net de bunu yapmayı birtürlü başaramadım. Bir hafta çalıştım araştırdım. Bir uygulama yapmayı başardım ama veritabanı yolunu kodla değiştirebilmem gerekiyordu. Bunu bir türlü beceremedim. Çünkü uygulamayı o noktaya getirmek için yaptıklarımı bile doğru düzgün anlamamıştım.

Veritabanıyla çalışırken yapabilmek istediğim şeyler.
Access veritabanı kullanırken kodla veritabanı yolunu değiştirebilmek (Birden fazla veritabanı kullanabilmek için)
MYSQL veya Başka veritabanıyla çalışırken veritabanını kodla değiştirebilmek( Bir adres defteri için: aysenin_defteri, alinin_defteri gibi)
Kayıtları datagrid gibi birşeyde listeletmek ve her kayda tıkladığımda ayrıntıları text kutusunda görmek
SQL ile arama yapıp sonuçları datagridde listeleyebilmek
Veritabanına kayıt eklemek, düzenlemek, silmek (Bunları yaparken hemen datagride yansımasını sağlamak önemli)

Bunları vb.net de nasıl yaparım.

* 2.
v.b net vb6 ya göre oldukça karmaşık. Veritabanına bağlanmak ve işlem yapmak için bir sürü nesne v.s kullanıyoruz bu nesneler nerdir. Nerden çıktılar. neden çıktılar. görevleri ne, neler yapabilirler, ne için kullanılırlar. Biri ayrıntılı bir şekilde sırayla açıklarsa süper olurdu.

* 3.
vb.net de raporlamayı en kolay nasıl yapabiliriz. Birçok uygulamada raporların sonradan kullanıcı tarafından düzenlene bildiğini gördüm. Bunu nasıl yapabiliriz?

* 4. 
visual basic.net de raporlar ve veritabanlarını anlatan türkçe güzel bir kitap varmı? Tavsiye edebileceğiniz birşey?

Kapalı Hesap (153535)
23-10-2011, 14:13   |  #2  
Kapalı Hesap
Teşekkür Sayısı: 27
2,297 mesaj
Kayıt Tarihi:Kayıt: Eki 2009

Hepsini ADO.NET sayesinde kolaylıkla yapabilirsiniz.Aksine veritabanıyla bağlantı oldukça kolay.Sadece ilgili kodları yazmanız veritabanıyla bağlantı yapıp verileri çekmenize yetiyor.

Kapalı Hesap (153535)
23-10-2011, 14:23   |  #3  
Kapalı Hesap
Teşekkür Sayısı: 27
2,297 mesaj
Kayıt Tarihi:Kayıt: Eki 2009

Buyrun bir örnek:
Imports System.Data.SqlClient


Public Class Form1


    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        Dim baglanti As String = "Data Source=COMPUTER;Initial Catalog=OkulProgrami;Integrated Security=True"
        Dim conn As New SqlConnection(baglanti)
        Dim sql As String = "SELECT * FROM tblBilgiler"
        Dim cmd As New SqlCommand(sql, conn)
        conn.Open()
        Dim dt As New DataTable()
        Dim rdr As SqlDataReader = cmd.ExecuteReader()
        dt.Load(rdr)
        Me.DataGridView1.DataSource = dt
        conn.Close()

    End Sub
End Class

Kapalı Hesap (153535)
23-10-2011, 14:29   |  #4  
Kapalı Hesap
Teşekkür Sayısı: 27
2,297 mesaj
Kayıt Tarihi:Kayıt: Eki 2009

C#.NET 2008 ve ASP.NET adlı kitapta merak ettiğiniz bütün soruların cevabı var.Raporlama,SQL,ADO.NET hepsi anlatılmış.C#'tan VB.NET'e kodları dönüştürmek için internetteki converter'ları kullanabilirsiniz.Bu arada kitap Nirvana Yayınlarına ait.