Partilhar via


LinqDataSource.Inserting Evento

Definição

Ocorre antes de uma operação de inserção.

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

Exemplos

O exemplo a seguir mostra um manipulador de eventos para o Inserting evento que modifica os dados antes da operação de inserção. O objeto da NewObject propriedade é convertido em um tipo chamado Product. A DateModified propriedade do Product objeto é definida como a data e a hora atuais.

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

O exemplo a seguir mostra um manipulador de eventos para o Inserting evento que recupera exceções de validação.

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

O exemplo anterior recupera exceções de validação. Uma exceção poderá ser gerada se um valor não corresponder ao tipo da propriedade. Ele também pode ser gerado de uma marcar personalizada, como a do exemplo a seguir. O OnAgeChanging método verifica se o número da Age propriedade não é negativo.

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

Comentários

Manipule o Inserting evento para validar o objeto a ser inserido, examinar erros de validação de dados da classe de dados, alterar um valor antes da operação de inserção ou cancelar a operação de inserção. O LinqDataSourceInsertEventArgs objeto passado para manipuladores de eventos para esse evento contém o novo objeto a ser inserido na fonte de dados.

Se ocorrer um erro de validação durante a operação de inserção, o LinqDataSourceInsertEventArgs objeto conterá as exceções de validação geradas pela classe de dados. Ocorrerá um erro de validação se um valor a ser inserido não corresponder ao tipo da propriedade na classe de dados ou se ele não passar por uma validação personalizada marcar. Em um manipulador de eventos para o Inserting evento, você pode recuperar as exceções de validação e tomar as medidas apropriadas.

Se uma exceção for gerada em um manipulador de eventos para o Inserting evento, você deverá manipular a exceção nesse manipulador de eventos. A exceção não será passada para um manipulador de eventos para o Inserted evento (por meio da Exception propriedade do LinqDataSourceStatusEventArgs objeto). A Exception propriedade contém apenas as exceções geradas após o Inserting evento.

Aplica-se a