matz  | Bonjour,
   En ASP.NET 3.5, sous VS 2008, j'ajoute un datasource de type Access (AccessDataSource), je mets une commande SELECT avec 9 champs dont la clé, une commande UPDATE avec 8 champs et la clé en WHERE. L'update fonctionne parfaitement.
   Je veux ajouter une sous-requête pour afficher le nom d'un Tiers plutôt que son ID, et l'UPDATE ne marche plus. Il ne plante pas, mais il ne met rien à jour. C'est comme si le fait d'ajouter un champ mettait le bazard. J'ai cru comprendre qu'ASP génère les paramètres en @+nom de champ tout seul. Peut être qu'ajouter un champ dans le Select le perturbe ?     Ci dessous les 2 codes, celui qui marche, celui qui ne marche pas :
   Celui qui marche :
  Code :
 - <%@ Page Language="VB" MasterPageFile="~/MasterPage.master" AutoEventWireup="false" CodeFile="Importer.aspx.vb"
 - Inherits="Importer" title="Page sans titre" %>
 - <asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
 - </asp:Content>
 - <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
 -     <asp:Label ID="Label1" runat="server">Fichier à importer : </asp:Label>
 -     <asp:FileUpload ID="FileUpload1" runat="server" Height="20px"
 -     Width="579px" />
 -     <br />
 -     <asp:Button ID="btnImporter" runat="server" Text="Importer" Height="22px" />
 -     <br />
 -     <br />
 -     <asp:AccessDataSource ID="dataFacOperationsImport" runat="server"
 -         DataFile="~/App_Data/Import.mdb"
 -         SelectCommand=" SELECT
 -                             operation_id,
 -                             jour_banque,
 -                             libelle_banque,
 -                             montant,
 -                             jour_operation,
 -                             numero,
 -                             note,
 -                             categorie_id,
 -                             tiers_id
 -                         FROM fac_operations_import
 -                         WHERE telechargement_id=1"
 -         UpdateCommand=" UPDATE fac_operations_import
 -                         SET jour_banque=@jour_banque,
 -                             libelle_banque = @libelle_banque ,
 -                             montant = @montant,
 -                             jour_operation = @jour_operation,
 -                             numero = @numero,
 -                             [note] = @note,
 -                             categorie_id = @categorie_id,
 -                             tiers_id = @tiers_id
 -                         WHERE operation_id = @operation_id">
 -     </asp:AccessDataSource>
 -     <asp:GridView ID="GridView1" runat="server" AllowSorting="True"
 -         DataSourceID="dataFacOperationsImport" DataKeyNames="operation_id"
 -         AutoGenerateColumns="False">
 -         <Columns>
 -             <asp:CommandField ShowEditButton="True" />
 -             <asp:BoundField DataField="operation_id" HeaderText="operation_id"
 -                 InsertVisible="False" ReadOnly="True" SortExpression="operation_id" />
 -             <asp:BoundField DataField="jour_banque" HeaderText="jour_banque"
 -                 SortExpression="jour_banque" />
 -             <asp:BoundField DataField="libelle_banque" HeaderText="libelle_banque"
 -                 SortExpression="libelle_banque" />
 -             <asp:BoundField DataField="montant" HeaderText="montant"
 -                 SortExpression="montant" />
 -             <asp:BoundField DataField="jour_operation" HeaderText="jour_operation"
 -                 SortExpression="jour_operation" />
 -             <asp:BoundField DataField="numero" HeaderText="numero"
 -                 SortExpression="numero" />
 -             <asp:BoundField DataField="note" HeaderText="note" SortExpression="note" />
 -             <asp:BoundField DataField="categorie_id" HeaderText="categorie_id"
 -                 SortExpression="categorie_id" />
 -             <asp:BoundField DataField="tiers_id" HeaderText="tiers_id"
 -                 SortExpression="tiers_id" />
 -         </Columns>
 -     </asp:GridView>
 - </asp:Content>
 
  |  
 
     Celui qui ne marche pas (différence en rouge):
  Code :
 - <%@ Page Language="VB" MasterPageFile="~/MasterPage.master" AutoEventWireup="false" CodeFile="Importer.aspx.vb"
 - Inherits="Importer" title="Page sans titre" %>
 - <asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
 - </asp:Content>
 - <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
 -     <asp:Label ID="Label1" runat="server">Fichier à importer : </asp:Label>
 -     <asp:FileUpload ID="FileUpload1" runat="server" Height="20px"
 -     Width="579px" />
 -     <br />
 -     <asp:Button ID="btnImporter" runat="server" Text="Importer" Height="22px" />
 -     <br />
 -     <br />
 -     <asp:AccessDataSource ID="dataFacOperationsImport" runat="server"
 -         DataFile="~/App_Data/Import.mdb"
 -         SelectCommand=" SELECT
 -                             operation_id,
 -                             jour_banque,
 -                             libelle_banque,
 -                             montant,
 -                             jour_operation,
 -                             numero,
 -                             note,
 -                             categorie_id,
 -                             tiers_id,
 -                             (select nom_tiers from dim_tiers where  dim_tiers.tiers_id = fac_operations_import.tiers_id) AS Tiers
 -                         FROM fac_operations_import
 -                         WHERE telechargement_id=1"
 -         UpdateCommand=" UPDATE fac_operations_import
 -                         SET jour_banque=@jour_banque,
 -                             libelle_banque = @libelle_banque ,
 -                             montant = @montant,
 -                             jour_operation = @jour_operation,
 -                             numero = @numero,
 -                             [note] = @note,
 -                             categorie_id = @categorie_id,
 -                             tiers_id = @tiers_id
 -                         WHERE operation_id = @operation_id">
 -     </asp:AccessDataSource>
 -     <asp:GridView ID="GridView1" runat="server" AllowSorting="True"
 -         DataSourceID="dataFacOperationsImport" DataKeyNames="operation_id"
 -         AutoGenerateColumns="False">
 -         <Columns>
 -             <asp:CommandField ShowEditButton="True" />
 -             <asp:BoundField DataField="operation_id" HeaderText="operation_id"
 -                 InsertVisible="False" ReadOnly="True" SortExpression="operation_id" />
 -             <asp:BoundField DataField="jour_banque" HeaderText="jour_banque"
 -                 SortExpression="jour_banque" />
 -             <asp:BoundField DataField="libelle_banque" HeaderText="libelle_banque"
 -                 SortExpression="libelle_banque" />
 -             <asp:BoundField DataField="montant" HeaderText="montant"
 -                 SortExpression="montant" />
 -             <asp:BoundField DataField="jour_operation" HeaderText="jour_operation"
 -                 SortExpression="jour_operation" />
 -             <asp:BoundField DataField="numero" HeaderText="numero"
 -                 SortExpression="numero" />
 -             <asp:BoundField DataField="note" HeaderText="note" SortExpression="note" />
 -             <asp:BoundField DataField="categorie_id" HeaderText="categorie_id"
 -                 SortExpression="categorie_id" />
 -             <asp:BoundField DataField="tiers_id" HeaderText="tiers_id"
 -                 SortExpression="tiers_id" />
 -              <asp:BoundField DataField="Tiers" HeaderText="Tiers"  SortExpression="Tiers" /> 
 -         </Columns>
 -     </asp:GridView>
 - </asp:Content>
 
  |  
 
   Merci de votre aide
   Matz    Message édité par matz le 01-02-2009 à 15:15:21
  |