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

Dekont

Veri kümeleri 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. Bunlar ö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ümelerinin çok başarılı bir teknoloji olduğu kanıtlanmış olsa da, yeni .NET uygulamalarının Entity Framework Core kullanmasını öneririz. 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ım Aracı sürükleyin.

Data Source drag operation

Bahşiş

Veri Kaynakları penceresi görünmüyorsa, Diğer Windows>Veri Kaynaklarını Görüntüle'yi>seçerek veya Shift Alt+D tuş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.

Bind data source to DataGridView

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 Savebulunur. Bu kodu gerektiği gibi taşıyabilir veya değiştirebilirsiniz.

GridView with BindingNavigator

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

DataGridView and Binding Navigator smart tags

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ü DateTimeCheckBoxolan bir öğeyi içine sürüklemek geçerli değildir, çünkü CheckBox tarih görüntüleme özelliğine sahip değildir.

Tek tek denetimlerdeki verilere bağlama

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

Bind data source to details

Önemli

Önceki çizimde, Orders tablosundan değil Müşteriler tablosunun Orders özelliğinden sürüklediğinize dikkat edin. ö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.

Orders table bound to details

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