
Microsoft Acces Bilenler Yardıma İhtiyacım var
2
●90
- 15-06-2025, 12:01:21Merhaba 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Üyeliği durdurulduAccess 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 Enginei 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 Studioda 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 Stringin 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ı: DataGridViewe 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 DataGridViewe 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 Studionun derlediği uygulama 64-bit iken ACE 32-bit yüklüyse provider not registered hatası alınıyor.
Projeyi x86a 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 Studiodan 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 Accessi seçebilirsin.
Eğer yine hata çıkarsa Visual Studioyu yönetici olarak çalıştırmayı deneyebilir veya IDEyi 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 stringin 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:21Hepsini denedim kontrol ettim ama olmadı , whatssapp üzerinden ya da istediğiniz bir platform üzerinden yardımcı olabilir misiniz ücreti karşılığında