Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Question méthode winform

2 réponses
Avatar
Rogério Altman
Bonjour à tous,

Etant confronté à lé creation d'un formulaire qui doit accéder à des données
d'une table sql server je me pose la question suivante: que vaut il mieux
faire, utliser les controles de serveur (formview en l'ocurrence) ou bien
passer par du code behind?
Lorsque je le fais avec un formview les liens insert, delete, update se
créent automatiquement (après avoir créer un dataset dans le dossier
app_code), mais j'y rencontre des difficultés lorsque je dois mettre à jour
les données d'un champ à partir d'une requête du type update sans toucher
aux autres champs (lorsque je le fais, les champs no changés sont remis à
vide).
Avec du code behind j'arrive à y voir lpus clair, mais la création des liens
pour insert, update ou delete me parait bien plus fastidieuse.
En fin de compte, que choisr? Code behind ou controle serveur?
Merci de vos conseils

2 réponses

Avatar
Gilles TOURREAU [MVP]
"Rogério Altman" a écrit dans le message de
news:
Bonjour à tous,

Etant confronté à lé creation d'un formulaire qui doit accéder à des
données d'une table sql server je me pose la question suivante: que vaut
il mieux faire, utliser les controles de serveur (formview en l'ocurrence)
ou bien passer par du code behind?



Vous n'êtes donc pas sous Windows Forms (fenêtre Windows) mais sous ASP
.NET...

Lorsque je le fais avec un formview les liens insert, delete, update se
créent automatiquement (après avoir créer un dataset dans le dossier
app_code), mais j'y rencontre des difficultés lorsque je dois mettre à
jour les données d'un champ à partir d'une requête du type update sans
toucher aux autres champs (lorsque je le fais, les champs no changés sont
remis à vide).



Pouvez-vous poster votre code ASP .NET et votre code behind...

Avec du code behind j'arrive à y voir lpus clair, mais la création des
liens pour insert, update ou delete me parait bien plus fastidieuse.
En fin de compte, que choisr? Code behind ou controle serveur?
Merci de vos conseils




La réponse est les 2 ! ;-)
Utilisez au maximum les "contrôles serveurs", c'est à dire du code ASP .NET
dans votre cas... pour développer plus rapidement et utilisez au maximum le
designer...
La création de contrôles serveurs par programmation (dans le code behind)
doit être réalisé dans les cas complexes ou vous devez ajouter des contrôles
à la demande...

Cordialement

--
Gilles TOURREAU - MVP C#


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr
Avatar
Rogério Altman
Merci de votre réponse.

Lorsque je le fais avec un formview les liens insert, delete, update se
créent automatiquement (après avoir créer un dataset dans le dossier
app_code), mais j'y rencontre des difficultés lorsque je dois mettre à
jour les données d'un champ à partir d'une requête du type update sans
toucher aux autres champs (lorsque je le fais, les champs no changés sont
remis à vide).





voici donc pour ce qu concerne mon probleme de formview. La seule solution
que j'ai trouvé pour contourner le problème a été de créer de nouveaux
objectdatasource... mais ce n'est peut-être pas ce qu'il faut faire...:

**************
<asp:FormView ID="FormView1" runat="server" DataKeyNames="id_theme"
DataSourceID="ObjectDataSource1">
<EditItemTemplate>
<asp:TextBox ID="theme_1" runat="server" Text='<%# Bind("theme_1")
%>'></asp:TextBox><br />
<asp:LinkButton ID="UpdateButton" runat="server" CausesValidation="True"
CommandName="Update"
Text="Mettre à jour"></asp:LinkButton>
<asp:LinkButton ID="UpdateCancelButton" runat="server"
CausesValidation="False" CommandName="Cancel"
Text="Annuler"></asp:LinkButton>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="theme" runat="server" Text='<%# Bind("theme_1")
%>'></asp:Label>
<asp:LinkButton ID="EditButton" runat="server" CausesValidation="False"
CommandName="Edit"
Text="Modifier"></asp:LinkButton>
</ItemTemplate>
</asp:FormView>

<asp:FormView ID="FormView2" runat="server" DataKeyNames="id_theme"
DataSourceID="ObjectDataSource1">
<EditItemTemplate>
sel_1_st_1_1:
<asp:TextBox ID="sel_1" runat="server" Text='<%# Bind("sel_1")
%>'></asp:TextBox><br />
<asp:LinkButton ID="UpdateButton" runat="server" CausesValidation="True"
CommandName="Update"
Text="Mettre à jour"></asp:LinkButton>
<asp:LinkButton ID="UpdateCancelButton" runat="server"
CausesValidation="False" CommandName="Cancel"
Text="Annuler"></asp:LinkButton>
</EditItemTemplate>
<ItemTemplate>
sel_1_st_1_1:
<asp:Label ID="sel_1" runat="server" Text='<%# Bind("sel_1")
%>'></asp:Label><br />
<asp:LinkButton ID="EditButton" runat="server" CausesValidation="False"
CommandName="Edit"
Text="Modifier"></asp:LinkButton>
<asp:LinkButton ID="DeleteButton" runat="server" CausesValidation="False"
CommandName="Delete"
Text="Supprimer"></asp:LinkButton>
</ItemTemplate>
</asp:FormView>

<asp:ObjectDataSource ID="ObjectDataSource1" runat="server"
DeleteMethod="Delete"
InsertMethod="Insert" OldValuesParameterFormatString="original_{0}"
SelectMethod="GetData"
TypeName="DataSet1TableAdapters.sous_theme_11TableAdapter"
UpdateMethod="Update">

<UpdateParameters>
<asp:Parameter Name="theme_1" Type="String" />
<asp:Parameter Name="sel_1" Type="String" />

<asp:Parameter Name="id_theme" Type="Int32" />
</UpdateParameters>
<SelectParameters>
<asp:QueryStringParameter Name="id_theme" QueryStringField="val"
Type="Int32" />
</SelectParameters>

</asp:ObjectDataSource>
***********