次の方法で共有


AcceptChange と RejectChange

DataTable内のデータに加えられた変更の精度を確認した後は、AcceptChangesDataRow、またはDataTableDataSetメソッドを使用して変更を受け入れることができ、現在の行の値がの値に設定され、RowState プロパティが [変更なし] に設定されます。 変更を受け入れるか拒否すると 、RowError 情報がクリアされ、 HasErrors プロパティが false に設定 されます。 変更を受け入れるか拒否すると、データ ソース内のデータの更新にも影響する可能性があります。 詳細については、「 DataAdapters を使用したデータ ソースの更新」を参照してください。

DataTable に外部キー制約が存在する場合、AcceptChanges と RejectChanges を使用して受け入れられた変更または拒否された変更は、ForeignKeyConstraint.AcceptRejectRule に従って DataRow の子行に反映されます。 詳細については、「 DataTable 制約」を参照してください。

次の例では、エラーのある行をチェックし、該当する場合はエラーを解決し、エラーを解決できない行を拒否します。 解決されたエラーの場合、 RowError 値が空の文字列にリセットされ、 HasErrors プロパティが false に設定されることに注意 してください。 エラーのあるすべての行が解決または拒否されると、DataTable 全体のすべての変更を受け入れるために AcceptChanges が呼び出されます。

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();  

こちらも参照ください