LinqDataSource.Inserting LinqDataSource.Inserting LinqDataSource.Inserting LinqDataSource.Inserting Event

定義

挿入操作の前に発生します。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) 

次の例は、挿入操作の前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 ProductThe 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. メソッドは、 Ageプロパティの数値が負でないことを確認します。 OnAgeChangingThe 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. このイベントのイベントハンドラーに渡されるオブジェクトには、データソースに挿入する新しいオブジェクトが含まれています。LinqDataSourceInsertEventArgsThe 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 LinqDataSourceStatusEventArgsオブジェクトのExceptionプロパティを使用して、イベントのイベントハンドラーに渡されません。The 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.

適用対象