Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Uyarı
Sınıf DataSet 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ümeleri başarısı kanıtlanmış bir teknoloji olsa da, yeni .NET uygulamaları için önerilen yaklaşım Entity Framework Core kullanmaktır. 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.
Bu makalede.NET Framework veri kümelerindeki tablolardaki verileri sorgulama ve düzenleme işlemleri açıklanmaktadır. Veri tablolarındaki verileri, herhangi bir veritabanındaki tabloları düzenlediğiniz gibi düzenleyebilirsiniz. Tabloya kayıt ekleyebilir, güncelleştirebilir ve silebilirsiniz. Veriye bağlı bir formda, hangi alanların kullanıcı tarafından düzenlenebilir olduğunu belirtebilirsiniz.
Bu gibi durumlarda, veri bağlama altyapısı değişiklikleri veritabanına geri gönderebilmek için tüm değişiklik izlemeyi işler. Verileri program aracılığıyla düzenliyorsanız ve değişiklikleri veritabanına geri göndermek istiyorsanız, değişiklik izlemeyi yapacak nesneleri ve yöntemleri kullanmanız gerekir.
Gerçek verileri değiştirmeye ek olarak, belirli veri satırlarını döndürmek için bir DataTable sorgulayabilirsiniz. Örneğin, tek tek satırları, satırların özgün veya önerilen sürümlerini, değiştirilen satırları veya hata içeren satırları sorgulayabilirsiniz.
Önkoşullar
Visual Studio'yu kullanarak .NET Framework veri kümelerindeki verileri sorgulamak ve düzenlemek için şunları yapmanız gerekir:
- Visual Studio'da yüklü .NET masaüstü geliştirmeve Veri depolama ve işleme iş yükleri. Daha fazla bilgi için bkz. Visual Studio'yu değiştirme.
- C# veya Visual Basic (VB) .NET Framework projesi oluşturuldu.
- SQL Server Express LocalDB veritabanından oluşturulan veri kümesi.
Veri kümesindeki satırları düzenleme
içinde DataTablevar olan bir satırı düzenlemek için, düzenlemek istediğiniz satırı bulmanız DataRow ve ardından güncelleştirilmiş değerleri istenen sütunlara atamanız gerekir.
Düzenlemek istediğiniz satırın dizinini bilmiyorsanız birincil anahtara FindBy göre arama yapmak için yöntemini kullanın.
NorthwindDataSet.CustomersRow customersRow =
northwindDataSet1.Customers.FindByCustomerID("ALFKI");
customersRow.CompanyName = "Updated Company Name";
customersRow.City = "Seattle";
Satır dizinini bildiğinizde, satıra erişmek ve satırı düzenlemek için bu dizini kullanabilirsiniz.
northwindDataSet1.Customers[4].CompanyName = "Updated Company Name";
northwindDataSet1.Customers[4].City = "Seattle";
Veri kümesine yeni satırlar ekleme
Veriye bağlı denetimleri kullanan uygulamalar genellikle BindingNavigator denetimindekiYeni Ekle düğmesini kullanarak yeni kayıtlar ekler.
Yeni bir kaydı veri kümesine eklemek için NewRow yöntemi DataTable çağırabilirsiniz. Ardından, satırı koleksiyona DataRow (Rows) ekleyin.
NorthwindDataSet.CustomersRow newCustomersRow =
northwindDataSet1.Customers.NewCustomersRow();
newCustomersRow.CustomerID = "ALFKI";
newCustomersRow.CompanyName = "Alfreds Futterkiste";
northwindDataSet1.Customers.Rows.Add(newCustomersRow);
Veri tablosundan kayıtları silme
DataRow öğesini, Remove'nin DataRowCollection yöntemini çağırarak veya Delete nesnesinin DataRow yöntemini çağırarak silebilirsiniz.
Remove yöntemi, satırı koleksiyondan kaldırır. Uygulamanızın güncelleştirmeleri bir veri kaynağına geri göndermesi gerekmiyorsa, ile Removeveri satırı koleksiyonuna doğrudan erişerek kayıtları kaldırabilirsiniz.
Buna karşılık, Delete yöntemi aslında DataRow öğesini kaldırmaz, ancak silinmek üzere işaretler. Gerçek kaldırma, AcceptChanges yöntemini çağırdığınızda gerçekleşir. Gerçekten silmeden önce hangi satırların kaldırılmak üzere işaretleneceğini program aracılığıyla de kontrol edebilirsiniz.
Veri kümesinin veri kaynağına güncellemeler göndermesi için gereken bilgileri korumak amacıyla Delete yöntemini kullanarak DataRow öğesini veri tablosundan kaldırın. Uygulamanız TableAdapter veya DataAdapter kullanıyorsa, Update yöntemi RowState değeri Deleted olan satırları siler.
Aşağıdaki örnek, tablodaki ilk satırı silindi olarak işaretlemek için Delete yönteminin nasıl çağrılacağını gösterir:
Uyarı
Eğer bir DataRowCollection öğesinin count özelliğini alırsanız, sonuçta elde edilen sayı silinmek üzere işaretlenmiş kayıtları da içerir. Silinmek üzere işaretlenmemiş kayıtların doğru sayısını almak için koleksiyonda döngü yapabilir ve her kaydın özelliğine RowState bakabilirsiniz. Silinmek üzere işaretlenmiş kayıtlarda RowState ve Deleted bulunur. Alternatif olarak, satır durumuna göre filtreleyen bir veri kümesinin veri görünümünü oluşturabilir ve bu veri kümesinden count özelliğini alabilirsiniz.
Değiştirilen satırlar olup olmadığını belirle
Bir veri kümesindeki kayıtlarda değişiklik yaptığınızda, siz bunları işleyene kadar bu değişikliklerle ilgili bilgiler depolanır. Bir veri kümesinin veya veri tablosunun AcceptChanges yöntemini çağırdığınızda ya da bir veya veri bağdaştırıcısının UpdateTableAdapter yöntemini çağırdığınızda değişiklikleri işlersiniz.
Değişiklikler her veri satırında iki şekilde izlenir:
Her veri satırı, örneğin RowState, Added, Modified veya Deleted gibi kendi Unchanged ile ilgili bilgiler içerir.
Değiştirilen her veri satırı birden çok sürüm içerir. , DataRowVersion değişikliklerden önceki özgün sürümü ve değişikliklerden sonra geçerli sürümü içerir. Bir değişiklik beklenirken RowChanging olayına yanıt verebilirsiniz; üçüncü önerilen bir sürüm de kullanılabilir.
Değiştirilen satırları denetlemek için bir veri kümesinin HasChanges yöntemini çağırın. yöntemi, veri kümesinde değişiklik yapıldıysa döndürür true . Değişikliklerin mevcut olduğunu belirledikten sonra, değişmiş satırların bir kümesini döndürmek için bir GetChanges veya DataSet'nin DataTable yöntemini çağırabilirsiniz.
Aşağıdaki örnek, HasChanges yönteminden elde edilen dönüş değerini kontrol ederek NorthwindDataset1 içinde değiştirilmiş satır olup olmadığını nasıl algılayabileceğinizi gösterir.
if (northwindDataSet1.HasChanges())
{
// Changed rows were detected, add appropriate code.
}
else
{
// No changed rows were detected, add appropriate code.
}
Değişikliklerin türünü belirleme
Sabit listesindeki DataRowState bir değeri HasChanges yöntemine geçirerek bir veri kümesinde ne tür değişiklikler yapıldığını kontrol edebilirsiniz.
Aşağıdaki örnek, yeni satır eklenip eklenmediğini belirlemek için veri kümesinin NorthwindDataset1 nasıl denetleneceğini gösterir.
if (northwindDataSet1.HasChanges(DataRowState.Added))
{
// New rows have been added to the dataset, add appropriate code.
}
else
{
// No new rows have been added to the dataset, add appropriate code.
}
Hataları olan satırları bulma
Tek tek sütunlarla ve veri satırlarıyla çalışırken hatalarla karşılaşabilirsiniz. Hataların bir HasErrors, DataSet veya DataTable içinde olup olmadığını belirlemek için DataRow özelliğini kontrol edebilirsiniz.
Veri kümesinin HasErrors özelliği true ise, hata içeren satırları bulmak için önce tablo koleksiyonları arasında, ardından satırlar arasında yineleyin.
private void FindErrors()
{
if (dataSet1.HasErrors)
{
foreach (DataTable table in dataSet1.Tables)
{
if (table.HasErrors)
{
foreach (DataRow row in table.Rows)
{
if (row.HasErrors)
{
// Process error here.
}
}
}
}
}
}
İlgili içerik
- Visual Studio'daki veri kümesi araçları