LinqDataSource.Inserting イベント

定義

挿入操作の前に発生します。Occurs before an insert operation.

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) 

イベントの種類

EventHandler<LinqDataSourceInsertEventArgs>

次の例は、 Inserting 挿入操作の前にデータを変更するイベントのイベントハンドラーを示しています。The following example shows an event handler for the Inserting event that modifies data before the insert operation. プロパティからのオブジェクトは、 NewObject という名前の型にキャストされ Product ます。The object from the NewObject property is cast to a type named Product. DateModifiedオブジェクトのプロパティ Product は、現在の日付と時刻に設定されます。The DateModified property of the Product object is set to the current date and time.

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 います。The following example shows an event handler for the Inserting event that retrieves validation exceptions.

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

前の例では、検証例外を取得します。The previous example retrieves validation exceptions. 値がプロパティの型と一致しない場合、例外がスローされる可能性があります。An exception might be thrown if a value does not match the type of the property. また、次の例に示すように、カスタマイズされたチェックからもスローされる場合があります。It might also be thrown from a customized check such as the one in the following example. メソッドは、 OnAgeChanging プロパティの数値が負でないことを確認し Age ます。The OnAgeChanging method checks that the number for the Age property is not negative.

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 挿入するオブジェクトの検証、データクラスからのデータの検証エラーの調査、挿入操作の前の値の変更、または挿入操作のキャンセルを行います。Handle the Inserting event to validate the object to be inserted, to examine data validation errors from the data class, to change a value before the insert operation, or to cancel the insert operation. LinqDataSourceInsertEventArgsこのイベントのイベントハンドラーに渡されるオブジェクトには、データソースに挿入する新しいオブジェクトが含まれています。The LinqDataSourceInsertEventArgs object passed to event handlers for this event contains the new object to insert in the data source.

挿入操作中に検証エラーが発生した場合、オブジェクトには、 LinqDataSourceInsertEventArgs データクラスによってスローされた検証例外が含まれます。If a validation error occurs during the insert operation, the LinqDataSourceInsertEventArgs object contains the validation exceptions that are thrown by the data class. 挿入する値がデータクラスのプロパティの型と一致しない場合、またはカスタム検証チェックに合格しなかった場合は、検証エラーが発生します。A validation error occurs if a value to be inserted does not match the type of the property in the data class, or if it does not pass a custom validation check. イベントのイベントハンドラーでは、 Inserting 検証例外を取得して適切なアクションを実行できます。In an event handler for the Inserting event, you can retrieve the validation exceptions and take appropriate action.

イベントのイベントハンドラーで例外がスローされた場合は、 Inserting そのイベントハンドラーで例外を処理する必要があります。If an exception is thrown in an event handler for the Inserting event, you must handle the exception in that event handler. 例外は、 Inserted オブジェクトのプロパティを使用して、イベントのイベントハンドラーに渡されません Exception LinqDataSourceStatusEventArgsThe exception will not be passed to an event handler for the Inserted event (through the Exception property of the LinqDataSourceStatusEventArgs object). プロパティは、 Exception イベントの後にスローされる例外のみを格納し Inserting ます。The Exception property contains only the exceptions that are thrown after the Inserting event.

適用対象