Este artigo foi traduzido por máquina. Coloque o ponteiro do mouse sobre as frases do artigo para ver o texto original. Mais informações.
Tradução
Original
Este tópico ainda não foi avaliado como - Avalie este tópico

Evento SqlDataSourceView.Inserting

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

Namespace:  System.Web.UI.WebControls
Assembly:  System.Web (em System.Web.dll)
public event SqlDataSourceCommandEventHandler Inserting

Lidar com o Inserting evento para executar operações adicionais de inicialização que são específicas para seu aplicativo, para validar os valores dos parâmetros, ou para alterar os valores de parâmetro antes do SqlDataSource controle executa a operação de inserção.

A conexão com a fonte de dados subjacente ainda não está aberta quando o delegado do manipulador de eventos é chamado. Portanto, você não pode cancelar a operação de banco de dados diretamente, chamando o Cancel método na DbCommand que é exposto pelo objeto o SqlDataSourceCommandEventArgs objeto. É no entanto, pode cancelar a operação de banco de dados, definindo a Cancel propriedade da SqlDataSourceCommandEventArgs para true.

Para obter mais informações sobre tratamento eventos, consulte Consumindo eventos.

O exemplo de código a seguir demonstra como recuperar dados a partir de Microsoft SQL Server, exibi-lo em um GridView controle. O exemplo também usa um DetailsView controle para exibir a linha selecionada em detalhes sobre o GridViewe como um formulário para inserir novos registros.

Inicialmente, os dados são exibidos na GridView controle e a linha selecionada da GridView também é exibido na DetailsView controle. O GridView e DetailsView controles usam controles da fonte de dados diferentes; aquele que está associado a DetailsView tem o FilterExpression e FilterParameters propriedades, o que garante que a linha selecionada da GridView é exibida.

Se você clicar em gerado automaticamente Inserir o botão da DetailsView controle, o DetailsView mostra uma interface de usuário diferente, que é usada para inserir um novo registro. O exemplo usa um procedimento armazenado para inserir registros e retorna a chave primária da linha inserida. Se você inserir um registro, o DetailsView preenche automaticamente o InsertParameters coleção com os valores das colunas acopladas e chamadas de Insert método. O DetailsView pode inferir os parâmetros corretos de qualquer BoundField objeto e um parâmetro para o TemplateField objeto quando o ASP.NET sintaxe de ligação de dados bidirecional é usada. Neste exemplo, um parâmetro adicional é adicionado a OnInserting o manipulador de eventos para manipular a chave primária que é retornada pelo procedimento armazenado.

Finalmente, após os dados são inseridos pela DetailsView controle no banco de dados, o OnInserted manipulador de eventos é chamado para manipular o Inserted evento, o valor da chave primária da linha inserida é exibida e o DataBind método da GridView controle for chamada explicitamente para atualizar os dados.


<%@Page  Language="C#" %>
<%@Import Namespace="System.Data" %>
<%@Import Namespace="System.Data.Common" %>
<%@Import Namespace="System.Data.SqlClient" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">
 private void On_Inserting(Object sender, SqlDataSourceCommandEventArgs e) {

    SqlParameter insertedKey = new SqlParameter("@PK_New", SqlDbType.Int);
    insertedKey.Direction    = ParameterDirection.Output;        
    e.Command.Parameters.Add(insertedKey);
 }

 private void On_Inserted(Object sender, SqlDataSourceStatusEventArgs e) {
    DbCommand command = e.Command;    

    // The label displays the primary key of the recently inserted row.
    Label1.Text = command.Parameters["@PK_New"].Value.ToString();

    // Force a refresh after the data is inserted.
    GridView1.DataBind();
 }
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>ASP.NET Example</title>
</head>
<body>
    <form id="form1" runat="server">

      <asp:GridView
        id="GridView1"
        runat="server"
        AutoGenerateColumns="False"
        DataKeyNames="EmployeeID"        
        DataSourceID="SqlDataSource1">
        <columns>          
          <asp:BoundField HeaderText="First Name" DataField="FirstName" />
          <asp:BoundField HeaderText="Last Name" DataField="LastName" />
          <asp:BoundField HeaderText="Title" DataField="Title" />
          <asp:ButtonField ButtonType="Link" CommandName="Select" Text="Details..." />
        </columns>
      </asp:GridView>

      <asp:SqlDataSource
        id="SqlDataSource1"
        runat="server"
        ConnectionString="<%$ ConnectionStrings:MyNorthwind %>"
        SelectCommand="SELECT EmployeeID,FirstName,LastName,Title FROM Employees">
      </asp:SqlDataSource>

      <hr />

      <asp:DetailsView
        id="DetailsView1"
        runat="server"
        DataSourceID="SqlDataSource2"
        AutoGenerateRows="False"
        AutoGenerateInsertButton="True">
        <fields>
          <asp:BoundField HeaderText="First Name" DataField="FirstName" ReadOnly="False"/>
          <asp:BoundField HeaderText="Last Name" DataField="LastName" ReadOnly="False"/>
          <asp:TemplateField HeaderText="Title">
            <ItemTemplate>
              <asp:DropDownList
                id="TitleDropDownList"
                runat="server"
                selectedvalue="<%# Bind('Title') %>" >
                <asp:ListItem Selected="True">Sales Representative</asp:ListItem>
                <asp:ListItem>Sales Manager</asp:ListItem>
                <asp:ListItem>Vice President, Sales</asp:ListItem>
              </asp:DropDownList>
            </ItemTemplate>
          </asp:TemplateField>
          <asp:BoundField HeaderText="Notes" DataField="Notes" ReadOnly="False"/>
        </fields>
      </asp:DetailsView>


      <asp:SqlDataSource
        id="SqlDataSource2"
        runat="server"
        ConnectionString="<%$ ConnectionStrings:MyNorthwind%>"
        SelectCommand="SELECT * FROM Employees"
        InsertCommandType = "StoredProcedure"
        InsertCommand="sp_insertemployee"        
        OnInserting="On_Inserting"
        OnInserted ="On_Inserted"
        FilterExpression="EmployeeID={0}">
        <FilterParameters>
          <asp:ControlParameter Name="EmployeeID" ControlId="GridView1" PropertyName="SelectedValue" />
        </FilterParameters>
      </asp:SqlDataSource>

<!-- 
     -- An example sp_insertemployee stored procedure that returns
     -- the primary key of the row that was inserted in an OUT parameter.
     CREATE PROCEDURE sp_insertemployee 
        @FirstName nvarchar(10), 
        @LastName nvarchar(20) , 
        @Title nvarchar(30), 
        @Notes nvarchar(200), 
        @PK_New int OUTPUT
      AS
        INSERT INTO Employees(FirstName,LastName,Title,Notes)VALUES (@FirstName,@LastName,@Title,@Notes)
        SELECT @PK_New = @@IDENTITY
        RETURN (1)    
      GO
-->      

      <asp:Label 
        id="Label1"
        runat="server" />

    </form>
  </body>
</html>


.NET Framework

Com suporte em: 4.5, 4, 3.5, 3.0, 2.0

Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Função Server Core sem suporte), Windows Server 2008 R2 (Função Server Core com suporte com o SP1 ou posterior, Itanium sem suporte)

O .NET Framework não oferece suporte a todas as versões de cada plataforma. Para obter uma lista das versões com suporte, consulte .Requisitos de sistema do NET Framework.
Isso foi útil para você?
(1500 caracteres restantes)

Contribuições da comunidade

ADICIONAR
© 2013 Microsoft. Todos os direitos reservados.