none
type unique identifier RRS feed

  • Question

  • Bonjour ,
    J'aimerai savoir comment fonctionnent les affectations de  type unqueidentifier Guid , en fait j'ai deux tables sql users et users_membership  .
    dans ma table users_membership j'ai la clé etrangère userid de type Guid.
    Pour ajouter une nouvelle ligne à ma table users_membership j'utilise un dataset et un dataadapter, bref pour recuperer la valeur de userid j'ai fait comme suit :

     

          // dataset//        
    
     ds_test ds_dnn = new ds_test();
            ds_test.aspnet_UsersRow aspuser =   ds_dnn.aspnet_Users.Newaspnet_UsersRow();
           ds_test.aspnet_MembershipRow asp = ds_dnn.aspnet_Membership.Newaspnet_MembershipRow();
    
          // remplissage de la table users//
    
            Guid id = Guid.NewGuid();
             aspuser. UserId = id;
             aspuser.UserName = txt_email.Text;
             aspuser.LoweredUserName = txt_email.Text;
    
          // remplissage de la table users_membership//
    
            asp.UserId =   aspuser.UserId;
             asp.Email = txt_email.Text;
            asp.Password = mdp1.Text; 
            asp.PasswordFormat = 2;
            asp.PasswordSalt = mdp2.Text;
            asp.IsApproved=true;
            asp.IsLockedOut = false;
    
            // table adapter aspnet_membership//
            ds_dnn.aspnet_Membership.Addaspnet_MembershipRow(asp);
            ds_testTableAdapters.aspnet_MembershipTableAdapter tasp = new ds_testTableAdapters.aspnet_MembershipTableAdapter();
            tasp.Update(ds_dnn.aspnet_Membership);
    
            // table adapter aspnet_uers//
            ds_dnn.aspnet_Users.Addaspnet_UsersRow(aspuser);
            ds_testTableAdapters.aspnet_UsersTableAdapter taspuser = new ds_testTableAdapters.aspnet_UsersTableAdapter();
            taspuser.Update(ds_dnn.aspnet_Users);
    Mon problèm c'est que j'ai un message d'erreur : invalid specified cast "asp.UserId =   aspuser.UserId;"
    Comment je pourrai faire?
    Merci

    jeudi 4 juin 2009 10:37

Réponses

Toutes les réponses

  • Il semble que tu implémentes une gestion personnelle du membership mais on ne voit pas de déclaration de te variable "asp". En ne connaisant pas le type on peut juste supposer qu'il s'agit d'une classe personnelle pour gérer ton user et que peut-etre la propriété asp.UserId n'est pas du type guid.


    jeudi 4 juin 2009 12:09
    Modérateur
  • Bonjour ,
    Merci nikho pour ta réponse,

    En fait je travaille avec des BD dotnetnuke aspnet_membership et aspnet_users. la table aspnet_membership à une clé etrangère userid de type Guid qui est la clé primaire de asp_users.

    Pour la variabbe asp  c'est une nouvelle ligne dans la table aspnet_menbership
    ds_test.aspnet_MembershipRow      asp = ds_dnn.aspnet_Membership.Newaspnet_MembershipRow();

    Pour la variable aspuser c'est une nouvelle ligne dans la table aspnet_users
    ds_test.aspnet_UsersRow   aspuser =   ds_dnn.aspnet_Users.Newaspnet_UsersRow();
    Merci

    jeudi 4 juin 2009 13:36
  • Désolé mais je ne connais pas du tout dotnetnuke. Peux tu vérifier que asp.UserId est bien du même type que aspuser.UserId non pas en base mais à partir du modèle objet car a priori c'est là que tu as ton problème de cast.

    En regardant rapidement, il semble néanmoins qu'il existe une couche de service dans dotnetnuke qui propose une implémentation du membership Asp.Net et donc tu n'aurais pas à utiliser les datasets : voir
    DotNetNuke.Entities.Users.UserController.CreateUser(...)
    Peut être trouveras tu plus d'info sur un forum dédié à dotnetnuke. Par exemple ce post semble utiliser l'API pour créer un user
    http://orlando.dotnetnukeug.net/Forums/tabid/77/forumid/7/threadid/174/scope/posts/Default.aspx

    et celui-ci qui déconseille d'accéder aux tables directement :
    http://www.dotnetnuke.com/Community/Forums/tabid/795/forumid/111/postid/311296/scope/posts/Default.aspx

    J'espère que ça t'aidera quand même

    jeudi 4 juin 2009 14:17
    Modérateur
  • Salut ,

    "En regardant rapidement, il semble néanmoins qu'il existe une couche de service dans dotnetnuke qui propose une implémentation du membership Asp.Net et donc tu n'aurais pas à utiliser les datasets" : voir
    DotNetNuke.Entities.Users.UserController.CreateUser(...)
    En fait , je ne suis que debutante dans la programation sous DNN et je ne sais pas comment DNN structure ses données , c'est pourquoi j'ai eu l'idée de travailler avec un dataset.

    et celui-ci qui déconseille d'accéder aux tables directement :
     www.dotnetnuke.com/Community/Forums/tabid/795/forumid/111/postid/311296/scope/posts/Default.aspx

    Merci pour le lien , je cherche encore comment faire.
     
    jeudi 4 juin 2009 14:53
  • un example de création ici via API en c#
    jeudi 4 juin 2009 15:14
    Modérateur
  • Je te remercie nikho ,

    Pour mieux expliquer mon problème je dirai que pour les besoins de mon portail , je voudrai personnaliser la façon d'enregistrements de mes utilisateurs. Pour cela , je voudrai créer mon module accout / login  qui va utiliser deux BD ( celle de DNN et une specifiques à mon besoin ) et qui va remplacer le module acount login de dnn .

    Merci pour  tes reponses.
    jeudi 4 juin 2009 16:08