IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

GridView, ObjectDataSource et DeleteMethod


Sujet :

ASP.NET

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 64
    Par défaut GridView, ObjectDataSource et DeleteMethod
    Bonjour,

    Je ne parviens pas à réaliser une suppression à partir de mon GridView. Tout semble correct mais quand je clique sur supprimer, l'objet passé en paramètre dans ma méthode de suppression est vide!

    Mon GridView:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <asp:GridView ID="GridView1" Runat="server" DataSourceID="ObjectDataSource1" AutoGenerateColumns="False"
                AllowPaging="True" AllowSorting="True">
                <Columns>
                  <asp:BoundField HeaderText="Login" DataField="Login" SortExpression="LOGIN"/>
                  <asp:BoundField HeaderText="Code employé" DataField="EmpCode" SortExpression="EMPCODE" />
                  <asp:CommandField ShowDeleteButton="True"/>
                </Columns>
    </asp:GridView>
              <asp:ObjectDataSource ID="ObjectDataSource1" Runat="server" TypeName="BLL.UserBLL"
                SelectMethod="GetUsers" DeleteMethod="DeleteUser" DataObjectTypeName="BusinessObjects.UserBO" SortParameterName="sortExpression">
              </asp:ObjectDataSource>
    Ma méthode de suppression:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
            public static void DeleteUser(UserBO pUser)
            {
     
                OleDbConnection cn = DbHelper.GetConnexion();
                cn.Open();
                OleDbTransaction transaction = cn.BeginTransaction();
     
                try
                {
                    string sql = "DELETE FROM UTILISATEUR WHERE LOGIN= ?";
                    OleDbParameter[] db_params = new OleDbParameter[] {
    					DbHelper.MakeParam("@LOGIN", OleDbType.VarChar, 11, pUser.Login)
                    };
     
                    DbHelper.ExecuteNonQuery(sql, CommandType.Text, db_params, transaction);
     
                    transaction.Commit();
     
                }
                catch (Exception e)
                {
                    transaction.Rollback();
                    throw e;
                }
                finally
                {
                    DbHelper.FreeConnection(cn);
                }
     
            }
    Qu'ai-je donc oublié??

    Merci de votre aide!

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 64
    Par défaut
    je viens de trouver un sujet similaire sur developpez (pourtant pas faute d'avoir cherché avant...)!

    Il fallait que je définisse la propriété DataKeyNames.
    J'ai mis DataKeyNames="Login", ça marche, mais on ne peut pas définir plusieurs champs à la fois en clé?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 64
    Par défaut
    Je viens de résoudre mon souci!

    Pour des clés multiples, séparer par une virgule chaque nom de colonne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
              <asp:GridView ID="GridView1" Runat="server" DataSourceID="ObjectDataSource1" AutoGenerateColumns="False"
                AllowPaging="True" AllowSorting="True" DataKeyNames="Login,EmpCode">
    J'espère que cette "discussion" servira à d'autres

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. gridview objectdatasource et list
    Par xian21 dans le forum C#
    Réponses: 1
    Dernier message: 12/09/2008, 14h50
  2. Gridview / objectdatasource (SELECT)
    Par Jimmy_S dans le forum ASP.NET
    Réponses: 1
    Dernier message: 16/10/2007, 17h53
  3. Réponses: 2
    Dernier message: 24/08/2007, 10h20
  4. Réponses: 5
    Dernier message: 09/02/2007, 18h46
  5. Réponses: 6
    Dernier message: 06/02/2007, 16h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo