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
|