2009-02-27 8 views
0

Mon événement de chargement de page ressemble à ceci ....asp.net SqlDataSource detailview: comment définir une bonne instruction select

SqlDataSource1.ConnectionString = Connection.ConnectionStr; 

    SqlDataSource1.SelectCommand = "select firstname,lastname from customer"; 

    SqlDataSource1.InsertCommand = "CustRec_iu"; 
    SqlDataSource1.InsertCommandType = SqlDataSourceCommandType.StoredProcedure; 

    SqlDataSource1.InsertParameters.Clear(); 

    SqlDataSource1.InsertParameters.Add(new Parameter("firstname", DbType.String)); 
    SqlDataSource1.InsertParameters.Add(new Parameter("LastName", DbType.String)); 
    SqlDataSource1.InsertParameters.Add(new Parameter("Active",DbType.Int16,"1")); 

Le réglage de contrôle de detailview ressemble à ceci ....

 <asp:DetailsView ID="dvCustDetails1" runat="server" AutoGenerateRows="False" 
      DataSourceID="SqlDataSource1" Height="149px" Width="469px" 
      OnItemInserted=dvCustDetails1_ItemInserted 

      > 
      <Fields> 
       <asp:BoundField DataField="FirstName" HeaderText="First Name" 
        SortExpression="FirstName" /> 
       <asp:BoundField DataField="LastName" HeaderText="Last Name" 
        SortExpression="LastName" /> 
       <asp:CommandField ButtonType="Button" ShowInsertButton="True" /> 
      </Fields> 
     </asp:DetailsView> 

Juste après la fonctionnalité d'insertion est fait, je voudrais capturer le custid de la table client qui est la colonne d'identité, certains comment l'extraire et sélectionnez la table avec cet enregistrement comme

sélectionnez * à partir de cu stomer où custid = @custid.

Ensuite, après le rendu des contrôles après l'insertion, je voudrais qu'il affiche l'enregistrement nouvellement inséré en fonction de l'instruction de sélection ci-dessus.

En outre, je voudrais voir detailsview pour afficher le bouton de mise à jour afin que je puisse mettre à jour l'enregistrement.

Comment pourrais-je accomplir cela ?? Je trouve très peu de documentation là-bas dans la recherche google ou même des livres imprimés.

Répondre

0

Vous souhaitez utiliser l'événement OnSelected de sqldatasource avec un paramètre de retour de l'appel SQL.

Ajouter ceci au SqlDataSource

OnSelected ="sqlds_Selected" 

et mettre en œuvre quelque chose comme:

protected void sqlds_Selected(object sender, SqlDataSourceStatusEventArgs e) 
{ 
    //get the command object from the arg and 
    //then you can get to the parameter value 

    e.Command.Parameters["@CustomerID"].Value 

    //then set this to your detailsview key 

} 
+0

Il me manque quelque chose mais ca marche pas pour moi .. plus d'informations serait utile. –

Questions connexes