Asp.net 如何从createuserwizard for mysql数据库获取用户ID?

Asp.net 如何从createuserwizard for mysql数据库获取用户ID?,asp.net,mysql,guid,createuserwizard,Asp.net,Mysql,Guid,Createuserwizard,除了asp.net成员资格提供程序提供的信息之外,我正在使用createuserwizard将其他用户信息存储到mysql数据库中。我想将此信息存储到另一个名为“userprofile”的表中。“userprofile”中的用户id为int类型,是引用“my_aspnet_用户”的“id”的外键 这是我的问题: 我似乎无法将新创建用户的用户id存储在我的“userprofile”表中。这些行不起作用: MembershipUser newUser = Membership.Get

除了asp.net成员资格提供程序提供的信息之外,我正在使用createuserwizard将其他用户信息存储到mysql数据库中。我想将此信息存储到另一个名为“userprofile”的表中。“userprofile”中的用户id为int类型,是引用“my_aspnet_用户”的“id”的外键

这是我的问题: 我似乎无法将新创建用户的用户id存储在我的“userprofile”表中。这些行不起作用:

        MembershipUser newUser = Membership.GetUser(RegisterUser.UserName);
        Int32 newUserId = (Int32)newUser.ProviderUserKey;            
这些行将用户名设置为ProviderUserKey返回的guid值,这太奇怪了!另一方面,my_aspnet_用户的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来获取更多信息


任何帮助都将不胜感激。谢谢

SQL语句没有返回新创建的ID值。执行insert语句时不会自动返回。

结果表明上述代码没有任何错误。我在另一个函数中搞乱了用户id值,这在这里造成了麻烦

谢谢你的回复。那么如何获取ID值呢?