GridView édition suppression etc... en 2.0 dans VS2008

Signaler
Messages postés
3
Date d'inscription
jeudi 28 décembre 2000
Statut
Membre
Dernière intervention
8 décembre 2008
-
Messages postés
3
Date d'inscription
jeudi 28 décembre 2000
Statut
Membre
Dernière intervention
8 décembre 2008
-
Bonjour à tous et à toutes,

J'ai passé de nombreuses heures à arpenter les forums pour comprendre pourquoi mes updates ne se font pas sur mon gridview et j'ai beau avoir récupérer de nombreux tutoriels et éléments sur des forums, l'update ne se fait tjs pas.
Je suis un perdu parce qu'il n'y a aucun code qui ait l'air de fonctionner dans le cas (pourtant très simple) de mon projet.

L'insert fonctionne et le delete aussi (sauf sur un point)

J'ai un accessDataSource qui a toutes ses requêtes de configurées : update, delete et insert.
 Dans chacune, j'ai rajouté la collection de paramètres

Dans le VB j'ai défini pour chaque évènement (gridview_rowupdating) l'action à faire :
AccessDataSource1.update() (pour cet exemple d'updating)
J'ai meme fait un label qui récupère la commande. Il me renvoie la ligne d'update sans interpréter les paramètres.

De même dans le code vb comment peut on récupérer la row qui subit l'update et les éléments qui sont dedans (findcontrol) ?

Ci dessous le code :
la gridview :
<

asp:GridView
ID="GridView1"
runat="server"
AllowPaging="True"

AutoGenerateColumns="False"
DataKeyNames="Id_Photo"

DataSourceID="AccessDataSource1"
ShowFooter="True">

<Columns>

<asp:BoundField
DataField="Id_Photo"
HeaderText="Id_Photo"

InsertVisible="False"
ReadOnly="True"
SortExpression="Id_Photo"
/>

<asp:BoundField
DataField="NomPhotoGrande"
HeaderText="NomPhotoGrande"

SortExpression="NomPhotoGrande"
/>

<asp:BoundField
DataField="NomPhotoPetite"
HeaderText="NomPhotoPetite"

SortExpression="NomPhotoPetite"
/>

<asp:BoundField
DataField="DateDepot"
HeaderText="DateDepot"

SortExpression="DateDepot"
/>

<asp:CheckBoxField
DataField="Active"
HeaderText="Active"

SortExpression="Active"
/>

<asp:BoundField
DataField="Nom"
HeaderText="Nom"
SortExpression="Nom"
/>

<asp:TemplateField
HeaderText="Actions"
SortExpression="Id_Photo">

<EditItemTemplate>

<asp:Label
ID="Label1"
runat="server"
Text='<%# Eval("Id_Photo") %>
'></asp:Label>

&nbsp;<asp:ImageButton
ID="ImageButton3"
runat="server"

CommandArgument='<%# Eval("Id_Photo") %>
'
CommandName="update"

ImageUrl="~/images/disk.png"
/>

&nbsp;<asp:ImageButton
ID="ImageButton4"
runat="server"

CommandArgument='<%# Eval("Id_Photo") %>
'
CommandName="cancel"

ImageUrl="~/images/arrow_undo.png"
/>

</EditItemTemplate>

<FooterTemplate>

<asp:ImageButton
ID="ImageButton5"
runat="server"

ImageUrl="~/images/accept.png"
/>

</FooterTemplate>

<ItemTemplate>

<asp:Label
ID="Label1"
runat="server"
Text='<%# Bind("Id_Photo") %>
'></asp:Label>

<asp:ImageButton
ID="ImageButton1"
runat="server"

CommandArgument='<%# Eval("Id_Photo") %>
'
CommandName="Edit"

ImageUrl="~/images/pencil.png"
/>

&nbsp;<asp:ImageButton
ID="ImageButton2"
runat="server"

CommandArgument='<%# Eval("Id_Photo") %>
'
ImageUrl="~/images/bin_empty.png"
/>

</ItemTemplate>

</asp:TemplateField>

</Columns>

</asp:GridView>

et l'accessdatasource :
<

asp:AccessDataSource
ID="AccessDataSource1"
runat="server"

DataFile="~/db/bureau.mdb"

SelectCommand="SELECT * FROM [Photos_Gallerie] WHERE ([Active] = ?) ORDER BY [DateDepot] DESC"

UpdateCommand="UPDATE Photos_Gallerie SET [NomPhotoGrande] = @NomPhotoGrande, [NomPhotoPetite] = @NomPhotoPetite, [Nom] = @Nom WHERE ([Id_Photo] = @Id_Photo)"

InsertCommand="INSERT INTO Photos_Gallerie(NomPhotoGrande, NomPhotoPetite, DateDepot, Active, Nom) VALUES (:NomPhotoGrande, :NomPhotoPetite, NOW(), true, :Nom)">

<SelectParameters>

<asp:Parameter
DefaultValue="true"
Name="Active"
Type="Boolean"
/>

</SelectParameters>

<UpdateParameters>

<asp:Parameter
type="String"
Name="NomPhotoGrande"
/>

<asp:Parameter
type="String"
Name="NomPhotoPetite"
/>

<asp:Parameter
type="String"
Name="Nom"
/>

<asp:Parameter
type="Int32"
Name="Id_Photo"
/>

</UpdateParameters>

<InsertParameters>

<asp:Parameter
Name="NomPhotoGrande"
/>

<asp:Parameter
Name="NomPhotoPetite"
/>

<asp:Parameter
Name="Nom"
/>

</InsertParameters>

</asp:AccessDataSource>

Merci pour toute l'aide que vous pourrez m'apporter !!!

2 réponses

Messages postés
410
Date d'inscription
dimanche 1 février 2004
Statut
Membre
Dernière intervention
8 mai 2010

bonjour,
Vérifie que la casse de "Update" est bonne. Je crois que le CommandName y est sensible
SuperBouly
Messages postés
3
Date d'inscription
jeudi 28 décembre 2000
Statut
Membre
Dernière intervention
8 décembre 2008

Bonjour,
j'ai trouvé une partie de réponse :
Dans VS2008 il faut faire un glisé-déposé de la table concernée (je n'ai pas trouvé d'explications pour le moment) depuis l'écran des connexions.
Automatiquement, il crée les connexions appropriées sur pour les quatres instructions SQL.
Après, j'ai trouvé aussi pour le sparamètres.

En fait en AccessDataSource, il faut appeler les paramètres dans l'ordre de leur arrivée dans la requete :
Ainsi
InsertCommand="INSERT INTO Photos_Gallerie(NomPhotoGrande, NomPhotoPetite, DateDepot, Active, Nom) VALUES (:NomPhotoGrande, :NomPhotoPetite, NOW(), true, :Nom)">
Devient :
InsertCommand="INSERT INTO Photos_Gallerie(NomPhotoGrande, NomPhotoPetite, DateDepot, Active, Nom) VALUES (?, ?, Date, true, ?">

Et les paramètres appelés en conséquence dans l'ordre : Nomphotogrande, nomphotopetite et nom :

Je tâtonne mais on y arrive