LinqDataSource.Inserting 事件
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
执行插入操作前发生。
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 异常。