VariableEnumerator.Current Properti
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Mendapatkan objek saat ini Variable dari koleksi.
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
Nilai Properti
Objek saat ini Variable .
Contoh
Contoh kode berikut menambahkan variabel ke paket. Contoh kode menggunakan berbagai metode untuk menemukan variabel dan mencetak nama, nilai, dan namespace.
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
Contoh Output:
Variabel ditemukan? True
Variabel: myCustomVar, 3
---------------------------
[0] myCustomVar, Pengguna
---------------------------
Nama dan namespace variabel pertama adalah: CancelEvent, System
Nama variabel pertama adalah: CancelEvent
Keterangan
Setelah enumerator dibuat, atau setelah panggilan ke Reset metode , MoveNext metode harus dipanggil untuk memajukan enumerator ke elemen pertama koleksi sebelum enumerator dapat membaca nilai Current properti; jika tidak, Current tidak terdefinisi dan pengecualian dilemparkan.
Current juga melemparkan pengecualian jika panggilan terakhir untuk MoveNext dikembalikan false, yang menunjukkan akhir koleksi.
Current tidak memindahkan posisi enumerator, dan panggilan berturut-turut untuk Current mengembalikan objek yang sama hingga atau MoveNextReset dipanggil.
Enumerator tetap valid selama koleksi tetap tidak berubah. Jika perubahan dilakukan pada koleksi, seperti menambahkan, memodifikasi, atau menghapus elemen, enumerator tidak valid dan menjadi tidak dapat dipulihkan; dengan demikian, panggilan berikutnya ke MoveNext atau Reset melempar InvalidOperationException. Namun, jika koleksi dimodifikasi antara panggilan ke MoveNext dan Current, Current mengembalikan elemen yang diatur ke, bahkan jika enumerator telah dibatalkan.