.NET TE aktif datasource kullanımı (Bindingsource)
Merhaba arkadaşlar,
Database tasarım projemde hocamız basit bir uygulama yaparak veritabanımıza bağlanmamızı ve işlemler yapmamızı istedi. Bende ilk defa 2,5 sene yaptığım uygulamayı tekrar yapma fırsatı buldum.
Efendim malumunuz .net te güzel bir teknoloji var. Ado.net ile beraber gelen bu teknolojide uygulamamız runtime (çalışma zamanında) bağlandığı veritabanın kopyasını ram'e alıyor ve işlemlerimizi ilk planda burda yapmamıza izin veriyor ve sonunda veritabanına kaydediyor. Bu teknolojiyi 3 temel araç ile kullanabiliyoruz.
DATAADAPTER: Bu araç tabiri caiz ise bir adaptör gibi veritabanına bağlanıyor yani veritabanı ile uygulamamız arasında köprü.
DATASET: Veritabanın şablonu olup veritabanındaki tablolarının uygulamada datatable versiyonlarını üretiyor.
BINDING SOURCE: Ram' e yazılan bilgi ile calışıyor.Adaptör vasıtası ile değişen bilgileri veritabanına atmamıza yarıyor.
Şimdi temel işlemleri nasıl yaparız sorusuna gelelim;
Şekildeki gibi form üretelim. Add Data Source tarafında veritabanına bağlanıp datasetimizi olusturalım. DataGridview üzerinde ok'a basarak datasource ProjectDataSource dan üretiğimiz dataset üzerindeki tabloyu secelim. Bendeki tabloda weekno,club,goal,point var. Bunları yaptıktan sonra üst tarafta eklediğimiz textboxlarımızın özellikler kısmına gelip data sekmesinin databindings kısmında text alanına geliyoruz ve burada textbox'ın tablodaki hangi kolona karşılık gelmesini istiyorsak onu seçiyoruz. Uygulamayı çalıştırdığımızda gridviewde hangi satırı seçti isek ona ait bilgilerin aynı şekilde textboxlarda olduğunu göreceksiniz. Bu güzel haber. Şimdi işlemlere geçelim.
Insert: Burada önce ram üzerindeki mevcut kayıtlara bağlı olduğumuz için kayıt eklemek istediğimizi belirtmemiz gerekiyor.Bunu da;
playerRecordBindingSource.AddNew(); --- PlayerRecord ismi otomatik oluşturulmuş ismidir.
Sonra textboxlar boşalır ve akabinde textboxlara veri gireriz.Bittikten sonra
playerRecordBindingSource.EndEdit();
deriz. Bu şekilde verimizi Ram'e yazdık. Ancak henüz veritabanına gitmedi. Göndermek için adaptörü kullanıyoruz
player_RecordTableAdapter.Update(this.ceit_390_ProjeDataSet.Player_Record);
bu şekilde ram de değişmiş datatable deki veriler veritabanına yazılıyor.
UPDATE: Burada insert deki addNew kullanılmaz zaten textbox a otomatik bağlıdır. Dolayısıyla direk EndEdit deriz ve Update komutu ile datatable 'ı veritabanına yazdırırız.
DELETE: Burada seçili kaydı silmek için;
playerRecordBindingSource.RemoveCurrent();
diyerek önce hafızadan sonra
player_RecordTableAdapter.Update(this.ceit_390_ProjeDataSet.Player_Record);
tamamen veritabanından sileriz.
Umarım faydalı olmuştur.
Not:Resimde combobox var siz textbox koyarsınız. :D
Database tasarım projemde hocamız basit bir uygulama yaparak veritabanımıza bağlanmamızı ve işlemler yapmamızı istedi. Bende ilk defa 2,5 sene yaptığım uygulamayı tekrar yapma fırsatı buldum.
Efendim malumunuz .net te güzel bir teknoloji var. Ado.net ile beraber gelen bu teknolojide uygulamamız runtime (çalışma zamanında) bağlandığı veritabanın kopyasını ram'e alıyor ve işlemlerimizi ilk planda burda yapmamıza izin veriyor ve sonunda veritabanına kaydediyor. Bu teknolojiyi 3 temel araç ile kullanabiliyoruz.
DATAADAPTER: Bu araç tabiri caiz ise bir adaptör gibi veritabanına bağlanıyor yani veritabanı ile uygulamamız arasında köprü.
DATASET: Veritabanın şablonu olup veritabanındaki tablolarının uygulamada datatable versiyonlarını üretiyor.
BINDING SOURCE: Ram' e yazılan bilgi ile calışıyor.Adaptör vasıtası ile değişen bilgileri veritabanına atmamıza yarıyor.
Şimdi temel işlemleri nasıl yaparız sorusuna gelelim;
Şekildeki gibi form üretelim. Add Data Source tarafında veritabanına bağlanıp datasetimizi olusturalım. DataGridview üzerinde ok'a basarak datasource ProjectDataSource dan üretiğimiz dataset üzerindeki tabloyu secelim. Bendeki tabloda weekno,club,goal,point var. Bunları yaptıktan sonra üst tarafta eklediğimiz textboxlarımızın özellikler kısmına gelip data sekmesinin databindings kısmında text alanına geliyoruz ve burada textbox'ın tablodaki hangi kolona karşılık gelmesini istiyorsak onu seçiyoruz. Uygulamayı çalıştırdığımızda gridviewde hangi satırı seçti isek ona ait bilgilerin aynı şekilde textboxlarda olduğunu göreceksiniz. Bu güzel haber. Şimdi işlemlere geçelim.Insert: Burada önce ram üzerindeki mevcut kayıtlara bağlı olduğumuz için kayıt eklemek istediğimizi belirtmemiz gerekiyor.Bunu da;
playerRecordBindingSource.AddNew(); --- PlayerRecord ismi otomatik oluşturulmuş ismidir.
Sonra textboxlar boşalır ve akabinde textboxlara veri gireriz.Bittikten sonra
playerRecordBindingSource.EndEdit();
deriz. Bu şekilde verimizi Ram'e yazdık. Ancak henüz veritabanına gitmedi. Göndermek için adaptörü kullanıyoruz
player_RecordTableAdapter.Update(this.ceit_390_ProjeDataSet.Player_Record);
bu şekilde ram de değişmiş datatable deki veriler veritabanına yazılıyor.
UPDATE: Burada insert deki addNew kullanılmaz zaten textbox a otomatik bağlıdır. Dolayısıyla direk EndEdit deriz ve Update komutu ile datatable 'ı veritabanına yazdırırız.
DELETE: Burada seçili kaydı silmek için;
playerRecordBindingSource.RemoveCurrent();
diyerek önce hafızadan sonra
player_RecordTableAdapter.Update(this.ceit_390_ProjeDataSet.Player_Record);
tamamen veritabanından sileriz.
Umarım faydalı olmuştur.
Not:Resimde combobox var siz textbox koyarsınız. :D
Arkadaşlar unutmuşum,
YanıtlaSilİşlem yaptığınız tablonun muhakkak primary key'i olsun yoksa uygulamayı kızdırırsınız.Çalışmaz bi dene primary key ekleyin muhakkak.