Bugün C# programlama dilini kullanarak Access veritabanına nasıl kayıt ekleyebileceğimizi adım adım anlatmaya çalışacağım. Uygulamalarınızda özellikle çok büyük verilerle çalışmıyorsanız, Access veritabanını kullanmak Sql veritabanını kullanmaktan daha kullanışlı olabilmekte.
Uygulamamıza Access içerisinde kutuphane isminde bir veritabanı ve kitaplar isminde bir tablo oluşturarak başlayalım. Tablonun genel yapısını aşağıdaki gibi olacak.

Tablomuzda görüldüğü üzere kitapid alanını Primary Key ve değeri Otomatik Sayı olacak şekilde ayarladık. Şimdi yeni bir Form Uygulaması açarak projemizi oluşturmaya başlayabiliriz. Veritabanını her zaman projenizin ana dizini içerisine taşımakta fayda var.

Şimdide formumuzu veritabanında ki alanlara uygun olacak şekilde aşağıdaki gibi tasarlayalım.

Formda hazır olduğuna göre sıra veritabanına kayıt eklemek için gerekli olan kodlara geldi. Projemizde halihazırda System.Data namespace’i ekli olarak gelmesi lazım. Sonrasında Access veritabanıyla çalıştığımız için System.Data.OleDb namespace’ini de ayrıca projemize ekliyoruz.
using System.Data;
using System.Data.OleDb;
Şimdi Kaydet butonuna tıkladığımızda çalışacak olan kodlarımızı yazabiliriz.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
private void btnKaydet_Click(object sender, EventArgs e) { string vtyolu = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=kutuphane.accdb;Persist Security Info=True"; OleDbConnection baglanti = new OleDbConnection(vtyolu); baglanti.Open(); string ekle = "insert into kitaplar(kitapadi,yazari,yayinevi,turu,basimyili) values (@kitapadi,@yazari,@yayinevi,@turu,@basimyili)"; OleDbCommand komut = new OleDbCommand(ekle, baglanti); komut.Parameters.AddWithValue("@kitapadi", txtKitapAdi.Text); komut.Parameters.AddWithValue("@yazari", txtYazari.Text); komut.Parameters.AddWithValue("@yayinevi", txtYayinEvi.Text); komut.Parameters.AddWithValue("@turu", txtTuru.Text); komut.Parameters.AddWithValue("@basimyili", Convert.ToInt32(txtBasimTarihi.Text)); komut.ExecuteNonQuery(); } |
Kodları gereksiz detaylardan kaçınarak, en basit şekilde yazmaya çalıştım. Dikkat ettiyseniz veri girişlerini parametre kullanarak yaptık. Güvenlik sorunları nedeniyle kodlarınızı bu şekilde yazmanızı tavsiye ederim.
C# ile Access veritabanına kayıt ekleme işlemi yazım burada sona erdi. Kolay gelsin.
Merhaba,
bu yapıyı aynen kullanıyorum ama sürekli “Syntax error in INSERT INTO statement” hatası alıyorum.
Sebebi ne olabilir ?
Ali hocam merhaba öncelikle insert into bir tabloya kayıt eklemek için kullanılır. access veritabanındaki tablo adınızın kitaplar olup olmadığını kontrol edin
Aynı yapıyı kullanıyorum ancak yaptığım kayıtlar accesste görüntülenmiyor. Verileri accesste kalıcı hale nasıl getirebilirim?
merhabalar benm 1 sorum olucak
benm veritabanımda 1 den fazla tablo olucak istediğim tabloya eklemeyi nasıl yapabilirim
yardımcı olursanız cok sevinirim
“insert into kitaplar” kitaplar yazan satırı tablonun ismiyle değiştirmen ve tablodaki sütunları(“kitapadi,yazari,yayinevi,turu,basimyili”) girmen yeterli
sütünlar senin sütünların olucak kardeşim.
ben access 2016 kullanıyorum ama c#ile veritabanı bağlantısı kuramıyorumProvider=Microsoft.ACE.OLEDB.12.0;Data source= bu kısımda hata veriyor sanırım burdaki kod access 2016 da değişik bu konu hakkında bilginiz varmı
kütüphane.accdb veritabanını Solution Explorer da nasıl gösterdiniz ? acces 2016 da veritabanı oluşturuyorum ancak hata alıyorum bilen acil yardımcı olabilir mi?
System.Data.OleDb.OleDbException was unhandled
Syntax error in INSERT INTO statement.
hatasını alıyorum , tablo ismimi doğru yazdım , problem nedir ?
Merabalar database e döngü ile kayıt eklemek mümkün müdür?
Şöyle ki 110 kişiden oluşan bir yoklama ekranım var ben bunların durumlarını ( var/yok/izinli ) radiobutton ile seçip databese kaydetmek istiyorum. Bu işlemi döngü ile yapabilir miyim? Yoksa her bir kişi için birer kod yazmak zorunda mıyım?
An unhandled exception of type ‘System.InvalidOperationException’ occurred in System.Data.dll
Arkadaşlar bu hatayı alıyorum çözümü nasıl olabilir.
Merhabalar komut.ExecuteNonQuery(); satırında hata veriyor.
Accessi , bir üst klasöre(debug) çıkarmalısın , daha sonrada connection verdiğin yerde “../” veritabanı isminin yanına bir üst klasörde olduğunu yazmalısın.