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 события .