LinqDataSource.Inserting Evento
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Tiene lugar antes de una operación de inserción.
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)
Tipo de evento
Ejemplos
En el ejemplo siguiente se muestra un controlador de eventos para el Inserting evento que modifica los datos antes de la operación de inserción. El objeto desde el NewObject propiedad se convierte en un tipo denominado Product
. El DateModified
propiedad de la Product
objeto se establece en la fecha y hora actuales.
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
En el ejemplo siguiente se muestra un controlador de eventos para el Inserting evento que recupera excepciones de validación.
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;
}
}
En el ejemplo anterior se recuperan excepciones de validación. Se podría producir una excepción si un valor no coincide con el tipo de la propiedad . También se puede producir desde una comprobación personalizada, como la del ejemplo siguiente. El OnAgeChanging
método comprueba que el número para el Age
propiedad no es negativa.
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
Comentarios
Controle el Inserting evento para validar el objeto que se va a insertar, para examinar los errores de validación de datos de la clase de datos, cambiar un valor antes de la operación de inserción o cancelar la operación de inserción. La LinqDataSourceInsertEventArgs objeto pasa a controladores de eventos para este evento contiene el nuevo objeto se va a insertar en el origen de datos.
Si se produce un error de validación durante la operación de inserción, el LinqDataSourceInsertEventArgs objeto contiene las excepciones de validación producidas por la clase de datos. Se produce un error de validación si un valor que se va a insertar no coincide con el tipo de la propiedad en la clase de datos o si no pasa una comprobación de validación personalizada. En un controlador de eventos para el Inserting evento, puede recuperar las excepciones de validación y realizar las acciones adecuadas.
Si se produce una excepción en un controlador de eventos para el Inserting evento, debe controlar la excepción en ese controlador de eventos. La excepción no se pasará a un controlador de eventos para el Inserted evento (a través de la Exception propiedad del LinqDataSourceStatusEventArgs objeto ). La Exception propiedad contiene solo las excepciones que se producen después del Inserting evento.