Bonjour à tous,
Je suis nouveau sur ce site et je débute en ASP.NET (avec Visual Web Developer 2008 Express Edition).
Je dois créer un site avec enregistrement d'utilisateurs. Pour ce faire, j'utilise un contrôle CreateUserWizard que j'ai personnalisé. Jusque là, aucun problème. Ensuite j'ai créé une table "UserProfiles" dans la base de données ASPNETDB.MDF qui contient des informations complémentaires. La clé primaire est UserId et est liée au UserId de la table "aspnet_Users". J'ai rajouté un SqlDataSource pour lequel j'ai mis :
J'ai ensuite surchargé la méthode CreatedUser afin d'insérer dans ma table "UserProfiles" les nouveaux champs. Pour l'exemple ici je me suis limité à un seul champ ("Identifiant" nchar(9))
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ASPNETDBConnectionString %>" InsertCommand="INSERT INTO UserProfiles(UserId, Identifiant) VALUES (@UserId, @Identifiant)"> </asp:SqlDataSource>
Tout fonctionne très bien... Toutefois et même si les chances sont infimes, je veux être sûr que l'identifiant n'existe pas déjà. Comment dois-je faire ??
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 protected void CreateUserWizard1_CreatedUser(object sender, EventArgs e) { MembershipUser user = Membership.GetUser(CreateUserWizard1.UserName); Object id = user.ProviderUserKey; Random r = new Random(); string Identifiant = r.Next(100000000, 1000000000).ToString(); SqlDataSource DataSource = (SqlDataSource)CreateUserWizardStep1.ContentTemplateContainer.FindControl("SQLdataSource1"); DataSource.InsertParameters.Add("UserId", id.ToString()); DataSource.InsertParameters.Add("Identifiant", Identifiant); DataSource.Insert(); }
Merci,
Partager