.NET Framework uygulamalarında Windows Forms denetimlerini verilere bağlama

Uyarı

Sınıf DataSet ve ilgili sınıflar, uygulamaların veritabanıyla bağlantısı kesilirken uygulamaların bellekteki verilerle çalışmasını sağlayan 2000'lerin başlarındaki eski .NET Framework teknolojileridir. Teknolojiler özellikle kullanıcıların verileri değiştirmesine ve değişiklikleri veritabanında kalıcı hale getirebilmesine olanak tanıyan uygulamalar için kullanışlıdır. Veri kümeleri başarısı kanıtlanmış bir teknoloji olsa da, yeni .NET uygulamaları için önerilen yaklaşım Entity Framework Core kullanmaktır. Entity Framework, tablosal verilerle nesne modelleri olarak çalışmak için daha doğal bir yol sağlar ve daha basit bir programlama arabirimine sahiptir.

Verileri Windows Forms'a bağlayarak uygulamanızın kullanıcılarına veri görüntüleyebilirsiniz. Bu veriye bağlı denetimleri oluşturmak için, öğeleri Veri Kaynakları penceresinden Visual Studio'daki Windows Forms Tasarımcısı'na sürükleyin.

Veri Kaynağı sürükleme işlemi

Tavsiye

Veri Kaynakları penceresi görünmüyorsa,Diğer Windows>Veri KaynaklarınıGörüntüle'yi> seçerek veya ShiftAlt+Dtuşlarına+ basarak bu pencereyi açabilirsiniz. Veri Kaynakları penceresini görmek için Visual Studio'da açık bir projeniz olmalıdır.

Öğeleri sürüklemeden önce, bağlamak istediğiniz denetim türünü ayarlayabilirsiniz. Tablonun kendisini mi yoksa tek bir sütunu mu seçtiğinize bağlı olarak farklı değerler görüntülenir. Özel değerler de ayarlayabilirsiniz. Bir tablo için Ayrıntılar , her sütunun ayrı bir denetime bağlı olduğu anlamına gelir.

Veri kaynağını DataGridView'a bağlama

BindingSource ve BindingNavigator denetimleri

Bileşen BindingSource iki amaca hizmet eder. İlk olarak, denetimleri verilere bağlarken bir soyutlama katmanı sağlar. Formdaki denetimler, doğrudan veri kaynağı yerine bileşene bağlıdır BindingSource . İkincisi, bir nesne koleksiyonunu yönetebilir. öğesine BindingSource bir tür eklemek, bu türün listesini oluşturur.

Bileşen hakkında daha fazla bilgi için BindingSource bkz:

BindingNavigator denetimi, Bir Windows uygulaması tarafından görüntülenen veriler arasında gezinmek için bir kullanıcı arabirimi sağlar.

DataGridView denetimindeki verilere bağlama

DataGridView denetimi için tablonun tamamı bu tek denetime bağlıdır. Bir DataGridView'ı forma sürüklediğinizde, kayıtlarda (BindingNavigator) gezinmek için bir araç şeridi de görüntülenir. DataSet, TableAdapter, BindingSourceve BindingNavigator bileşen tepsisinde görünür. Aşağıdaki çizimde, Customers tablosunun Orders tablosuyla bir ilişkisi olduğundan TableAdapterManager da eklenir. Bu değişkenlerin tümü otomatik oluşturulan kodda form sınıfında özel üyeler olarak bildirilir. DataGridView'ı doldurmak için otomatik olarak oluşturulan kod olay işleyicisinde Form_Load bulunur. Veritabanını güncelleştirmek için verileri kaydetme kodu BindingNavigator olay işleyicisinde Save bulunur. Bu kodu gerektiği gibi taşıyabilir veya değiştirebilirsiniz.

BindingNavigator ile GridView

Her birinin sağ üst köşesindeki akıllı etikete tıklayarak DataGridView ve BindingNavigator'ın davranışını özelleştirebilirsiniz:

DataGridView ve Bağlama Gezgini akıllı etiketleri

Uygulamanızın ihtiyaç duyduğu denetimler Veri Kaynakları penceresinde kullanılamıyorsa, denetimler ekleyebilirsiniz. Daha fazla bilgi için bkz. Veri Kaynakları penceresine özel denetimler ekleme.

Ayrıca , denetimi verilere bağlamak için öğeleri Veri Kaynakları penceresinden formda bulunan denetimlere sürükleyebilirsiniz. Zaten verilere bağlı olan bir denetimin veri bağlamaları, en son sürüklenen öğeye sıfırlanır. Geçerli bırakma hedefleri olmak için denetimlerin , Veri Kaynakları penceresinden üzerine sürüklenen öğenin temel veri türünü görüntüleyebilmesi gerekir. Örneğin, veri türü DateTime olan bir öğeyi CheckBox üzerine sürüklemek geçerli değildir, çünkü CheckBox tarih görüntüleme yeteneğine sahip değildir.

Bireysel denetimlerdeki verilere bağlanma

Bir veri kaynağını Ayrıntılar'a bağladığınızda, veri kümesindeki her sütun ayrı bir denetime bağlanır.

Veri kaynağını ayrıntılara bağlama

Önemli

Önceki çizimde, Müşteriler tablosunun Orders özelliğinden sürüklediğinize ve Orders tablosundan sürüklemediğinize dikkat etmelisiniz. özelliğine Customer.Orders bağlanılarak DataGridView'da yapılan gezinti komutları, ayrıntılar denetimlerine hemen yansıtılır. Orders tablosundan sürüklediyseniz, denetimler yine de veri kümesine bağlı olur, ancak DataGridView ile eşitlenmez.

Aşağıdaki çizimde, Müşteriler tablosundaki Orders özelliği Veri Kaynakları penceresindeki Ayrıntılar'a bağlandıktan sonra forma eklenen varsayılan veriye bağlı denetimler gösterilmektedir.

Siparişler tablosu ayrıntılara bağlı

Her denetimin bir akıllı etiketi olduğunu da unutmayın. Bu etiket, yalnızca bu denetime uygulanan özelleştirmeleri etkinleştirir.