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

前面的示例检索验证异常。 如果值与属性的类型不匹配,可能会引发异常。 也可能从自定义检查引发,如以下示例中的。 方法 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 对象包含数据类引发的验证异常。 如果要插入的值与数据类中属性的类型不匹配,或者未通过自定义验证检查,则会发生验证错误。 在 事件的事件处理程序中 Inserting ,可以检索验证异常并采取适当的操作。

如果在事件的事件处理程序 Inserting 中引发异常,则必须在该事件处理程序中处理异常。 该异常不会传递给事件事件处理程序 Inserted , (对象 Exception) 的 LinqDataSourceStatusEventArgs 属性。 属性 Exception 仅包含事件后引发的 Inserting 异常。

适用于