İzlenecek yol: Verileri Bir Veritabanına Kaydetme (Birden Çok Tablo)
Uygulama geliştirmede en sık kullanılan senaryolar veri bir Windows uygulaması bir biçimde görüntülemek, kayıt verilerini düzenleyin ve güncelleştirilmiş veriler veritabanına göndermek için biridir.Bu kılavuz kaydını düzenlemek ve veritabanına değişiklikleri kaydetmek nasıl gösterir ve iki ilgili tablodaki verileri görüntüleyen bir form oluşturur.Bu örnek kullanır Customers ve Orders Northwind örnek veritabanı tablolarından.
Çağırarak uygulamanızda veritabanına veri kaydedebilirsiniz Update birTableAdapter yöntemi.Öğeleri sürükleyerek veri kaynakları penceresinde, kod verileri kaydetmek için bir forma bırakılan ilk tablonun otomatik olarak eklenir.Forma eklenen ek tabloları veri kaydetmek için gereken herhangi bir kod el ile eklenmesi gerekir.Bu kılavuz birden fazla tablosundan güncelleştirmeleri kaydetmek için kod eklemek nasıl gösterir.
[!NOT]
Gördüğünüz iletişim kutuları ve menü komutları, etkin ayarlarınıza ve ürün sürümüne bağlı olarak Yardım menüsünde açıklanana göre farklılık gösterebilir.Ayarlarınızı değiştirmek için Araçlar menüsünden İçeri ve Dışarı Aktarma Ayarları'nı seçin.Daha fazla bilgi için Visual Studio'da Geliştirme Ayarlarını özelleştirme.
Bu izlenecek yolda gösterilen görevler aşağıdakileri içerir:
Yeni bir Windows Uygulaması projesi oluşturma.
Oluşturma ve uygulamanızda ile bir veri kaynağını yapılandırma Veri Kaynağı Yapılandırma Sihirbazı.
Öğeler denetimleri ayarı Veri Kaynakları Penceresi.Daha fazla bilgi için Nasıl yapılır: Veri Kaynakları Penceresinden Sürüklendiğinde Denetimin Oluşturulmasını Ayarlama.
Veri bağlama denetimleri öğelerinden sürükleyerek oluşturma veri kaynakları formunuz penceresinden.
Birkaç her tablo veri kümesindeki kayıtları değiştirme.
Güncelleştirilmiş veri kümesindeki veritabanına göndermek için kod değiştirme.
Önkoşullar
Bu kılavuz tamamlamak için gerekir:
- Northwind örnek veritabanına erişim.Daha fazla bilgi için Nasıl Yapılır: Örnek Veritabanları Yükleme.
Windows Uygulaması Oluşturma
İlk adım Windows Uygulaması oluşturmaktır.Projeye ad atamak bu adımda isteğe bağlıdır, ancak daha sonra kaydetmeyi planladığımız için projeye bir ad vereceğiz.
Yeni bir Windows Uygulaması projesi oluşturmak için
Öğesinden Dosya menüsü, yeni bir proje oluşturun.
Proje adı UpdateMultipleTablesWalkthrough.
Windows Uygulaması'nı seçin ve Tamam'a tıklayın.Daha fazla bilgi için .NET Framework ile İstemci Uygulamaları Geliştirme.
UpdateMultipleTablesWalkthrough Proje oluşturulur ve eklenen Çözüm Gezgini.
Veri Kaynağı Oluşturma
Bu adımı kullanarak Northwind veritabanı bir veri kaynağı oluşturur veri kaynağı Yapılandırma Sihirbazı.Bağlantıyı oluşturmak için Northwind örnek veritabanına erişiminiz olmalıdır.Northwind örnek veritabanı kurma hakkında daha fazla bilgi için bkz: Nasıl Yapılır: Örnek Veritabanları Yükleme.
Veri kaynağı oluşturmak için
Veri menüsünden Veri Kaynaklarını Göster'i tıklatın.
Veri Kaynağı Yapılandırma Sihirbazı'nı başlatmak için Veri Kaynakları penceresinde Yeni Veri Kaynağı Ekle'ye tıklayın.
Bir veri Kaynağı Türü Seç sayfasında, Veritabanı'nı seçin ve daha sonra İleri'yi tıklatın.
Üzerinde veri bağlantısı seçin aşağıdakilerden birini sayfa yapın:
Aşağı açılır listede bir veri bağlantısı Northwind örnek veritabanına kullanılabilir değilse, seçin.
-veya-
Seçin Yeni bağlantı açmak için Ekle/Değiştir bağlantı iletişim kutusu.
Veritabanına parola gerekiyorsa, hassas verileri eklemek için bir seçenek belirleyğp İleri'yi tıklatın.
Bağlantı Dizesini Uygulama Yapılandırma Dosyasına Kaydet sayfasında İleri'yi tıklatın.
Veritabanı Nesnenizi Seçin sayfasında Tablolar düğümünü genişletin.
Seçin Müşteriler ve Siparişler tabloları ve sonra Son.
NorthwindDataSet projenize eklenir ve tabloları görünür veri kaynakları pencere.
Oluşturulacak denetimleri ayarlama
Bu veriler kılavuz için içinde Customers Tablo olacak bir ayrıntıları veri içerdiği denetimleri görüntülenir nerede düzeni.Verileri Orders Tablo olacak bir Kılavuz Düzen görüntülenen bir DataGridView denetimi.
Veri Kaynakları penceresinde açılır türünü öğeler için ayarlamak için
Veri Kaynakları penceresinde Customers düğümünü genişletin.
Denetimin değiştirmek Müşteriler seçerek tek denetimleri tabloya ayrıntıları üzerinde denetim listesinden Müşteriler düğümü.Daha fazla bilgi için Nasıl yapılır: Veri Kaynakları Penceresinden Sürüklendiğinde Denetimin Oluşturulmasını Ayarlama.
Veri bağlama Form oluşturma
Veri Kaynakları penceresindeki öğeleri formunuza sürükleyerek veri bağlama denetimleri oluşturabilirsiniz.
Form üzerinde veri bağlama denetimleri oluşturmak için
Ana sürükleyin Müşteriler düğümünden veri kaynakları penceresinden Form1.
Veri ilişkili denetimleri tanımlayıcı etiketler ile birlikte araç şeridi form görünmez (BindingNavigator) kayıt gezinme.Bir NorthwindDataSet, CustomersTableAdapter, BindingSource ve BindingNavigator bileşen alanında görünür.
İlgili sürükleyin Siparişler düğümünden veri kaynakları penceresinden Form1.
[!NOT]
İlgili Siparişler düğümü altında bulunur Faks sütun ve bir alt düğüm Müşteriler düğümü.
Bir DataGridView denetimi ve araç şeridi (BindingNavigator) kayıtları gezinmek için formda görünür.Bir OrdersTableAdapter ve BindingSource Bileşen alanı içinde görüntülenir.
Veritabanını güncelleştirmek için kod ekleme
Veritabanı çağırarak güncelleştirebilirsiniz Update yöntemlerinin Müşteriler ve Siparişler TableAdapters.Varsayılan olarak, bir olay işleyicisi BindingNavigator's Kaydet düğmesi veritabanına güncellemelerin formun kod öğesine eklenir.Bu yordamı başvuru bütünlüğü hataları tetiklenmeden olasılığını ortadan kaldırmak için doğru sırayla güncelleştirmelerini göndermek için bu kodu değiştirir.Kod hata işlemesini update çağrısında try-catch bloğunda kaydırma tarafından da uygular.Kod, uygulamanızın gereksinimlerine uyacak şekilde değiştirebilirsiniz.
[!NOT]
Açıklık için bu kılavuz, bir işlem kullanmaz, ancak iki veya daha fazla ilişkili tablolar güncelleştirmekte olduğunuz, bir işlemde tüm güncelleştirme mantığını içermelidir.Bir işlem, herhangi bir değişiklik uygulamadan önce bir veritabanına ilgili tüm değişiklikleri başarılı sağlar bir işlemdir.Daha fazla bilgi için Transactions and Concurrency.
Uygulama güncelleştirme mantığı eklemek için
Çift Kaydet düğmesini BindingNavigator için kod düzenleyicisinde açmak için bindingNavigatorSaveItem_Click olay işleyicisi.
Çağrılacak olay işleyicisi kodunda değiştirmek Update ilgili TableAdapters yöntemleri.Aşağıdaki kod önce her kullanıcının güncelleştirilmiş bilgilerini tutmak için üç geçici veri tabloları oluşturur DataRowState (Deleted, Added, ve Modified).Ardından güncelleştirmeleri doğru sırada çalıştırılır.Kod aşağıdaki gibi görünmelidir:
Me.Validate() Me.OrdersBindingSource.EndEdit() Me.CustomersBindingSource.EndEdit() Dim deletedOrders As NorthwindDataSet.OrdersDataTable = CType( NorthwindDataSet.Orders.GetChanges(Data.DataRowState.Deleted), NorthwindDataSet.OrdersDataTable) Dim newOrders As NorthwindDataSet.OrdersDataTable = CType( NorthwindDataSet.Orders.GetChanges(Data.DataRowState.Added), NorthwindDataSet.OrdersDataTable) Dim modifiedOrders As NorthwindDataSet.OrdersDataTable = CType( NorthwindDataSet.Orders.GetChanges(Data.DataRowState.Modified), NorthwindDataSet.OrdersDataTable) Try ' Remove all deleted orders from the Orders table. If Not deletedOrders Is Nothing Then OrdersTableAdapter.Update(deletedOrders) End If ' Update the Customers table. CustomersTableAdapter.Update(NorthwindDataSet.Customers) ' Add new orders to the Orders table. If Not newOrders Is Nothing Then OrdersTableAdapter.Update(newOrders) End If ' Update all modified Orders. If Not modifiedOrders Is Nothing Then OrdersTableAdapter.Update(modifiedOrders) End If NorthwindDataSet.AcceptChanges() Catch ex As Exception MsgBox("Update failed") Finally If Not deletedOrders Is Nothing Then deletedOrders.Dispose() End If If Not newOrders Is Nothing Then newOrders.Dispose() End If If Not modifiedOrders Is Nothing Then modifiedOrders.Dispose() End If End Try
this.Validate(); this.ordersBindingSource.EndEdit(); this.customersBindingSource.EndEdit(); NorthwindDataSet.OrdersDataTable deletedOrders = (NorthwindDataSet.OrdersDataTable) northwindDataSet.Orders.GetChanges(DataRowState.Deleted); NorthwindDataSet.OrdersDataTable newOrders = (NorthwindDataSet.OrdersDataTable) northwindDataSet.Orders.GetChanges(DataRowState.Added); NorthwindDataSet.OrdersDataTable modifiedOrders = (NorthwindDataSet.OrdersDataTable) northwindDataSet.Orders.GetChanges(DataRowState.Modified); try { // Remove all deleted orders from the Orders table. if (deletedOrders != null) { ordersTableAdapter.Update(deletedOrders); } // Update the Customers table. customersTableAdapter.Update(northwindDataSet.Customers); // Add new orders to the Orders table. if (newOrders != null) { ordersTableAdapter.Update(newOrders); } // Update all modified Orders. if (modifiedOrders != null) { ordersTableAdapter.Update(modifiedOrders); } northwindDataSet.AcceptChanges(); } catch (System.Exception ex) { MessageBox.Show("Update failed"); } finally { if (deletedOrders != null) { deletedOrders.Dispose(); } if (newOrders != null) { newOrders.Dispose(); } if (modifiedOrders != null) { modifiedOrders.Dispose(); } }
Uygulamayı Test Etme
Uygulamayı test etmek için
F5 tuşuna basın.
Bir veya daha fazla kayıt her tablodaki veri bazı değişiklikler yapın.
Bas Kaydet düğmesine tıklayın.
Değişiklikler kaydedildi doğrulamak için veritabanında değerlerini denetleyin.
Sonraki Adımlar
Uygulama gereksinimlerinize bağlı olarak, veri bağlama form Windows uygulamanızı oluşturduktan sonra gerçekleştirmek istediğiniz birkaç adım vardır.Bu izlenecek yolda yapabileceğiniz bazı geliştirmeler şunlardır:
Arama işlevi için form ekleniyor.Daha fazla bilgi için Nasıl yapılır: Bir Windows Forms Uygulamasına Parametreli bir Sorgu Ekleme.
Veritabanı nesne eklemek veya çıkartmak için veri kaynağı düzenleme.Daha fazla bilgi için Nasıl Yapılır: Bir Veri Kümesini Düzenleme.
Ayrıca bkz.
Kavramlar
Visual Studio'da Verilere Windows Forms Denetimleri Bağlama
Uygulamanızı Veri Almaya Hazırlama
Visual Studio'da Verilere Denetimler Bağlama
Uygulamanızdaki Verileri Düzenleme