提交表单后,如何创建用户对象

时间:2015-11-13 21:35:16

标签: c# forms visual-studio

我正在完成一项任务,并需要协助处理该流程的下一步。我理解如何创建用户对象,但我并不完全理解这些问题。我只是在寻求指导,所以我可以随时学习。表单成功提交后,他们要求我创建用户对象。这是否意味着我需要创建一个新的用户类并将所有数据成员,属性和方法放在那里?或者我是否留在静态主void类中并在那里编码?这是我到目前为止的问题和代码。我将发布整个项目,但突出显示我遇到的区域。 5号和6号是我被困的地方。

  
      
  1. 创建用户注册系统。
  2.   
  3. 需要包含屏幕截图中显示的字段。代码将与之交互的表单控件需要将其名称更改为更有意义的名称。不要将textbox1保留为textbox1。
  4.   
  5. 密码和确认密码字段需要相互匹配,无论是在提交页面时还是在确认密码字段失去焦点时。如果表单无效,则不会按如下所述处理页面。密码字段需要屏蔽密码。
  6.   
  7. 主要是一个组合框(DropDownList样式),它将包含您选择的主要列表(至少5个)。根据所选的主要内容,您将填写专业下方专业下拉列表中的项目,供用户从这些项目中进行选择。
  8.   
  9. **表单成功提交后,我们将使用表单中的值来创建用户对象
  10.   
  11. 用户对象将由私有数据成员和属性组成,所有字段都是字符串,除了major之外,它将是枚举。**
  12.   
  13. 清除按钮会将表单重置为初始空状态。   加载最后一个按钮将使用创建的最后一个用户对象重新填充表单,如果没有创建用户对象,则显示带有错误消息的MessageBox,指示没有要加载的数据
  14.   
namespace Forms
{
public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }
    private void passwordTxt_TextChanged(object sender, EventArgs e)
    {
        passwordTxt.PasswordChar = 'x';
        passwordTxt.MaxLength = 11;
    }

    private void confPassTxt_TextChanged(object sender, EventArgs e)
    {
        confPassTxt.PasswordChar = 'x';
        confPassTxt.MaxLength = 11;
    }

    private void Form1_Load(object sender, EventArgs e)
    {
        majorBox.Items.Add("");
        majorBox.Items.Add("Math");
        majorBox.Items.Add("Science");
        majorBox.Items.Add("English");
        majorBox.Items.Add("Philosophy");
        majorBox.Items.Add("History");
    }

    private void submitBtn_Click(object sender, EventArgs e)
    {
        if (string.IsNullOrEmpty(firstNameTxt.Text) || string.IsNullOrEmpty(lastNameTxt.Text)
           || string.IsNullOrEmpty(userNameTxt.Text) ||
           string.IsNullOrEmpty(passwordTxt.Text) || string.IsNullOrEmpty(confPassTxt.Text)
           || string.IsNullOrEmpty(majorBox.Text) || string.IsNullOrEmpty(specialtyBox.Text))
        {
            MessageBox.Show("You must enter in all fields before moving forward");
        }
    }

    private void majorBox_SelectedIndexChanged(object sender, EventArgs e)
    {
        if (majorBox.SelectedItem.ToString() == "Math")
        {
            specialtyBox.Items.Clear();
            specialtyBox.Items.Add("Calculus");
            specialtyBox.Items.Add("Statistics");
        }
        else if (majorBox.SelectedItem.ToString() == "Science")
        {
            specialtyBox.Items.Clear();
            specialtyBox.Items.Add("Biology");
            specialtyBox.Items.Add("Chemestry");
        }
        else if (majorBox.SelectedItem.ToString() == "English")
        {
            specialtyBox.Items.Clear();
            specialtyBox.Items.Add("18th Centruy");
            specialtyBox.Items.Add("Teacher");
        }
        else if (majorBox.SelectedItem.ToString() == "Philosophy")
        {
            specialtyBox.Items.Clear();
            specialtyBox.Items.Add("Aristotal");
            specialtyBox.Items.Add("Socrates");
        }
        else
        {
            specialtyBox.Items.Clear();
            specialtyBox.Items.Add("Peace");
            specialtyBox.Items.Add("War");
        }
    }

    private void confPassTxt_Validating(object sender, CancelEventArgs e)
    {
        if (confPassTxt.Text != passwordTxt.Text)
        {
            wrongPass.SetError(confPassTxt, "Worng password");
        }
        else
        {
            wrongPass.SetError(confPassTxt, "");
        }
    }
}
}

1 个答案:

答案 0 :(得分:0)

您只需定义用户类:

class User {
    private int id;
    private string name;
    private string job;
    ...
}

然后在一些验证后的submitBtn_Click方法中创建一个User类的新实例:

private void submitBtn_Click(object sender, EventArgs e)
    {
        if (string.IsNullOrEmpty(firstNameTxt.Text) || string.IsNullOrEmpty(lastNameTxt.Text)
           || string.IsNullOrEmpty(userNameTxt.Text) ||
           string.IsNullOrEmpty(passwordTxt.Text) || string.IsNullOrEmpty(confPassTxt.Text)
           || string.IsNullOrEmpty(majorBox.Text) || string.IsNullOrEmpty(specialtyBox.Text))
        {
            MessageBox.Show("You must enter in all fields before moving forward");

        } else {
            User userObj = new User();
        }
}

你也应该在你的用户类中加入一个构造函数来填充User类成员。

编辑:

好的,你应该删除类定义中的private string confPassword;行,因为它只是一个验证字段。主要字段也应该是数字,因为major的id应该存储在数据库中。

 class Members
 {
    private string firstName;
    private string lastName;
    private string userName;
    private string password;
    private int major;
    private int specialty;

    public Members(string firstName, string lastName, string userName,string password, int major, int specialty)
    {
        this.firstName = firstName;
        this.lastName = lastName;
        this.userName = userName;
        this.password = password;
        this.major = major;
        this.specialty = specialty;
    }
}

那么你应该在Submit_Click方法下的Form Class中有这样的东西。

   else
        {
            Members user = new Members(firstNameStrVal, lastNameStrVal, userNameStrVal, passwordStrVal, majorIntVal, specialtyIntVal);
            ....
            your database insert will be here
        }

现在,用户对象包含表单数据并准备好进行数据库事务。