次の方法で共有


ConstraintCollection.CanRemove メソッド

Constraint を削除できるかどうかを示します。

Public Function CanRemove( _
   ByVal constraint As Constraint _) As Boolean
[C#]
public bool CanRemove(Constraintconstraint);
[C++]
public: bool CanRemove(Constraint* constraint);
[JScript]
public function CanRemove(
   constraint : Constraint) : Boolean;

パラメータ

  • constraint
    コレクションから削除できるかどうかを確認する Constraint

戻り値

Constraint をコレクションから削除できる場合は true 。それ以外の場合は false

解説

DataRelationDataSet に追加されるたびに、 ForeignKeyConstraintUniqueConstraint が親テーブルと子テーブルに自動的に追加されます。 UniqueConstraint が親テーブルの主キー列に適用され、 ForeignKeyConstraint が子テーブルの外部キー列に適用されます。この場合は、 UniqueConstraint を削除しようとすると、 ForeignKeyConstraint を先に削除する必要があるため、例外がスローされます。このような例外がスローされるのを防ぐため、 CanRemove メソッドを使用して、 UniqueConstraint を削除できるかどうかを確認します。

使用例

[Visual Basic, C#, C++] Constraint を削除しようとする前に、 CanRemove メソッドを使用して、この制約を削除できるかどうかを確認する例を次に示します。

 
Private Sub TryRemove(myDataSet As DataSet)
    Try
        Dim t As DataTable = myDataSet.Tables("Customers")
        Dim c As Constraint = t.Constraints(0)
        Console.WriteLine("Can remove? " _
           & t.Constraints.CanRemove(c).ToString())
    Catch e As Exception
        ' Process exception and return.
         Dim log As System.Diagnostics.EventLog = New System.Diagnostics.EventLog()
         log.Source = "My Application"
         log.WriteEntry(e.ToString())
         Console.WriteLine("Exception of type {0} occurred.", e.GetType().ToString())
    End Try
End Sub

[C#] 
private void TryRemove(DataSet myDataSet){
   try{
      DataTable t = myDataSet.Tables["Customers"];
      Constraint c = t.Constraints[0];
      Console.WriteLine("Can remove? " + t.Constraints.CanRemove(c));
   }
   catch(Exception e) {
      // Process exception and return.
      System.Diagnostics.EventLog log = new System.Diagnostics.EventLog();
      log.Source = "My Application";
      log.WriteEntry(e.ToString());
      Console.WriteLine("Exception of type {0} occurred.", e.GetType());
   }
}

[C++] 
private:
 void TryRemove(DataSet* myDataSet){
    try{
       DataTable* t = myDataSet->Tables->Item[S"Customers"];
       Constraint* c = t->Constraints->Item[0];
       Console::WriteLine(S"Can remove? {0}", __box(t->Constraints->CanRemove(c)));
    }
    catch(Exception* e) {
       // Process exception and return.
       System::Diagnostics::EventLog* log = new System::Diagnostics::EventLog();
       log->Source = S"My Application";
       log->WriteEntry(e->ToString());
       Console::WriteLine(S"Exception of type {0} occurred.", e->GetType());
    }
 }

[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

参照

ConstraintCollection クラス | ConstraintCollection メンバ | System.Data 名前空間