2010-11-18 7 views
1

私はこれに対する答えを見つけようと数時間を費やしましたが、チュートリアルはネット上にはありませんが、または私は彼らが私に言っているものを理解するにはあまりにもn00bです...)asp.netメンバーシップで生成されたUserIdをカスタムテーブル(VB)に挿入

とにかく、私はメンバーシップを使用してasp.netでユーザーを作成しています。私がしたいのは、作成したカスタムテーブルの列に生成されたUserIdを追加して、aspnet_Usersで作成したユーザーとカスタムテーブルの内容をリンクすることです。

ここで私は送信ボタン登録のために持っているコードです:あなたは、私が会員で生成されたユーザーIDを取得し、クライアントのテーブルに挿入しようとして見ることができるように

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 

が。私はUserIdを取得するには数多くのアプローチを試みましたが、何もしませんでした。

メンバーシップはユーザーを作成するために働きます。メンバーシップは後で私が立ち往生している部分です。

任意の助けもいただければ幸いです:)

答えて

1

私はこのコードを使用して、最後にそれを管理する:username.Textは、ユーザーが自分のユーザー名を選択し、ユーザー名のフォーム入力の内容である

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

...。

関連するパラメータ行はこれです:

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

私は非推奨されている使用している方法についての警告を得るが、それは、少なくとも作品!

+0

.AddWithValueの代わりに.Addを使用することに関連する警告。それを変更した後、警告は表示されず、正常に動作します。 – melat0nin

0

Membership.CreateUserはたMembershipUserオブジェクトを返します。返されたオブジェクトからUserIdを取得できます。

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

このコードでは、すべての種類のエラーが発生しています(「MembershipUserは型であり、式として使用できません」など)。 VBの投稿はありますか? – melat0nin

関連する問題