我正在使用createuserwizard將附加用戶信息存儲到mysql數據庫中,除了由asp.net成員資格提供程序提供的信息。我想將此信息存儲到另一個名爲「userprofile」的表中。 'userprofile'中的用戶ID是int類型的,並且是引用'my_aspnet_users'的'id'的外鍵。如何從createuserwizard獲取mysql數據庫的用戶ID?
這是我的問題: 我似乎無法獲得新創建的用戶的用戶ID存儲在我的'userprofile'表中。這些行不工作:
MembershipUser newUser = Membership.GetUser(RegisterUser.UserName);
Int32 newUserId = (Int32)newUser.ProviderUserKey;
這些線路引起的用戶名設置爲通過ProviderUserKey返回的GUID值,它是如此奇怪!另一方面,my_aspnet_users的id列在創建用戶時會增加1。沒有任何東西被添加到'userprofile'表中。
這是我插入上面的代碼:
protected void RegisterUser_CreatedUser(object sender, EventArgs e)
{
FormsAuthentication.SetAuthCookie(RegisterUser.UserName, false /* createPersistentCookie */);
string continueUrl = RegisterUser.ContinueDestinationPageUrl;
if (String.IsNullOrEmpty(continueUrl))
{
continueUrl = "~/";
}
// Retrieve all the values from the registration form to insert into database
TextBox FirstNameTextBox = (TextBox)RegisterUserWizardStep.ContentTemplateContainer.FindControl("FirstName");
TextBox LastNameTextBox = (TextBox)RegisterUserWizardStep.ContentTemplateContainer.FindControl("LastName");
TextBox UsernameTextBox = (TextBox)RegisterUserWizardStep.ContentTemplateContainer.FindControl("UserName");
TextBox EmailTextBox = (TextBox)RegisterUserWizardStep.ContentTemplateContainer.FindControl("Email");
// Get the UserId of the just-added user
MembershipUser newUser = Membership.GetUser(RegisterUser.UserName);
Int32 newUserId = (Int32)newUser.ProviderUserKey;
MySqlConnection DBConn = new MySqlConnection(WebConfigurationManager.ConnectionStrings["LocalMySqlServer"].ConnectionString);
MySqlCommand DBCmd = new MySqlCommand();
try
{
// Add Insert statement to insert into database
DBCmd = new MySqlCommand(
"INSERT INTO userprofile(UID, Email, Fname, Lname)" +
"VALUES (@UID, @Email, @Fname, @Lname)", DBConn);
// Add database parameters
DBCmd.Parameters.Add("@UID", MySqlDbType.Int32).Value = newUserId;
DBCmd.Parameters.Add("@Email", MySqlDbType.VarChar).Value = EmailTextBox.Text;
DBCmd.Parameters.Add("@Fname", MySqlDbType.VarChar).Value = FirstNameTextBox.Text;
DBCmd.Parameters.Add("@Lname", MySqlDbType.VarChar).Value = LastNameTextBox.Text;
DBCmd.ExecuteNonQuery();
}
catch(Exception exp){
Response.Write(exp);
}
// Close database connection and dispose database objects
DBCmd.Dispose();
DBConn.Close();
DBConn = null;
Response.Redirect(continueUrl);
}
有沒有人使用MySQL和其他信息的工作的CreateUserWizard?
任何幫助,將不勝感激。謝謝!
感謝您的回覆。那麼我如何獲得ID值? – coder