.NET Framework uygulamalarında veritabanına yeni kayıtlar ekleme

Bir .NET Framework projesinde ADO.NET olan bir veritabanına yeni kayıtlar eklemek için, ortak yaklaşım TableAdapter yöntemlerini kullanmaktır. TableAdapters, uygulamanız ve veritabanınız arasında iletişimi etkinleştirir. Bunlar, uygulamanızın gereksinimlerine bağlı olarak veritabanına yeni kayıtlar eklemek için farklı yollar sağlar. Yöntemini veya TableAdapter DBDirect yöntemlerinden birini (özellikle yöntemiTableAdapter.Insert) kullanabilirsinizTableAdapter.Update.

Bu makalede, Visual Basic (VB) veya C# kullanarak ADO.NET ve .NET Framework ile oluşturulmuş bir uygulamanın veritabanına nasıl kayıt ekleneceğini açıklar. Uygulama yapılandırmanız Entity Framework 6 kullanıyorsa bkz . Bağlama yeni varlık ekleme veya Entity Framework Core için bkz . Veri ekleme.

Not

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

Önkoşullar

  • TableAdapter yöntemleriyle çalışmak için kullanılabilir bir örneğinin olması gerekir. Daha fazla bilgi için bkz . .NET Framework uygulamalarında TableAdapters oluşturma ve yapılandırma.

  • .NET güvenliği: Bağlanmaya çalıştığınız veritabanına erişiminiz ve istenen tabloya ekleme gerçekleştirme izniniz olmalıdır.

Ekleme yöntemini seçme

Uygulama senaryonuza göre veritabanına kayıt eklemek için farklı yaklaşımlar vardır. Aşağıdaki tabloda seçenekler özetlenmiştir:

Senaryo Yaklaşım Notlar
Uygulama verileri depolamak için veri kümelerini kullanır Tüm değişiklikleri veritabanına göndermek için TableAdapter.Update yöntemini kullanın Değişiklikler güncelleştirmeleri, eklemeleri ve silmeleri içerir.
Uygulama verileri depolamak için nesneleri kullanır Veritabanına yeni kayıtlar eklemek için TableAdapter.Insert yöntemini kullanın Bu yaklaşım, yeni kayıt oluşturma üzerinde daha iyi denetim sahibi olmanıza olanak tanır.
Uygulama TableAdapters kullanıyor, Insert yöntem kullanılamıyor TableAdapter GenerateDBDirectMethods özelliğini Veri Kümesi Tasarımcısı'nın içinden olarak true ayarlayın ve TableAdapter'ı yeniden oluşturmak için veri kümesini kaydedin TableAdapter'ınızın bir Insert yöntemi yoksa, TableAdapter saklı yordamları kullanacak şekilde yapılandırılır veya GenerateDBDirectMethods özelliği olarak falseayarlanır.
Insert TableAdapter yeniden oluşturulduktan sonra yöntem kullanılamaz durumda kalırsa, tablo büyük olasılıkla tek tek satırları ayırt etmek için yeterli şema bilgisi sağlamaz (örneğin, tabloda birincil anahtar ayarlı olmayabilir).
Uygulama TableAdapters kullanmıyor Veritabanına yeni kayıtlar eklemek için komut nesnelerini kullanma Örnek: SqlCommand

TableAdapters kullanarak yeni kayıtlar ekleme

Uygulamanız verileri depolamak için veri kümeleri kullanıyorsa, veri kümesinde istenene DataTable yeni kayıtlar ekleyebilir ve yöntemini çağırabilirsiniz TableAdapter.Update . TableAdapter.Update yöntemi, değiştirilen ve silinen kayıtlar da DataTable dahil olmak üzere içindeki tüm değişiklikleri veritabanına gönderir.

TableAdapter.Update yöntemiyle yeni kayıtlar ekleme

Aşağıdaki yordam, yöntemini kullanarak veritabanına yeni kayıtların nasıl ekleyebileceğinizi TableAdapter.Update gösterir:

  1. Yeni bir kayıt oluşturup koleksiyona ekleyerek istediğinize DataTable Rows yeni DataRow kayıtlar ekleyin.

  2. yeni satırları öğesine DataTableekledikten sonra yöntemini çağırın TableAdapter.Update . Aşağıdaki parametre değerlerinden birini geçirerek güncelleştirilecek veri miktarını denetleyebilirsiniz:

    Aşağıdaki kod, veritabanına yeni kayıt DataTable eklemeyi ve ardından yeni satırı veritabanına kaydetmek için yöntemini çağırmayı TableAdapter.Update gösterir. Bu örnekte Northwind veritabanındaki tablo kullanılır Region .

    // Create a new row.
    NorthwindDataSet.RegionRow newRegionRow;
    newRegionRow = northwindDataSet.Region.NewRegionRow();
    newRegionRow.RegionID = 5;
    newRegionRow.RegionDescription = "NorthWestern";
    
    // Add the row to the Region table
    this.northwindDataSet.Region.Rows.Add(newRegionRow);
    
    // Save the new row to the database
    this.regionTableAdapter.Update(this.northwindDataSet.Region);
    

TableAdapter.Insert yöntemiyle yeni kayıtlar ekleme

Uygulamanız verileri depolamak için nesneleri kullanıyorsa, doğrudan veritabanında yeni satırlar oluşturmak için yöntemini kullanabilirsiniz TableAdapter.Insert . yöntemi, Insert her sütun için tek tek değerleri parametre olarak kabul eder. yöntemini çağırdığınızda, veritabanına geçirilen parametre değerleriyle yeni bir kayıt eklenir.

  • TableAdapter'ın Insert yöntemini çağırın ve her sütunun değerlerini parametre olarak geçirin.

Aşağıdaki yordamda, satır eklemek için yönteminin TableAdapter.Insert nasıl kullanılacağı gösterilmektedir. Bu örnek, Northwind veritabanındaki Region tabloya veri ekler.

Not

Kullanılabilir bir örneğiniz yoksa, kullanmak istediğiniz TableAdapter örneğini oluşturun.

NorthwindDataSetTableAdapters.RegionTableAdapter regionTableAdapter = 
    new NorthwindDataSetTableAdapters.RegionTableAdapter();

regionTableAdapter.Insert(5, "NorthWestern");

Komut nesneleriyle yeni kayıtlar ekleme

Komut nesnelerini kullanarak yeni kayıtları doğrudan veritabanına ekleyebilirsiniz.

  • Yeni bir komut nesnesi oluşturun ve ardından , CommandTypeve CommandText özelliklerini ayarlayınConnection.

Aşağıdaki yordamda, komut nesnesi kullanılarak veritabanına kayıtların nasıl ekileceği gösterilmektedir. Bu örnek, Northwind veritabanındaki Region tabloya veri ekler.

System.Data.SqlClient.SqlConnection sqlConnection1 = 
    new System.Data.SqlClient.SqlConnection("YOUR CONNECTION STRING");

System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand();
cmd.CommandType = System.Data.CommandType.Text;
cmd.CommandText = "INSERT Region (RegionID, RegionDescription) VALUES (5, 'NorthWestern')";
cmd.Connection = sqlConnection1;

sqlConnection1.Open();
cmd.ExecuteNonQuery();
sqlConnection1.Close();