Bagikan melalui


SMODataFileEnumerator.MoveNext Metode

Definisi

Memajukan enumerator ke elemen koleksi berikutnya.

public:
 virtual bool MoveNext();
public bool MoveNext ();
abstract member MoveNext : unit -> bool
override this.MoveNext : unit -> bool
Public Function MoveNext () As Boolean

Mengembalikan

true jika enumerator berhasil dimajukan ke elemen berikutnya; false jika enumerator telah melewati akhir koleksi.

Penerapan

Contoh

Contoh kode berikut membuat ForEachLoop, membuat enumerator SMO dan menghostingnya di ForEachEnumeratorHost, di mana kemudian ditambahkan sebagai ForEachEnumerator di ForEachLoop. Mengembalikan ForEachSMOEnumerator, dibuat SMODataFileEnumerator sebagai System.Collections.IEnumerator dan diulang melalui penggunaan MoveNext dan Current. Setelah indeks melewati akhir koleksi, Reset digunakan untuk mengatur ulang iterator.

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

namespace SmoDataFileEnumerator  
{  
    class Program  
    {  
        const string PACKAGEFILENAME = @"\SmoDataFileEnumeratorPackage.dtsx";  
        static void Main(string[] args)  
        {  
            // Create the SSIS application  
            Application application = new Application();  

            // Create the new package  
            Package package = new Package();  
            package.PackageType = DTSPackageType.DTSDesigner;  
            package.Name = "SMODataFileEnumerator Sample";  
            package.Description = "This is a sample for SMODataFileEnumerator";  
            // Use System.Environment.MachineName; in the following line of code.  
            package.CreatorComputerName = @"MACHINENAME";  
            // Use System.Environment.UserName; in the following line of code.  
            package.CreatorName = @"USERNAME";  

            // Adds the ADO.NET connection manager to the package  
            Connections connections = package.Connections;  
            ConnectionManager connectionManager = connections.Add("ADO.NET:SQL");  
            Console.WriteLine("ConnectionManager creation name: {0}", connectionManager.CreationName);  
            connectionManager.Name = "localhost.AdventureWorks";  
            connectionManager.ConnectionString = "Data Source=localhost;"  
                + "Initial Catalog=AdventureWorks;"  
                + "Integrated Security=True;";  

            // Create ForEach SMO Loop task  
            Executables executables = package.Executables;  
            ForEachLoop forEachLoop = executables.Add("STOCK:FOREACHLOOP") as ForEachLoop;  
            forEachLoop.Name = "Foreach Loop Container";  
            forEachLoop.Description = "Foreach Loop Container";  

            Console.WriteLine("ForEachLoop creation name: {0}", forEachLoop.CreationName);  
            ForEachEnumeratorInfo forEachEnumeratorInfo  
                = application.ForEachEnumeratorInfos["Foreach SMO Enumerator"];  
            ForEachEnumeratorHost forEachEnumeratorHost = forEachEnumeratorInfo.CreateNew();  
            forEachLoop.ForEachEnumerator = forEachEnumeratorHost;  

            // Setup the SMO enumerator  
            ForEachSMOEnumerator forEachSMOEnumerator = forEachEnumeratorHost.InnerObject as ForEachSMOEnumerator;  
            forEachSMOEnumerator.EnumURN = "RuntimeServer[@Connection='"  
            + connectionManager.ID + @"']/Server[@Name='localhost']"  
                + @"/Database[@Name='AdventureWorks']"  
                + @"/SMOEnumObj[@Name='DataFiles']"  
                + @"/SMOEnumType[@Name='Locations']";  

            System.Collections.IEnumerator smoDataFileEnumerator = forEachSMOEnumerator.GetEnumerator(  
            connections, null, null, null) as System.Collections.IEnumerator;  
            Console.WriteLine("The collection contains the following values:");  
            int i = 0;  
            while ((smoDataFileEnumerator.MoveNext()) && (smoDataFileEnumerator.Current != null))  
                Console.WriteLine("[{0}] {1}", i++, smoDataFileEnumerator.Current);  

            smoDataFileEnumerator.Reset();  
            // Validate the layout of the package  
            DTSExecResult status = package.Validate(package.Connections, null, null, null);  
            Console.WriteLine("Validation result: " + status);  

            // Save the package  
            String currentDirectory = Environment.CurrentDirectory;  
            application.SaveToXml(currentDirectory + PACKAGEFILENAME, package, null);  
            Console.WriteLine("Package saved to " + currentDirectory + PACKAGEFILENAME);  
        }  
    }  
}  
Imports System  
Imports System.Collections.Generic  
Imports System.Text  
Imports Microsoft.SqlServer.Dts.Runtime  
Imports Microsoft.SqlServer.Dts.Runtime.Enumerators.SMO  

Namespace SmoDataFileEnumerator  
    Class Program  
        const String PACKAGEFILENAME = "\SmoDataFileEnumeratorPackage.dtsx"  
        Shared  Sub Main(ByVal args() As String)  
            ' Create the SSIS application  
            Dim application As Application =  New Application()   

            ' Create the new package  
            Dim package As Package =  New Package()   
            package.PackageType = DTSPackageType.DTSDesigner  
            package.Name = "SMODataFileEnumerator Sample"  
            package.Description = "This is a sample for SMODataFileEnumerator"  
            ' Use System.Environment.MachineName; in the following line of code.  
            package.CreatorComputerName = "MACHINENAME"  
            ' Use System.Environment.UserName; in the following line of code.  
            package.CreatorName = "USERNAME"  

            ' Adds the ADO.NET connection manager to the package  
            Dim connections As Connections =  package.Connections   
            Dim connectionManager As ConnectionManager =  connections.Add("ADO.NET:SQL")   
            Console.WriteLine("ConnectionManager creation name: {0}", connectionManager.CreationName)  
            connectionManager.Name = "localhost.AdventureWorks"  
            connectionManager.ConnectionString = "Data Source=localhost;"  
                + "Initial Catalog=AdventureWorks;"  
                Dim "Integrated Security=True;" As +  

            ' Create ForEach SMO Loop task  
            Dim executables As Executables =  package.Executables   
            Dim forEachLoop As ForEachLoop =  executables.Add("STOCK:FOREACHLOOP") as ForEachLoop   
            forEachLoop.Name = "Foreach Loop Container"  
            forEachLoop.Description = "Foreach Loop Container"  

            Console.WriteLine("ForEachLoop creation name: {0}", forEachLoop.CreationName)  
            ForEachEnumeratorInfo forEachEnumeratorInfo  
                Dim  As =  
            Dim forEachEnumeratorHost As ForEachEnumeratorHost =  forEachEnumeratorInfo.CreateNew()   
            forEachLoop.ForEachEnumerator = forEachEnumeratorHost  

            ' Setup the SMO enumerator  
            Dim forEachSMOEnumerator As ForEachSMOEnumerator =  forEachEnumeratorHost.InnerObject as ForEachSMOEnumerator   
            forEachSMOEnumerator.EnumURN = "RuntimeServer[@Connection='"  
            + connectionManager.ID + "']/Server[@Name='localhost']"  
                + "/Database[@Name='AdventureWorks']"  
                + "/SMOEnumObj[@Name='DataFiles']"  
                Dim "/SMOEnumType[@Name='Locations']" As +  

            System.Collections.IEnumerator smoDataFileEnumerator = forEachSMOEnumerator.GetEnumerator(  
            connections, Nothing, Nothing, Nothing) as System.Collections.IEnumerator  
            Console.WriteLine("The collection contains the following values:")  
            Dim i As Integer =  0   
            While (smoDataFileEnumerator.MoveNext()) &&(smoDataFileEnumerator.Current <> Nothing)  
                Console.WriteLine("[{0}] {1}",i = Console.WriteLine("[{0}] {1}",i + 1  
            End While  

            smoDataFileEnumerator.Reset()  
            ' Validate the layout of the package  
            Dim status As DTSExecResult =  package.Validate(package.Connections,Nothing,Nothing,Nothing)   
            Console.WriteLine("Validation result: " + status)  

            ' Save the package  
            Dim currentDirectory As String =  Environment.CurrentDirectory   
            application.SaveToXml(currentDirectory + PACKAGEFILENAME, package, Nothing)  
            Console.WriteLine("Package saved to " + currentDirectory + PACKAGEFILENAME)  
        End Sub  
    End Class  
End Namespace  

Berlaku untuk