.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 false ayarlanı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:
Yeni bir kayıt oluşturup koleksiyona ekleyerek istediğinize DataTable Rows yeni DataRow kayıtlar ekleyin.
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ırRegion
.// 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 ,
CommandType
veCommandText
ö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();