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 。
解説
DataRelation が DataSet に追加されるたびに、 ForeignKeyConstraint と UniqueConstraint が親テーブルと子テーブルに自動的に追加されます。 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 名前空間