LinqDataSource.Inserting Evento
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
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 seguinte mostra um gestor de eventos para o Inserting evento que modifica os dados antes da operação de inserção. O objeto da NewObject propriedade é lançado para um tipo chamado Product. A DateModified propriedade do Product objeto é definida para a data e 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 seguinte mostra um gestor 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. Pode haver uma exceção se um valor não corresponder ao tipo da propriedade. Também pode ser lançado a partir de um teste personalizado, como o do exemplo seguinte. 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
Observações
Gerir o Inserting evento para validar o objeto a ser inserido, para examinar erros de validação de dados da classe de dados, para alterar um valor antes da operação de inserção, ou para cancelar a operação de inserção. O LinqDataSourceInsertEventArgs objeto passado aos gestores de eventos para este evento contém o novo objeto a inserir na fonte de dados.
Se ocorrer um erro de validação durante a operação de inserção, o LinqDataSourceInsertEventArgs objeto contém as exceções de validação que são lançadas pela classe de dados. Um erro de validação ocorre se um valor a inserir não corresponder ao tipo da propriedade na classe de dados, ou se não passar numa verificação de validação personalizada. Num gestor de eventos para o Inserting evento, pode recuperar as exceções de validação e tomar as ações apropriadas.
Se uma exceção for lançada num handler de eventos para o Inserting evento, deve tratar da exceção nesse handler. A exceção não será passada a um gestor de eventos para o Inserted evento (através da Exception propriedade do LinqDataSourceStatusEventArgs objeto). A Exception propriedade contém apenas as exceções que são lançadas após o Inserting evento.