Aracılığıyla paylaş


İ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:

Önkoşullar

Bu kılavuz tamamlamak için gerekir:

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

  1. Öğesinden Dosya menüsü, yeni bir proje oluşturun.

  2. Proje adı UpdateMultipleTablesWalkthrough.

  3. 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

  1. Veri menüsünden Veri Kaynaklarını Göster'i tıklatın.

  2. Veri Kaynağı Yapılandırma Sihirbazı'nı başlatmak için Veri Kaynakları penceresinde Yeni Veri Kaynağı Ekle'ye tıklayın.

  3. Bir veri Kaynağı Türü Seç sayfasında, Veritabanı'nı seçin ve daha sonra İleri'yi tıklatın.

  4. Ü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.

  5. Veritabanına parola gerekiyorsa, hassas verileri eklemek için bir seçenek belirleyğp İleri'yi tıklatın.

  6. Bağlantı Dizesini Uygulama Yapılandırma Dosyasına Kaydet sayfasında İleri'yi tıklatın.

  7. Veritabanı Nesnenizi Seçin sayfasında Tablolar düğümünü genişletin.

  8. 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

  1. Veri Kaynakları penceresinde Customers düğümünü genişletin.

  2. 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

  1. 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.

  2. İ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

  1. Çift Kaydet düğmesini BindingNavigator için kod düzenleyicisinde açmak için bindingNavigatorSaveItem_Click olay işleyicisi.

  2. Ç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

  1. F5 tuşuna basın.

  2. Bir veya daha fazla kayıt her tablodaki veri bazı değişiklikler yapın.

  3. Bas Kaydet düğmesine tıklayın.

  4. 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:

Ayrıca bkz.

Kavramlar

Visual Studio'da Verilere Windows Forms Denetimleri Bağlama

Uygulamanızı Veri Almaya Hazırlama

Uygulamanıza Veri Getirme

Visual Studio'da Verilere Denetimler Bağlama

Uygulamanızdaki Verileri Düzenleme

Verileri Doğrulama

Verileri Kaydetme

Diğer Kaynaklar

Veri İzlenecek Yollar

Visual Studio'da Veri Uygulamalarına Genel Bakış

Visual Studio'da Verilere Bağlanma