无法调用我的方法:无法从'string'转换为'System.DateTime'

时间:2014-11-06 23:40:49

标签: c# asp.net

我制作了一个文本框,允许用户输入他们的出生日期。我还创建了一个链接到此文本框的数据库,作为我的注册页面的一部分。我创建了一个名为Members的类,它包含两个方法,其中一个方法有参数。 我的问题是我无法在我的网络用户控件中转换日期时间的文本框!

这是类Members.cs

中的两种方法
public string Register()
{
    if (Add())
        return "User Added successfully";
    else
        return "User not added, please change username and try again!";
}

public string Register(string username, string password, string name, string phone, string gender, System.DateTime dateofbirth, string email, string company, string question, string answer)
{
    this.username = username;
    this.password = password;
    this.name = name;
    this.email = email;
    this.phone = phone;
    this.company = company;
    this.gender = gender;
    this.dateofbirth = dateofbirth;
    this.question = question;
    this.answer = answer;
    return Register();
}

我的网络用户控件中的代码:

protected void btnRegister_Click(object sender, EventArgs e)
{    
    System.Threading.Thread.Sleep(3000);
    Members M = new Members();
    lblMsg.Text = M.Register(txtUser.Text, txtPassword.Text, txtName.Text,txtEmail.Text, txtPhone.Text, txtCo.Text, rbnGender.SelectedValue, Convert.ToDateTime(txtDOB.Text), txtQuestion.Text, txtAnswer.Text);         
}

1 个答案:

答案 0 :(得分:1)

您的方法采用以下参数:

username, password, name, phone, gender, dateofbirth, email, company, question, answer

但是你以错误的顺序传递这些:

txtUser.Text, txtPassword.Text, txtName.Text, txtEmail.Text, txtPhone.Text, txtCo.Text, rbnGender.SelectedValue, Convert.ToDateTime(txtDOB.Text), txtQuestion.Text, txtAnswer.Text

应该是:

lblMsg.Text = M.Register(txtUser.Text, txtPassword.Text, txtName.Text, txtPhone.Text, rbnGender.SelectedValue, Convert.ToDateTime(txtDOB.Text), txtEmail.Text, txtCo.Text, txtQuestion.Text, txtAnswer.Text);

但是,您应该使用DateTime.ParseDateTime.ParseExact来转换您的出生日期字段。