LinqDataSource.Inserting Kejadian
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.
Terjadi sebelum operasi penyisipan.
public:
event EventHandler<System::Web::UI::WebControls::LinqDataSourceInsertEventArgs ^> ^ Inserting;
public event EventHandler<System.Web.UI.WebControls.LinqDataSourceInsertEventArgs> Inserting;
member this.Inserting : EventHandler<System.Web.UI.WebControls.LinqDataSourceInsertEventArgs>
Public Custom Event Inserting As EventHandler(Of LinqDataSourceInsertEventArgs)
Jenis Acara
Contoh
Contoh berikut menunjukkan penanganan aktivitas untuk Inserting peristiwa yang memodifikasi data sebelum operasi penyisipan. Objek dari properti dilemparkan NewObject ke jenis bernama Product
. Properti DateModified
Product
objek diatur ke tanggal dan waktu saat ini.
protected void LinqDataSource_Inserting(object sender, LinqDataSourceInsertEventArgs e)
{
Product product = (Product)e.NewObject;
product.DateModified = DateTime.Now;
}
Protected Sub LinqDataSource_Inserting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.LinqDataSourceInsertEventArgs)
Dim product As Product
product = CType(e.NewObject, Product)
product.DateModified = DateTime.Now
End Sub
Contoh berikut menunjukkan penanganan aktivitas untuk Inserting peristiwa yang mengambil pengecualian validasi.
Protected Sub LinqDataSource_Inserting(ByVal sender As Object, _
ByVal e As LinqDataSourceInsertEventArgs)
If (e.Exception IsNot Nothing) Then
For Each innerException As KeyValuePair(Of String, Exception) _
In e.Exception.InnerExceptions
Label1.Text &= innerException.Key & ": " & _
innerException.Value.Message & "<br />"
Next
e.ExceptionHandled = True
End If
End Sub
protected void LinqDataSource_Inserting(object sender,
LinqDataSourceInsertEventArgs e)
{
if (e.Exception != null)
{
foreach (KeyValuePair<string, Exception> innerException in
e.Exception.InnerExceptions)
{
Label1.Text += innerException.Key + ": " +
innerException.Value.Message + "<br />";
}
e.ExceptionHandled = true;
}
}
Contoh sebelumnya mengambil pengecualian validasi. Pengecualian mungkin dilemparkan jika nilai tidak cocok dengan jenis properti. Ini mungkin juga dilemparkan dari pemeriksaan yang disesuaikan seperti yang ada dalam contoh berikut. Metode OnAgeChanging
memeriksa bahwa angka untuk Age
properti tidak negatif.
partial void OnAgeChanging(int? value)
{
if (value < 0)
{
throw new Exception("Age cannot be a negative number.");
}
}
Private Sub OnAgeChanging(ByVal value As System.Nullable(Of Integer))
If (value < 0) Then
Throw New Exception("Age cannot be a negative number.")
End If
End Sub
Keterangan
Inserting Tangani peristiwa untuk memvalidasi objek yang akan disisipkan, untuk memeriksa kesalahan validasi data dari kelas data, untuk mengubah nilai sebelum operasi penyisipan, atau untuk membatalkan operasi penyisipan. Objek LinqDataSourceInsertEventArgs yang diteruskan ke penanganan aktivitas untuk kejadian ini berisi objek baru untuk disisipkan dalam sumber data.
Jika terjadi kesalahan validasi selama operasi penyisipan, LinqDataSourceInsertEventArgs objek berisi pengecualian validasi yang dilemparkan oleh kelas data. Kesalahan validasi terjadi jika nilai yang akan disisipkan tidak cocok dengan jenis properti di kelas data, atau jika tidak lulus pemeriksaan validasi kustom. Dalam penanganan aktivitas untuk peristiwa tersebut Inserting , Anda dapat mengambil pengecualian validasi dan mengambil tindakan yang sesuai.
Jika pengecualian dilemparkan dalam penanganan aktivitas untuk peristiwa tersebut Inserting , Anda harus menangani pengecualian di penanganan aktivitas tersebut. Pengecualian tidak akan diteruskan ke penanganan aktivitas untuk Inserted peristiwa (melalui Exception properti LinqDataSourceStatusEventArgs objek ). Properti Exception hanya berisi pengecualian yang dilemparkan setelah Inserting peristiwa.