[英]How to move customer information from ASP.NET database to your database?
我正在使用CreateUserWizard创建用户,但是asp.net会自动将用户添加到ASP.NET数据库中,我想在数据库和客户表中添加用户。 我已经在下面的同行中尝试了这些代码,但没有任何反应
private MembershipUser _CurrentUser = null;
private MembershipUser CurrentUser
{
get
{
if (_CurrentUser == null)
{
_CurrentUser = Membership.GetUser(HttpContext.Current.User.Identity.Name);
}
return _CurrentUser;
}
}
protected void CreateUserWizard1_CreatedUser(object sender, EventArgs e)
{
ProfileCommon p = (ProfileCommon)ProfileCommon.Create(CreateUserWizard1.UserName, true);
p.FirstName = ((TextBox)CreateUserWizard1.CreateUserStep.ContentTemplateContainer.FindControl("FirstName")).Text;
p.LastName = ((TextBox)CreateUserWizard1.CreateUserStep.ContentTemplateContainer.FindControl("LastName")).Text;
p.ContactNumber = ((TextBox)CreateUserWizard1.CreateUserStep.ContentTemplateContainer.FindControl("ContactNumber")).Text;
// Save profile - must be done since we explicitly created it
p.Save();
}
请帮助我找出我的问题
您需要查看您的web.config文件,并为默认成员资格提供程序提供一个不同的连接字符串。 试试这个,但是用你的连接字符串。
<connectionStrings>
<remove name="LocalSqlServer"/>
<add name="LocalSqlServer" connectionString="Data Source=myServer;Initial Catalog=myDB;Integrated Security=True" providerName="System.Data.SqlClient"/>
</connectionStrings>
请注意,您必须将所有成员资格和角色表从“ ASP.NET数据库”复制到数据库中,以进行登录等操作,然后才能继续工作。
您应该使用CreatedUser事件并调用将新客户插入到customers表中的方法。
protected void CreateUserWizard1_CreatedUser(object sender, EventArgs e)
{
CreateCustomer(CreateUserWizard1.UserName, CreateUserWizard1.Email);
// Your code here
}
然后实现创建客户的方法:
public void CreateCustomer(string userName, string email)
{
const string insertCustomerCommand = "INSERT INTO Customers (userName, email) VALUES (@userName, @email)";
var connectionString = ConfigurationManager.ConnectionStrings["myConnectionString"];
var sqlConnection = new SqlConnection(connectionString.ToString());
var sqlCommand = new SqlCommand(insertCustomerCommand, sqlConnection);
sqlCommand.Parameters.Add("@userName", SqlDbType.NVarChar).Value = userName;
sqlCommand.Parameters.Add("@email", SqlDbType.NVarChar).Value = email;
// Eventually wrap in a try catch statement to handle any sql exceptions.
sqlCommand.ExecuteNonQuery();
}
按照您的代码,应该是这样的:
protected void CreateUserWizard1_CreatedUser(object sender, EventArgs e)
{
var customer = new Customer();
customer.InsertCustomer(CUSTOMER_ID, // Provide a unique customer Id
TextboxFirstName.Text, // Provider the control that holds the first name
TextboxLastName.Text, // Provider the control that holds the last name
TextboxContactNumber.Text, // Provider the control that holds the contact number
CreateUserWizard1.Email,
CreateUserWizard1.UserName);
}
您必须提供有效的客户ID。 Sql Helper类中是否有任何方法可以生成此方法?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.