2010-11-18 14 views
1

Bunun cevabını bulmaya çalışırken birkaç saat harcadım ve her ne kadar net hiçbiri benim için çalışmıyorsa da Ya da bana neyi söylediklerini anlamak için çok n00b'yim ...)asp.net üyeliği tarafından oluşturulan UserId özel tabloya ekle (vb)

Neyse, üyelik kullanarak asp.net'de kullanıcı oluşturuyorum. Yapmak istediğim, oluşturulan userId öğesinin, özel tablodaki öğeleri aspnet_Users'da oluşturulan kullanıcıyla ilişkilendirmek için oluşturduğum özel bir tablodaki bir sütuna eklemektir.

Burada kayıt için var kod gönder düğmesi:

Private Sub submit_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles submit.Click 
    Dim connectionString As String = WebConfigurationManager.ConnectionStrings("edinsec").ConnectionString 
    Dim createStatus As MembershipCreateStatus 
    Membership.CreateUser(fname.Text, password.Text, email.Text, sq.Text, sa.Text, False, createStatus) 

    ''#Something has to happen here! 

    Dim insertSQL As String 

    insertSQL = "INSERT INTO clients (UserId)" 
    insertSQL &= "VALUES (@userId)" 
    Using con As New SqlConnection(connectionString) 
    Dim cmd As New SqlCommand(insertSQL, con) 
    cmd.Parameters.AddWithValue("@firstname", firstname.Text) 


    Try 
     Try 
    con.Open() 
     Catch ex As SqlException 
    MsgBox("Connection Problem - Please Retry Later", 65584, "Connection Error") 
     End Try 
     cmd.ExecuteNonQuery() 
     MsgBox("Thank you for joining us - we will be in touch shortly.", 65600, "Join Up") 
     Response.Redirect("Default.aspx") 
    Catch Err As SqlException 
     MsgBox("Error inserting record - please retry later.", 65584, "Insertion Error") 
    End Try 
    con.Close() 
    End Using 
End Sub 

ben Üyelik oluşturulan kimliği kapmak ve istemciler tabloya eklemek çalışıyorum görebileceğiniz gibi. UserId kapmak için çok sayıda yaklaşım denedim ama hiçbiri işe yaramadı.

Üyelik, kullanıcı oluşturmak için çalışıyor, sonradan takılıyorum olduğum kısım.

bir Yardım çok takdir :)

cevap

1

Bu kodu kullanarak sonunda başardı: username.Text kullanıcı kendi kullanıcı adı seçer kullanıcı adı formu girişi, içeriği

Dim userid As Guid = New Guid(Membership.GetUser(username.Text).ProviderUserKey.ToString()) 

....

ilgili parametre çizgi şudur:

cmd.Parameters.Add("@UserId", g) 

ben kullanımdan kaldırılma kullanıyorum yöntemi hakkında bir uyarı olsun, ama en az çalışıyor!

+0

.AddWithValue yerine .Add ile ilgili uyarı. Bunu değiştirdikten sonra, uyarı yok ve hala iyi çalışıyor. – melat0nin

0

Membership.CreateUser bir MembershipUser nesnesini geri gönderir. UserId döndürülen nesneden alabilirsiniz.

MembershipUser user = Membership.CreateUser(...); 
Guid userId = (Guid)user.ProviderUserKey; 
+0

Bu kodla ilgili her türlü hataları alıyorum ("MembershipUser bir tür ve bir ifade olarak kullanılamaz" vb.). Gönderdiğin VB mi? – melat0nin

İlgili konular