VariableEnumerator.Current プロパティ
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
現在の Variable オブジェクトをコレクションから取得します。
public:
property Microsoft::SqlServer::Dts::Runtime::Variable ^ Current { Microsoft::SqlServer::Dts::Runtime::Variable ^ get(); };
public Microsoft.SqlServer.Dts.Runtime.Variable Current { get; }
member this.Current : Microsoft.SqlServer.Dts.Runtime.Variable
Public ReadOnly Property Current As Variable
プロパティ値
現在の Variable オブジェクト。
例
次のコード例では、変数をパッケージに追加します。 このコード例では、さまざまなメソッドを使用して変数を検索し、名前、値、および名前空間を出力します。
using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.SqlServer.Dts.Runtime;
namespace Adding_Variables
{
class Program
{
static void Main(string[] args)
{
Application app = new Application();
// Load a sample package that contains a variable that sets the File Name.
Package pkg = app.LoadPackage(@"C:\Program Files\Microsoft SQL Server\100\Samples\Integration Services\Package Samples\CalculatedColumns Sample\CalculatedColumns\CalculatedColumns.dtsx", null);
Variables pkgVars = pkg.Variables;
Variable myVar = pkg.Variables.Add("myCustomVar", false, "User", "3");
// See if the variable is in the collection now.
Boolean hasMyVar = pkg.Variables.Contains("myCustomVar");
Console.WriteLine("The variable was found? {0}", hasMyVar);
// Loop over the collection using foreach keyword.
foreach (Variable pkgVar in pkgVars)
{
// Only print variables from the User namespace.
if (pkgVar.Namespace == "User")
{
Console.WriteLine("Variable: {0}, {1}", pkgVar.Name, pkgVar.Value.ToString());
}
}
Console.WriteLine("---------------------------");
// Loop over the collection using the Enumerator.
VariableEnumerator myEnum = pkg.Variables.GetEnumerator();
int i = 0;
while ((myEnum.MoveNext()) && (myEnum.Current != null))
// Again only show User namespace variables.
if (myEnum.Current.Namespace == "User")
{
Console.WriteLine("[{0}] {1}, {2}", i++, myEnum.Current.Name, myEnum.Current.Namespace);
}
myEnum.Reset();
Console.WriteLine("---------------------------");
//Using the Item method syntax of [x], obtain the
// first entry in the collection.
myVar = pkgVars[0];
Console.WriteLine("The name and namespace of the first variable is: {0}, {1}", myVar.Name, myVar.Namespace);
String nameOfFirstItem = pkgVars[0].Name;
Console.WriteLine("The name of the first variable is: {0}", nameOfFirstItem);
//}
}
}
}
Imports System
Imports System.Collections.Generic
Imports System.Text
Imports Microsoft.SqlServer.Dts.Runtime
Namespace Adding_Variables
Class Program
Shared Sub Main(ByVal args() As String)
Dim app As Application = New Application()
' Load a sample package that contains a variable that sets the File Name.
Dim pkg As Package = app.LoadPackage("C:\Program Files\Microsoft SQL Server\100\Samples\Integration Services\Package Samples\CalculatedColumns Sample\CalculatedColumns\CalculatedColumns.dtsx",Nothing)
Dim pkgVars As Variables = pkg.Variables
Dim myVar As Variable = pkg.Variables.Add("myCustomVar",False,"User","3")
' See if the variable is in the collection now.
Dim hasMyVar As Boolean = pkg.Variables.Contains("myCustomVar")
Console.WriteLine("The variable was found? {0}", hasMyVar)
' Loop over the collection using foreach keyword.
Dim pkgVar As Variable
For Each pkgVar In pkgVars
' Only print variables from the User namespace.
If pkgVar.Namespace = "User" Then
Console.WriteLine("Variable: {0}, {1}", pkgVar.Name, pkgVar.Value.ToString())
End If
Next
Console.WriteLine("---------------------------")
' Loop over the collection using the Enumerator.
Dim myEnum As VariableEnumerator = pkg.Variables.GetEnumerator()
Dim i As Integer = 0
While (myEnum.MoveNext()) &&(myEnum.Current <> Nothing)
Console.WriteLine("[{0}] {1}, {2}",i = Console.WriteLine("[{0}] {1}, {2}",i + 1
End While
myEnum.Reset()
Console.WriteLine("---------------------------")
'Using the Item method syntax of [x], obtain the
' first entry in the collection.
myVar = pkgVars(0)
Console.WriteLine("The name and namespace of the first variable is: {0}, {1}", myVar.Name, myVar.Namespace)
Dim nameOfFirstItem As String = pkgVars(0).Name
Console.WriteLine("The name of the first variable is: {0}", nameOfFirstItem)
'}
End Sub
End Class
End Namespace
サンプル出力:
The variable was found? True
Variable: myCustomVar, 3
---------------------------
[0] myCustomVar, User
---------------------------
The name and namespace of the first variable is: CancelEvent, System
The name of the first variable is: CancelEvent
注釈
列挙子が作成された後、またはメソッドの呼び出し後に Reset
、 MoveNext
列挙子がプロパティの値を読み取る前に、列挙子をコレクションの最初の要素に進めるためにメソッドを呼び出す必要があります。それ以外の Current 場合は未定義であり、 Current 例外がスローされます。
前回の MoveNext
の呼び出しで false
が返された場合 (コレクションの末尾であることを示します)、その後で Current を呼び出しても例外がスローされます。
Currentは、列挙子の位置を移動せず、呼び出されるまで同じオブジェクトMoveNext
Reset
を返すCurrent連続する呼び出しを行います。
列挙子は、コレクションが変更されない限り有効です。 要素の追加、変更、削除など、コレクションに変更が加えられた場合、列挙子は無効になり、回復不能になります。したがって、次の呼び出しまたはMoveNext
Reset
スローInvalidOperationException
します。 ただし、コレクションが呼び出しと呼び出しCurrentの間でMoveNext
変更された場合は、Current列挙子が無効になっている場合でも、設定されている要素を返します。