PackageInfoEnumerator.Current Eigenschaft

Definition

Gibt das aktuelle PackageInfo Element aus der Sammlung zurück.

public:
 property Microsoft::SqlServer::Dts::Runtime::PackageInfo ^ Current { Microsoft::SqlServer::Dts::Runtime::PackageInfo ^ get(); };
public Microsoft.SqlServer.Dts.Runtime.PackageInfo Current { get; }
member this.Current : Microsoft.SqlServer.Dts.Runtime.PackageInfo
Public ReadOnly Property Current As PackageInfo

Eigenschaftswert

Ein PackageInfo-Objekt.

Beispiele

Das folgende Codebeispiel lädt zwei Pakete aus dem Samples-Ordner und speichert sie im DTS-Service. Anschließend erstellt er einen Enumerator und verwendet MoveNext sowie Current Methoden, um die Pakete zu durchlaufen und deren Namen auszudrucken.

using System;  
using System.Collections.Generic;  
using System.Text;  
using Microsoft.SqlServer.Dts.Runtime;  

namespace PackageInfoTest  
{  
    class Program  
    {  
        static void Main(string[] args)  
        {  
            string pkg = @"C:\Program Files\Microsoft SQL Server\100\Samples\Integration Services\Package Samples\ExecuteProcess Sample\ExecuteProcess\UsingExecuteProcess.dtsx";  
            string pkg2 = @"C:\Program Files\Microsoft SQL Server\100\Samples\Integration Services\Package Samples\CalculatedColumns Sample\CalculatedColumns\CalculatedColumns.dtsx";  

            Application app = new Application();  
            Package p1 = app.LoadPackage(pkg, null);  
            Package p2 = app.LoadPackage(pkg2, null);  
            p1.Description = "UsingExecuteProcess package";  
            p2.Description = "Calculated Columns package";  

            app.SaveToDtsServer(p1, null, @"File System\myp1Package", "YOURSERVER");  
            app.SaveToDtsServer(p2, null, @"File System\myp2Package", "YOURSERVER");  

            PackageInfos pInfos = app.GetDtsServerPackageInfos(@"File System", "YOURSERVER");  
            Console.WriteLine("Number of Packages {0}", pInfos.Count.ToString());  

            PackageInfoEnumerator iEnum = pInfos.GetEnumerator();  

            while (iEnum.MoveNext())  
                {  
                    String pkgName = iEnum.Current.Name;  
                    Console.WriteLine(pkgName);   
                }  
         }  
    }  
}  
Imports System  
Imports System.Collections.Generic  
Imports System.Text  
Imports Microsoft.SqlServer.Dts.Runtime  

Namespace PackageInfoTest  
    Class Program  
        Shared  Sub Main(ByVal args() As String)  
            Dim pkg As String =  "C:\Program Files\Microsoft SQL Server\100\Samples\Integration Services\Package Samples\ExecuteProcess Sample\ExecuteProcess\UsingExecuteProcess.dtsx"   
            Dim pkg2 As String =  "C:\Program Files\Microsoft SQL Server\100\Samples\Integration Services\Package Samples\CalculatedColumns Sample\CalculatedColumns\CalculatedColumns.dtsx"   

            Dim app As Application =  New Application()   
            Dim p1 As Package =  app.LoadPackage(pkg,Nothing)   
            Dim p2 As Package =  app.LoadPackage(pkg2,Nothing)   
            p1.Description = "UsingExecuteProcess package"  
            p2.Description = "Calculated Columns package"  

            app.SaveToDtsServer(p1, Nothing, "File System\myp1Package", "YOURSERVER")  
            app.SaveToDtsServer(p2, Nothing, "File System\myp2Package", "YOURSERVER")  

            Dim pInfos As PackageInfos =  app.GetDtsServerPackageInfos("File System","YOURSERVER")   
            Console.WriteLine("Number of Packages {0}", pInfos.Count.ToString())  

            Dim iEnum As PackageInfoEnumerator =  pInfos.GetEnumerator()   

            While iEnum.MoveNext()  
                    Dim pkgName As String =  iEnum.Current.Name   
                    Console.WriteLine(pkgName)  
            End While  
        End Sub  
    End Class  
End Namespace  

Beispielausgabe:

Anzahl der Pakete 2

myp1Package

myp2Package

Hinweise

Nachdem ein Enumerator erstellt wurde oder nach einem Aufruf der Methode Reset , muss die MoveNext Methode aufgerufen werden, um den Enumerator auf das erste Element der Sammlung vorzuschieben, bevor der Enumerator den Wert der Eigenschaft Current lesen kann; andernfalls ist undefiniert Current und wirft eine Ausnahme.

Current löst auch eine Ausnahme aus, wenn der letzte Aufruf MoveNext zurückgegeben wird false, der das Ende der Auflistung angibt.

Current verschärbt die Position des Enumerators nicht, und aufeinander folgende Aufrufe, um Current dasselbe Objekt zurückzugeben, bis eine MoveNext oder Reset eine aufgerufen wird.

Ein Enumerator bleibt gültig, solange die Auflistung unverändert bleibt. Wenn Änderungen an der Sammlung vorgenommen werden, wie das Hinzufügen, Ändern oder Löschen von Elementen, wird der Enumerator ungültig und nicht mehr wiederherstellbar; Daher wirft der nächste Aufruf zu MoveNext oder Reset ein InvalidOperationException. Wenn die Sammlung jedoch zwischen Aufrufen von MoveNext und CurrentCurrent geändert wird, wird das Element zurückgegeben, auf das sie gesetzt ist, selbst wenn der Enumerator ungültig gemacht wurde.

Gilt für: