VariableEnumerator.Current Propriété
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Obtient l'objet Variable actuel à partir de la collection.
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
Valeur de propriété
Objet Variable actuel.
Exemples
L’exemple de code suivant ajoute une variable au package. L’exemple de code utilise différentes méthodes pour localiser la variable et imprimer le nom, la valeur et l’espace de noms.
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
Exemple de sortie :
La variable a été trouvée ? True
Variable : myCustomVar, 3
---------------------------
[0] myCustomVar, Utilisateur
---------------------------
Le nom et l’espace de noms de la première variable sont : CancelEvent, System
Le nom de la première variable est : CancelEvent
Remarques
Une fois qu’un énumérateur est créé ou après un appel à la Reset
méthode, la MoveNext
méthode doit être appelée pour avancer l’énumérateur vers le premier élément de la collection avant que l’énumérateur puisse lire la valeur de la Current propriété ; sinon, Current elle n’est pas définie et une exception est levée.
Current lève également une exception si le dernier appel à MoveNext
renvoyer false
, qui indique la fin de la collection.
Current ne déplace pas la position de l’énumérateur, et les appels consécutifs pour renvoyer le même objet jusqu’à Current ce que l’un MoveNext
ou Reset
l’autre soit appelé.
Un énumérateur reste valide aussi longtemps que la collection demeure inchangée. Si des modifications sont apportées à la collection, comme l’ajout, la modification ou la suppression d’éléments, l’énumérateur est invalidé et devient irrécupérable ; par conséquent, l’appel suivant à MoveNext
ou Reset
lève un InvalidOperationException
. Toutefois, si la collection est modifiée entre les appels à MoveNext
et Current, Current retourne l’élément sur lequel il est défini, même si l’énumérateur a été invalidé.