2015-11-13 44 views
-1

我正在完成一項任務並需要該流程下一步的幫助。我瞭解如何創建用戶對象,但我不完全理解這些問題。我只是在尋求指導,所以我可以隨時學習。一旦表單成功提交,他們要求我創建一個用戶對象。這是否意味着我需要創建一個新的用戶類並將所有數據成員,屬性和方法放在那裏?還是我留在靜態的主要void類中並在那裏編碼?以下是我到目前爲止的問題和代碼。我將發佈整個項目,但突出顯示我所處的區域。 5號和6號是我堅持的地方。提交表單後,如何創建用戶對象

  1. 創建用戶註冊系統。
  2. 它將需要包含屏幕截圖中顯示的字段。代碼將與其交互的表單控件需要將其名稱更改爲更有意義的內容。不要將textbox1保留爲textbox1。
  3. 密碼和確認密碼字段需要相互匹配,無論是頁面提交時還是確認密碼字段失去焦點時。如果表單無效,則頁面將不會按照以下說明處理。密碼字段需要屏蔽密碼。
  4. 主要是一個組合框(DropDownList風格),將包含您選擇的專業(至少5)的列表。根據選擇的主要內容,您將在專業下方的專業下拉列表中填寫項目,供用戶從這些項目中進行選擇。
  5. **一旦表單提交成功,我們將使用在表單中的值來創建用戶對象將由私有數據成員加屬性的用戶對象
  6. ,所有的字段將是字符串,用主要例外,這將是一個枚舉。**
  7. 清除按鈕將重置窗體到其初始空狀態。 負載最後一個按鈕將重新填充與該創建的最後一個用戶對象的形式,如果沒有用戶對象已經創建,顯示出與指示有錯誤消息的消息框沒有數據加載
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, ""); 
     } 
    } 
} 
} 
+3

您應該一次只詢問一個問題,添加您嘗試的內容,以及爲什麼它不起作用。 –

+0

我只是不清楚我是否需​​要創建另一個班級?如果我能得到這個問題的答案,我可以繼續前進,完成任務,併發布我所做的工作,如果失敗了。你的幫助表示讚賞。 @ B.ClayShannon –

+0

你應該創建一個註冊類,還有'屏幕截圖'我們在這裏看不到它...... – MethodMan

回答

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;線,因爲它只是一個驗證領域。此外,主要字段應該是數字,因爲主要的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; 
    } 
} 

那麼你應該在你的Form類中的Submit_Click方法下有這樣的東西。

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

現在用戶對象包含表單數據並準備好進行數據庫事務。