Aracılığıyla paylaş


AcceptChanges ve RejectChanges

Değişikliklerin doğruluğunu DataTable içindeki verilerde doğruladıktan sonra, AcceptChanges, DataRow, veya DataTable yöntemini kullanarak değişiklikleri kabul edebilirsiniz, bu da DataSet satır değerlerini Current değerleri olarak ayarlayacak ve Original özelliğini RowState olarak ayarlayacaktır. Değişiklikleri kabul etmek veya reddetmek, tüm RowError bilgileri temizler ve özelliğini HasErrors olarak ayarlar. Değişiklikleri kabul etmek veya reddetmek, veri kaynağındaki verilerin güncelleştirilmesini de etkileyebilir. Daha fazla bilgi için bkz . DataAdapters ile Veri Kaynaklarını Güncelleştirme.

DataTable'da yabancı anahtar kısıtlamaları varsa, AcceptChanges ve RejectChanges kullanılarak kabul edilen veya reddedilen değişiklikler, ForeignKeyConstraint.AcceptRejectRule'a göre DataRow öğesinin alt satırlarına yayılır. Daha fazla bilgi için bkz. DataTable Kısıtlamaları.

Aşağıdaki örnek hata içeren satırları denetler, uygun olduğunda hataları çözer ve hatanın çözümlenemediği satırları reddeder. Düzeltilmiş hatalar için değerin RowError boş bir dizeye sıfırlandığını ve özelliğin HasErrorsfalse olarak ayarlanmasına neden olduğunu unutmayın. Hataları olan tüm satırlar çözümlendiğinde veya reddedildiğinde, DataTable'ın tamamı için tüm değişiklikler kabul edilir, bu amaçla AcceptChanges çağrılır.

If workTable.HasErrors Then
  Dim errRow As DataRow

  For Each errRow in workTable.GetErrors()

    If errRow.RowError = "Total cannot exceed 1000." Then
      errRow("Total") = 1000
      errRow.RowError = ""    ' Clear the error.
    Else
      errRow.RejectChanges()
    End If
  Next
End If

workTable.AcceptChanges()
if (workTable.HasErrors)
{

  foreach (DataRow errRow in workTable.GetErrors())
  {
    if (errRow.RowError == "Total cannot exceed 1000.")
    {
      errRow["Total"] = 1000;
      errRow.RowError = "";    // Clear the error.
    }
    else
      errRow.RejectChanges();
  }
}

workTable.AcceptChanges();

Ayrıca bakınız