• 15-06-2025, 12:01:21
    #1
    Merhaba arkadaşlar, c# ve microsoft acces ile yaptığım bir windows form okul projem var. Kayıt olma işleminde kayıt ekleniyor fakat databaase de görüntüleyemiyorum. Aynı zamanda database eklemeye çalıştığımda aşağıda görselde attığım hata ile karşılaşıyorum. Son teslim tarihim yarın , aşağıdaki numaradan whatssapp üzerinden iletişime geçerseniz çok sevinirim. 0531 392 20 04.

  • 15-06-2025, 12:03:37
    #2
    Üyeliği durduruldu
    Access OLEDB sağlayıcısının yüklü olmamasından veya proje platform hedefiyle (x86/x64) uyumsuzluğundan kaynaklanıyor. Aşağıdaki adımları izleyerek sorunu çözebilirsin:

    1. Access Database Engine’i Kur

    Eğer henüz kurulu değilse “Microsoft Access Database Engine Redistributable” paketini indirip yüklemen gerekiyor. Genelde şu sürümler kullanılır:

    2010 versiyonu: “Microsoft Access Database Engine 2010 Redistributable”

    2016 veya üzeri: “Microsoft Access Database Engine 2016 Redistributable”


    Dikkat: İşletim sistemin ve Office kurulumunun bit-mimarisi (32-bit vs 64-bit) ile uyumlu sürümü seç. Örneğin Office 32-bit yüklüyse 32-bit Access Engine; Office 64-bit ise 64-bit versiyon.

    Eğer Office 32-bit yüklü ve sistemin 64-bit ise ama Access Engine 64-bit kuramıyorsan, proje derlemesini x86 olarak ayarlayarak 32-bit Access Engine kullanabilirsin.



    2. Proje Platform Ayarlarını Kontrol Et (x86 vs x64)

    Visual Studio’da proje özelliklerine (Project Properties) git.

    “Platform target” altında: Eğer yüklü Access Engine 32-bit ise “x86” seç; eğer 64-bit yüklüyse “x64” seç veya “Any CPU” + “Prefer 32-bit” seçeneğini ayarla.

    Derleme ayarını değiştirdikten sonra projeyi temizle (Clean) ve yeniden derle.



    3. Connection String’in Doğru Olduğundan Emin Ol

    Örnek doğru format:

    string connStr = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:PathToveritabani.accdb;Persist Security Info=False;";

    .accdb uzantılı Access dosyası için Microsoft.ACE.OLEDB.12.0. Eğer eski .mdb kullanıyorsan Microsoft.Jet.OLEDB.4.0 da olabilir ancak .accdb için ACE gerekiyor.

    Dosya yolu (“Data Source”) projenin çalıştığı makinede gerçekten erişilebilir mi kontrol et (mutlak yol veya uygulama dizininden görece yol).



    4. Veri Ekleme ve Sonrası: DataGridView’e Yükleme / Yenileme

    Kayıt ekleme kodun zaten çalışıyor ancak ekledikten sonra DataGridView veya listeyi yenilemiyor olabilirsin. Örneğin:

    using (OleDbConnection conn = new OleDbConnection(connStr))
    {
    conn.Open();
    string insertSql = "INSERT INTO Doktorlar (Ad, Soyad, Brans) VALUES (?, ?, ?)";
    using (OleDbCommand cmd = new OleDbCommand(insertSql, conn))
    {
    cmd.Parameters.AddWithValue("?", txtAd.Text);
    cmd.Parameters.AddWithValue("?", txtSoyad.Text);
    cmd.Parameters.AddWithValue("?", cmbBrans.SelectedItem);
    cmd.ExecuteNonQuery();
    }
    // Ekleme sonrası listeyi yenile:
    string selectSql = "SELECT * FROM Doktorlar";
    using (OleDbDataAdapter da = new OleDbDataAdapter(selectSql, conn))
    {
    DataTable dt = new DataTable();
    da.Fill(dt);
    dataGridView1.DataSource = dt;
    }
    }

    Kayıt ekleme sırasında hata almıyorsan, bu kodla DataGridView’e güncel verileri çek ve göster. Eğer DataGridView kullanmıyorsan, benzer şekilde ListBox veya ComboBox doldurma kodunu ekleme sonrası tekrar çağır.



    5. Hata Ayıklama

    Sağlayıcı hatası (“provider not registered”) düzelince Insert ve Select akışı sorunsuz çalışacaktır. Eğer koneksiyon açmada başka hata alırsan, exception’ın mesajını logla ya da MessageBox ile göster.

    Access dosyasının şifreli veya farklı sürümde olması da sorun çıkarabilir; dosyanın bozuk olmadığından emin ol.



    6. 64-bit vs 32-bit Çatışmalarına Not

    Çoğu zaman Visual Studio’nun derlediği uygulama 64-bit iken ACE 32-bit yüklüyse “provider not registered” hatası alınıyor.

    Projeyi x86’a ayarlayıp test et:

    Proje > Properties > Build > Platform target: x86

    Çalıştır ve hatanın kaybolduğunu doğrula.


    Eğer Office 64-bit ve ACE 64-bit yüklüyse x64 olarak derle veya “Any CPU” + “Prefer 32-bit” ayarını gözden geçir.



    7. Visual Studio’dan Data Source Ekleme Hatası

    Visual Studio “Add Data Source” sihirbazı da benzer ACE gereksinimi ister. Sağlayıcı yüklü değilse sihirbaz hata gösterir. Yukarıdaki Access Engine kurulumu ve platform ayarı sonrası “Add Data Source” ile Access’i seçebilirsin.

    Eğer yine hata çıkarsa Visual Studio’yu yönetici olarak çalıştırmayı deneyebilir veya IDE’yi yeniden başlatıp sihirbazı yeniden dene.



    8. Alternatif Yaklaşım (İhtiyaç Varsa)

    Eğer ACE yükleme veya bit uyuşmazlığı çözülmezse, SQLite gibi gömülü (embedded) bir veritabanına geçiş de bir seçenek olabilir. Ancak okul projesi Access gerektiriyorsa önce ACE sorununu çöz.




    Özetle:

    Öncelikle “Microsoft Access Database Engine” paketini indirilip yüklü olduğundan emin ol.

    Projenin platform hedefini (x86/x64) Access Engine ile uyumlu hale getir.

    Connection string’in doğru olduğundan ve dosya yolunun erişilebilir olduğundan emin ol.

    Kayıt ekledikten sonra DataGridView veya listeyi yenileme kodunu ekle.


    Bu adımlar genellikle “Microsoft.ACE.OLEDB.12.0 sağlayıcısı yerel makine kayıtlı değil” hatasını çözer ve eklenen kayıtları görüntülemeni sağlar. Başarılar!
  • 15-06-2025, 12:05:21
    #3
    Hepsini denedim kontrol ettim ama olmadı , whatssapp üzerinden ya da istediğiniz bir platform üzerinden yardımcı olabilir misiniz ücreti karşılığında