LinqDataSource.Inserting 이벤트

정의

삽입 작업 전에 발생합니다.

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) 

이벤트 유형

예제

다음 예제에서는 삽입 작업 전에 데이터를 수정하는 이벤트에 대한 Inserting 이벤트 처리기를 보여줍니다. 개체를 NewObject 속성은 명명 된 형식으로 캐스팅 됩니다 Product합니다. DateModified 의 속성을 Product 개체가 현재 날짜 및 시간으로 설정 된 합니다.

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

다음 예제에서는 유효성 검사 예외를 Inserting 검색 하는 이벤트에 대 한 이벤트 처리기를 보여 줍니다.

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;  
    }  
}  

이전 예제에서는 유효성 검사 예외를 검색합니다. 값이 속성의 형식과 일치하지 않는 경우 예외가 throw될 수 있습니다. 다음 예제와 같은 사용자 지정된 검사 throw될 수도 있습니다. 메서드는 OnAgeChanging 속성의 숫자가 음수가 Age 아닌지 확인합니다.

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  

설명

삽입할 개체의 Inserting 유효성을 검사하거나, 데이터 클래스에서 데이터 유효성 검사 오류를 검사하거나, 삽입 작업 전에 값을 변경하거나, 삽입 작업을 취소하는 이벤트를 처리합니다. 이 LinqDataSourceInsertEventArgs 이벤트에 대한 이벤트 처리기에 전달된 개체에는 데이터 원본에 삽입할 새 개체가 포함됩니다.

삽입 작업 중에 유효성 검사 오류가 발생하면 개체에 LinqDataSourceInsertEventArgs 데이터 클래스에서 throw된 유효성 검사 예외가 포함됩니다. 삽입할 값이 데이터 클래스의 속성 형식과 일치하지 않거나 사용자 지정 유효성 검사 검사 전달하지 않으면 유효성 검사 오류가 발생합니다. 이벤트에 대한 Inserting 이벤트 처리기에서 유효성 검사 예외를 검색하고 적절한 작업을 수행할 수 있습니다.

이벤트에 대한 이벤트 처리기에서 예외가 Inserting throw되는 경우 해당 이벤트 처리기에서 예외를 처리해야 합니다. 예외는 개체의 LinqDataSourceStatusEventArgs 속성을 통해 Exception 이벤트에 대한 Inserted 이벤트 처리기에 전달되지 않습니다. 속성에는 Exception 이벤트 후에 Inserting throw되는 예외만 포함됩니다.

적용 대상