Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1356 connectés 

  FORUM HardWare.fr
  Programmation
  ASP

  [ASP.NET] Modiifer le select d'un DataSource / GridView

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[ASP.NET] Modiifer le select d'un DataSource / GridView

n°1845814
matz
Posté le 01-02-2009 à 15:08:54  profilanswer
 

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 :
  1. <%@ Page Language="VB" MasterPageFile="~/MasterPage.master" AutoEventWireup="false" CodeFile="Importer.aspx.vb"
  2. Inherits="Importer" title="Page sans titre" %>
  3. <asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
  4. </asp:Content>
  5. <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
  6.     <asp:Label ID="Label1" runat="server">Fichier à importer : </asp:Label>
  7.     <asp:FileUpload ID="FileUpload1" runat="server" Height="20px"
  8.     Width="579px" />
  9.     <br />
  10.     <asp:Button ID="btnImporter" runat="server" Text="Importer" Height="22px" />
  11.     <br />
  12.     <br />
  13.     <asp:AccessDataSource ID="dataFacOperationsImport" runat="server"
  14.         DataFile="~/App_Data/Import.mdb"
  15.         SelectCommand=" SELECT
  16.                             operation_id,
  17.                             jour_banque,
  18.                             libelle_banque,
  19.                             montant,
  20.                             jour_operation,
  21.                             numero,
  22.                             note,
  23.                             categorie_id,
  24.                             tiers_id
  25.                         FROM fac_operations_import
  26.                         WHERE telechargement_id=1"
  27.         UpdateCommand=" UPDATE fac_operations_import
  28.                         SET jour_banque=@jour_banque,
  29.                             libelle_banque = @libelle_banque ,
  30.                             montant = @montant,
  31.                             jour_operation = @jour_operation,
  32.                             numero = @numero,
  33.                             [note] = @note,
  34.                             categorie_id = @categorie_id,
  35.                             tiers_id = @tiers_id
  36.                         WHERE operation_id = @operation_id">
  37.     </asp:AccessDataSource>
  38.     <asp:GridView ID="GridView1" runat="server" AllowSorting="True"
  39.         DataSourceID="dataFacOperationsImport" DataKeyNames="operation_id"
  40.         AutoGenerateColumns="False">
  41.         <Columns>
  42.             <asp:CommandField ShowEditButton="True" />
  43.             <asp:BoundField DataField="operation_id" HeaderText="operation_id"
  44.                 InsertVisible="False" ReadOnly="True" SortExpression="operation_id" />
  45.             <asp:BoundField DataField="jour_banque" HeaderText="jour_banque"
  46.                 SortExpression="jour_banque" />
  47.             <asp:BoundField DataField="libelle_banque" HeaderText="libelle_banque"
  48.                 SortExpression="libelle_banque" />
  49.             <asp:BoundField DataField="montant" HeaderText="montant"
  50.                 SortExpression="montant" />
  51.             <asp:BoundField DataField="jour_operation" HeaderText="jour_operation"
  52.                 SortExpression="jour_operation" />
  53.             <asp:BoundField DataField="numero" HeaderText="numero"
  54.                 SortExpression="numero" />
  55.             <asp:BoundField DataField="note" HeaderText="note" SortExpression="note" />
  56.             <asp:BoundField DataField="categorie_id" HeaderText="categorie_id"
  57.                 SortExpression="categorie_id" />
  58.             <asp:BoundField DataField="tiers_id" HeaderText="tiers_id"
  59.                 SortExpression="tiers_id" />
  60.         </Columns>
  61.     </asp:GridView>
  62. </asp:Content>


 
 
Celui qui ne marche pas (différence en rouge):

Code :
  1. <%@ Page Language="VB" MasterPageFile="~/MasterPage.master" AutoEventWireup="false" CodeFile="Importer.aspx.vb"
  2. Inherits="Importer" title="Page sans titre" %>
  3. <asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
  4. </asp:Content>
  5. <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
  6.     <asp:Label ID="Label1" runat="server">Fichier à importer : </asp:Label>
  7.     <asp:FileUpload ID="FileUpload1" runat="server" Height="20px"
  8.     Width="579px" />
  9.     <br />
  10.     <asp:Button ID="btnImporter" runat="server" Text="Importer" Height="22px" />
  11.     <br />
  12.     <br />
  13.     <asp:AccessDataSource ID="dataFacOperationsImport" runat="server"
  14.         DataFile="~/App_Data/Import.mdb"
  15.         SelectCommand=" SELECT
  16.                             operation_id,
  17.                             jour_banque,
  18.                             libelle_banque,
  19.                             montant,
  20.                             jour_operation,
  21.                             numero,
  22.                             note,
  23.                             categorie_id,
  24.                             tiers_id,
  25.                             (select nom_tiers from dim_tiers where  dim_tiers.tiers_id = fac_operations_import.tiers_id) AS Tiers
  26.                         FROM fac_operations_import
  27.                         WHERE telechargement_id=1"
  28.         UpdateCommand=" UPDATE fac_operations_import
  29.                         SET jour_banque=@jour_banque,
  30.                             libelle_banque = @libelle_banque ,
  31.                             montant = @montant,
  32.                             jour_operation = @jour_operation,
  33.                             numero = @numero,
  34.                             [note] = @note,
  35.                             categorie_id = @categorie_id,
  36.                             tiers_id = @tiers_id
  37.                         WHERE operation_id = @operation_id">
  38.     </asp:AccessDataSource>
  39.     <asp:GridView ID="GridView1" runat="server" AllowSorting="True"
  40.         DataSourceID="dataFacOperationsImport" DataKeyNames="operation_id"
  41.         AutoGenerateColumns="False">
  42.         <Columns>
  43.             <asp:CommandField ShowEditButton="True" />
  44.             <asp:BoundField DataField="operation_id" HeaderText="operation_id"
  45.                 InsertVisible="False" ReadOnly="True" SortExpression="operation_id" />
  46.             <asp:BoundField DataField="jour_banque" HeaderText="jour_banque"
  47.                 SortExpression="jour_banque" />
  48.             <asp:BoundField DataField="libelle_banque" HeaderText="libelle_banque"
  49.                 SortExpression="libelle_banque" />
  50.             <asp:BoundField DataField="montant" HeaderText="montant"
  51.                 SortExpression="montant" />
  52.             <asp:BoundField DataField="jour_operation" HeaderText="jour_operation"
  53.                 SortExpression="jour_operation" />
  54.             <asp:BoundField DataField="numero" HeaderText="numero"
  55.                 SortExpression="numero" />
  56.             <asp:BoundField DataField="note" HeaderText="note" SortExpression="note" />
  57.             <asp:BoundField DataField="categorie_id" HeaderText="categorie_id"
  58.                 SortExpression="categorie_id" />
  59.             <asp:BoundField DataField="tiers_id" HeaderText="tiers_id"
  60.                 SortExpression="tiers_id" />
  61.              <asp:BoundField DataField="Tiers" HeaderText="Tiers"  SortExpression="Tiers" />
  62.         </Columns>
  63.     </asp:GridView>
  64. </asp:Content>


 
Merci de votre aide
 
Matz


Message édité par matz le 01-02-2009 à 15:15:21
mood
Publicité
Posté le 01-02-2009 à 15:08:54  profilanswer
 

n°1845888
matz
Posté le 01-02-2009 à 20:03:18  profilanswer
 

Bon j'ai ma propre réponse :)  
 
Il faut spécifier dans le GridView que le champ supplémentaire est en ReadOnly. Ca doit forcer l'update comme si ce paramètre n'existait pas. Donc ajouter  
 

Code :
  1. ReadOnly="True"


 
après SortExpression="Tiers" dans le cas ci dessus


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  ASP

  [ASP.NET] Modiifer le select d'un DataSource / GridView

 

Sujets relatifs
[VBA]Méthode Select... problème[VB.NET] Connexion BDD Access ne se ferme pas apres vérifications
select d'une ligne entière à partir d'une condition[VB.NET] personnaliser un bouton parcourir
Requette Select dans VB et ACCESS[C# - VB.NET - SQL] arrondir un prix (sans virgule)!
[Résolu] [VB.NET] Récupérer le code de sortie d'un service WindowsExpressions Règulières avec VS .Net 2003
[VB.NET] Communiquer avec un service Windows par l'envoi de paramètres[Mysql][PDO] Comment faire un SELECT sur 2 bases ?
Plus de sujets relatifs à : [ASP.NET] Modiifer le select d'un DataSource / GridView


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR