次の方法で共有


DataTable.GetErrors メソッド

エラーが含まれる DataRow オブジェクトの配列を取得します。

Public Function GetErrors() As DataRow()
[C#]
public DataRow[] GetErrors();
[C++]
public: DataRow* GetErrors() [];
[JScript]
public function GetErrors() : DataRow[];

戻り値

エラーが含まれる DataRow オブジェクトの配列。

解説

DataSet クラスの GetChanges メソッドを呼び出した後、 GetErrors を呼び出します。すべてのエラーが正常に解決され、 DataSet が更新のために再送信されるまでは、 DataTableAcceptChanges を呼び出さないでください。

使用例

[Visual Basic, C#, C++] GetErrors メソッドを使用して、エラーがある DataRow オブジェクトの配列を返す例を次に示します。

 
Private Sub PrintAllErrs(ByVal myDataSet As DataSet)
   Dim rowsInError() As DataRow
   Dim myTable As DataTable  
   Dim i As Integer
   Dim myCol As DataColumn
   For Each myTable In myDataSet.Tables
      ' Test if the table has errors. If not, skip it.
      If myTable.HasErrors Then
         ' Get an array of all rows with errors.
         rowsInError = myTable.GetErrors()
         ' Print the error of each column in each row.
         For i = 0 To rowsInError.GetUpperBound(0)
            For Each myCol In myTable.Columns
               Console.WriteLine(myCol.ColumnName, _
               rowsInError(i).GetColumnError(myCol))
            Next
            ' Clear the row errors
         rowsInError(i).ClearErrors
         Next i
      End If
   Next
End Sub

[C#] 
private void PrintAllErrs(DataSet myDataSet){
   DataRow[] rowsInError; 
     
   foreach(DataTable myTable in myDataSet.Tables){
      // Test if the table has errors. If not, skip it.
      if(myTable.HasErrors){
         // Get an array of all rows with errors.
         rowsInError = myTable.GetErrors();
         // Print the error of each column in each row.
         for(int i = 0; i < rowsInError.Length; i++){
            foreach(DataColumn myCol in myTable.Columns){
               Console.WriteLine(myCol.ColumnName + " " + 
               rowsInError[i].GetColumnError(myCol));
            }
         // Clear the row errors
         rowsInError[i].ClearErrors();
         }
      }
   }
}

[C++] 
private:
 void PrintAllErrs(DataSet* myDataSet){
    DataRow* rowsInError[]; 
      
    System::Collections::IEnumerator* myEnum = myDataSet->Tables->GetEnumerator();
    while (myEnum->MoveNext())
    {
       DataTable* myTable = __try_cast<DataTable*>(myEnum->Current);
       // Test if the table has errors. If not, skip it.
       if(myTable->HasErrors){
          // Get an array of all rows with errors.
          rowsInError = myTable->GetErrors();
          // Print the error of each column in each row.
          for(int i = 0; i < rowsInError->Length; i++){
             System::Collections::IEnumerator* myEnum1 = myTable->Columns->GetEnumerator();
             while (myEnum1->MoveNext())
             {
                DataColumn* myCol = __try_cast<DataColumn*>(myEnum1->Current);
                Console::WriteLine(S"{0} {1}", myCol->ColumnName, rowsInError[i]->GetColumnError(myCol));
             }
          // Clear the row errors
          rowsInError[i]->ClearErrors();
          }
       }
    }
 }

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET

参照

DataTable クラス | DataTable メンバ | System.Data 名前空間 | AcceptChanges | HasErrors | RowError | SetColumnError