次の方法で共有


PrecedenceConstraints.Contains メソッド

例外がスローされることなく、インデックスを使用してコレクション内の項目にアクセスできるかどうかを示します。

名前空間:  Microsoft.SqlServer.Dts.Runtime
アセンブリ:  Microsoft.SqlServer.ManagedDTS (Microsoft.SqlServer.ManagedDTS.dll)

構文

'宣言
Public Function Contains ( _
    index As Object _
) As Boolean
'使用
Dim instance As PrecedenceConstraints 
Dim index As Object 
Dim returnValue As Boolean 

returnValue = instance.Contains(index)
public bool Contains(
    Object index
)
public:
bool Contains(
    Object^ index
)
member Contains : 
        index:Object -> bool
public function Contains(
    index : Object
) : boolean

パラメーター

  • index
    型: System.Object
    コレクション内で検索する名前、ID、またはインデックスです。

戻り値

型: System.Boolean
名前、ID、またはインデックスを使用してコレクションにアクセスできるかどうかを示す Boolean です。値が true の場合は、構文 PrecedenceConstraints[index] でコレクションにアクセスできます。値が false の場合は、インデックスを使用して PrecedenceConstraints コレクションから項目を取得することができません。このプロパティを使用すると、例外がスローされます。

説明

Contains メソッドの呼び出しが true を返す場合、PrecedenceConstraints[index] 構文を使用することにより、コレクション内の指定した要素にアクセスできます。 ただし、Contains メソッドから false が返される場合、このプロパティは例外をスローします。 C# の場合、このプロパティは PrecedenceConstraints クラスのインデクサーとなります。

使用例

次のコード例では、2 つの優先順位制約を作成します。 次に、Contains を使用して、特定の制約が存在することを確認し、Remove メソッドの使用前と使用後の制約の数をカウントします。さらに、制約の ID を返す pConsts[i].ID の Item 構文を使用してコレクションの繰り返し処理を行うための GetEnumerator の使用方法を示します。

using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.SqlServer.Dts.Runtime;
using Microsoft.SqlServer.Dts.Tasks.FileSystemTask;
using Microsoft.SqlServer.Dts.Tasks.BulkInsertTask;

namespace PrecedenceConst
{
    class Program
    {
        static void Main(string[] args)
        {
            Package pkg = new Package();
            // Add a File System task.
            Executable eFileTask1 = pkg.Executables.Add("STOCK:FileSystemTask");
            TaskHost thFileTask1 = eFileTask1 as TaskHost;

            // Add a second File System task.
            Executable eFileTask2 = pkg.Executables.Add("STOCK:FileSystemTask");
            TaskHost thFileTask2 = eFileTask2 as TaskHost;

            // Add a Bulk Insert task.
            Executable eBulkInsert = pkg.Executables.Add("STOCK:BulkInsertTask");
            TaskHost thBulkInsert = eBulkInsert as TaskHost;

            // Add a precedence constraint between eFileTask1 and eFileTask2.
            // Set the constraint to be that eFileTask2 cannot run 
            // until eFileTask1 completes.
            PrecedenceConstraint pcFileTasks = pkg.PrecedenceConstraints.Add(eFileTask1, eFileTask2);
            pcFileTasks.Name = "constraint between File System Tasks";

            // Add another precedence constraint. Add it between eFileTask2 and BulkInsert.
            // Again, set the constraint to be that BulkInsert cannot run 
            // until eFileTask2 completes.
            PrecedenceConstraint pcFiletoBulk = pkg.PrecedenceConstraints.Add(eFileTask2, eBulkInsert);
            pcFileTasks.Name = "constraint between File System and Bulk Insert Tasks";

            // Obtain the precedence constraint collection.
            PrecedenceConstraints pConsts = pkg.PrecedenceConstraints;
            Boolean containsConstraint = pkg.PrecedenceConstraints.Contains("constraint between File System and Bulk Insert Tasks");
            Console.WriteLine("Contains the constraint between File System and Bulk Insert Tasks? {0}", containsConstraint);
            
            // Create the enumerator.
            PrecedenceConstraintEnumerator myEnumerator = pConsts.GetEnumerator();
            // Iterate over the collection, and remove the Bulk Insert task.
            int i = 0;
            while ((myEnumerator.MoveNext()) && (myEnumerator.Current != null))
            {
                Console.WriteLine("ID {0}", pConsts[i].ID);
            }

            Console.WriteLine("Number of constraints {0}", pConsts.Count);
            // Remove the second contstraint.
            pConsts.Remove(1);
            // Verify that one has been removed.
            Console.WriteLine("Number of constraints {0}", pConsts.Count);

            Console.WriteLine();
        }
    }
}
Imports System
Imports System.Collections.Generic
Imports System.Text
Imports Microsoft.SqlServer.Dts.Runtime
Imports Microsoft.SqlServer.Dts.Tasks.FileSystemTask
Imports Microsoft.SqlServer.Dts.Tasks.BulkInsertTask
 
Namespace PrecedenceConst
    Class Program
        Shared  Sub Main(ByVal args() As String)
            Dim pkg As Package =  New Package() 
            ' Add a File System task.
            Dim eFileTask1 As Executable =  pkg.Executables.Add("STOCK:FileSystemTask") 
            Dim thFileTask1 As TaskHost =  eFileTask1 as TaskHost 
 
            ' Add a second File System task.
            Dim eFileTask2 As Executable =  pkg.Executables.Add("STOCK:FileSystemTask") 
            Dim thFileTask2 As TaskHost =  eFileTask2 as TaskHost 
 
            ' Add a Bulk Insert task.
            Dim eBulkInsert As Executable =  pkg.Executables.Add("STOCK:BulkInsertTask") 
            Dim thBulkInsert As TaskHost =  eBulkInsert as TaskHost 
 
            ' Add a precedence constraint between eFileTask1 and eFileTask2.
            ' Set the constraint to be that eFileTask2 cannot run 
            ' until eFileTask1 completes.
            Dim pcFileTasks As PrecedenceConstraint =  pkg.PrecedenceConstraints.Add(eFileTask1,eFileTask2) 
            pcFileTasks.Name = "constraint between File System Tasks"
 
            ' Add another precedence constraint. Add it between eFileTask2 and BulkInsert.
            ' Again, set the constraint to be that BulkInsert cannot run 
            ' until eFileTask2 completes.
            Dim pcFiletoBulk As PrecedenceConstraint =  pkg.PrecedenceConstraints.Add(eFileTask2,eBulkInsert) 
            pcFileTasks.Name = "constraint between File System and Bulk Insert Tasks"
 
            ' Obtain the precedence constraint collection.
            Dim pConsts As PrecedenceConstraints =  pkg.PrecedenceConstraints 
            Dim containsConstraint As Boolean =  pkg.PrecedenceConstraints.Contains("constraint between File System and Bulk Insert Tasks") 
            Console.WriteLine("Contains the constraint between File System and Bulk Insert Tasks? {0}", containsConstraint)
 
            ' Create the enumerator.
            Dim myEnumerator As PrecedenceConstraintEnumerator =  pConsts.GetEnumerator() 
            ' Iterate over the collection, and remove the Bulk Insert task.
            Dim i As Integer =  0 
            While (myEnumerator.MoveNext()) &&(myEnumerator.Current <> Nothing)
                Console.WriteLine("ID {0}", pConsts(i).ID)
            End While
 
            Console.WriteLine("Number of constraints {0}", pConsts.Count)
            ' Remove the second contstraint.
            pConsts.Remove(1)
            ' Verify that one has been removed.
            Console.WriteLine("Number of constraints {0}", pConsts.Count)
 
            Console.WriteLine()
        End Sub
    End Class
End Namespace

サンプル出力:

Contains the constraint between File System and Bulk Insert Tasks? True

ID {BA42AF32-3AC1-4CB6-85A2-289760ADBFA4}

ID {BA42AF32-3AC1-4CB6-85A2-289760ADBFA4}

Number of constraints 2

Number of constraints 1

関連項目

参照

PrecedenceConstraints クラス

Microsoft.SqlServer.Dts.Runtime 名前空間