asp.net 회원 정보 제공자가 제공 한 정보는 제외하고 createuserwizard를 사용하여 추가 사용자 정보를 mysql 데이터베이스에 저장하고 있습니다. 이 정보를 'userprofile'이라는 다른 테이블에 저장하고 싶습니다. 'userprofile'의 사용자 ID는 int 유형이며 'my_aspnet_users'의 'id'를 참조하는 외래 키입니다.mysql 데이터베이스의 createuserwizard에서 사용자 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