ErrorEnumerator.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 elemen saat ini DtsError dalam koleksi.
public:
property Microsoft::SqlServer::Dts::Runtime::DtsError ^ Current { Microsoft::SqlServer::Dts::Runtime::DtsError ^ get(); };
public Microsoft.SqlServer.Dts.Runtime.DtsError Current { get; }
member this.Current : Microsoft.SqlServer.Dts.Runtime.DtsError
Public ReadOnly Property Current As DtsError
Nilai Properti
Elemen saat ini DtsError dalam koleksi.
Contoh
Contoh kode berikut menambahkan tugas ke paket lalu menjalankan paket. Koleksi peringatan ditampilkan dengan membuat ErrorEnumerator dan menampilkan setiap deskripsi kesalahan.
using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.SqlServer.Dts.Runtime;
using Microsoft.SqlServer.Dts.Tasks.SendMailTask;
namespace Microsoft.SqlServer.SSIS.Samples
{
class Program
{
static void Main(string[] args)
{
Package package = new Package();
Console.WriteLine("Package errors count before running: {0}", package.Errors.Count);
TaskHost taskH2 = (TaskHost)package.Executables.Add("STOCK:SendMailTask");
taskH2.FailPackageOnFailure = false;
taskH2.FailParentOnFailure = false;
Console.WriteLine("SendMailTask: {0}", taskH2.ID);
// Test that warnings were successfully added to the collection.
package.MaximumErrorCount = 100;
package.FailPackageOnFailure = false;
package.FailParentOnFailure = false;
package.DelayValidation = true;
package.Execute();
Console.WriteLine("Package errors count after running the package: {0}", package.Errors.Count);
// Create the enumerator.
ErrorEnumerator myEnumerator = package.Errors.GetEnumerator();
Console.WriteLine("The collection contains the following values:");
int i = 0;
while ((myEnumerator.MoveNext()) && (myEnumerator.Current != null))
Console.WriteLine("[{0}] {1}", i++, myEnumerator.Current.Description);
}
}
}
Imports System
Imports System.Collections.Generic
Imports System.Text
Imports Microsoft.SqlServer.Dts.Runtime
Imports Microsoft.SqlServer.Dts.Tasks.SendMailTask
Namespace Microsoft.SqlServer.SSIS.Samples
Class Program
Shared Sub Main(ByVal args() As String)
Dim package As Package = New Package()
Console.WriteLine("Package errors count before running: {0}", package.Errors.Count)
Dim taskH2 As TaskHost = CType(package.Executables.Add("STOCK:SendMailTask"), TaskHost)
taskH2.FailPackageOnFailure = False
taskH2.FailParentOnFailure = False
Console.WriteLine("SendMailTask: {0}", taskH2.ID)
' Test that warnings were successfully added to the collection.
package.MaximumErrorCount = 100
package.FailPackageOnFailure = False
package.FailParentOnFailure = False
package.DelayValidation = True
package.Execute()
Console.WriteLine("Package errors count after running the package: {0}", package.Errors.Count)
' Create the enumerator.
Dim myEnumerator As ErrorEnumerator = package.Errors.GetEnumerator()
Console.WriteLine("The collection contains the following values:")
Dim i As Integer = 0
While (myEnumerator.MoveNext()) &&(myEnumerator.Current <> Nothing)
Console.WriteLine("[{0}] {1}",i = Console.WriteLine("[{0}] {1}",i + 1
End While
End Sub
End Class
End Namespace
Contoh Output:
Jumlah kesalahan paket sebelum berjalan: 0
SendMailTask: {DE20010F-928A-4E9B-B57F-71D7991EC8F0}
Jumlah kesalahan paket setelah menjalankan paket: 3
Koleksi berisi nilai berikut:
[0] Server SMTP tidak ditentukan
[1] Tidak ada penerima yang ditentukan
[2] Ada kesalahan selama validasi tugas.
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 melempar pengecualian.
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 MoveNext
Reset
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
. Jika koleksi dimodifikasi antara panggilan ke MoveNext
dan Current, Current mengembalikan elemen yang diatur ke, bahkan jika enumerator telah dibatalkan.