Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Evento SqlDataSource.Inserted

 

Data di pubblicazione: ottobre 2016

Si verifica quando viene completata un'operazione di inserimento.

Spazio dei nomi:   System.Web.UI.WebControls
Assembly:  System.Web (in System.Web.dll)

public event SqlDataSourceStatusEventHandler Inserted

Gestire il Inserted evento per esaminare i valori dei parametri di output dopo un'operazione di inserimento è stata completata. I parametri di output sono disponibili i SqlDataSourceStatusEventArgs oggetto associato all'evento.

Per ulteriori informazioni sulla gestione degli eventi, vedere NIB: utilizzo degli eventi.

Esempio di codice riportato di seguito viene illustrato come recuperare dati da Microsoft SQL Server e visualizzarli in un GridView controllo e come utilizzare un DetailsView per visualizzare i dettagli di una riga selezionata nel controllo di GridView e come form per inserire nuovi record.

System_CAPS_noteNota

In questo esempio viene illustrato come utilizzare la sintassi dichiarativa per l'accesso ai dati. Per informazioni su come accedere ai dati tramite il codice anziché markup, vedere Accesso ai dati in Visual Studio.

Inizialmente, i dati vengono visualizzati nel GridView controllo e la riga selezionata del GridView viene visualizzato anche nella DetailsView controllo. Il GridView e DetailsView controlli utilizzano dati diversi controlli origine, quello che è associato il DetailsView ha il FilterExpression e FilterParameters proprietà, che assicura che la riga selezionata del GridView viene visualizzato.

Se si fa clic generato automaticamente inserire pulsante del DetailsView controllo, il DetailsView Visualizza un'interfaccia utente diverso, viene utilizzata per inserire un nuovo record. L'esempio utilizza una stored procedure per inserire i record e restituisce la chiave primaria della riga inserita. Se si inserisce un record, il DetailsView popola automaticamente il InsertParameters insieme con i valori di colonne associate e chiama il Insert metodo. Il DetailsView in grado di dedurre i parametri corretti da qualsiasi BoundField oggetto e un parametro per il TemplateField dell'oggetto quando viene utilizzata la sintassi di associazione dati bidirezionale di ASP.NET. In questo esempio viene aggiunto un parametro aggiuntivo nel OnInserting gestore eventi per gestire la chiave primaria che viene restituita dalla stored procedure.

Infine, dopo l'inserimento dei dati nel database tramite il DetailsView controllo, il OnInserted gestore eventi viene chiamato per gestire il Inserted evento, il valore della chiave primaria della riga inserita viene visualizzata e il DataBind metodo il GridView controllo viene chiamato in modo esplicito per aggiornare i dati.

<%@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
Disponibile da 2.0
Torna all'inizio
Mostra: