1. 程式人生 > >用c#實現簡單的登入和註冊功能

用c#實現簡單的登入和註冊功能

      這兩天c#大作業要求做一個簡單的通訊錄系統,我就先做了登入和註冊的功能,在網上看了一些程式碼,自己再做,終於做出來了。做的不是很美觀,但是可以簡單實現。

    首先用sqlserver建表。我建了一個名為user_info的表,新增username和passdword兩個欄位。


建立登入頁面,改了一些控制元件的名稱,效果如下圖:



登入介面程式碼如下:

  private void btn_Login_Click(object sender, EventArgs e)
        {
            try
            {
                if (txtUsn.Text.Trim() == "")
                {
                    labMessage.Text = "使用者名稱不能為空";
                    txtUsn.Focus();
                    return;
                }
                else if (txtPwd.Text.Trim() == "")
                {
                    labMessage.Text = "密碼不能為空!";
                    txtPwd.Focus();
                    return;
                }
                string sqlStr = "select username,passdword from user_info where 
[email protected]
"; DataSet ds = new DataSet(); MyMeans.conn.ConnectionString = MyMeans.connStr; MyMeans.conn.Open(); SqlCommand cmd = new SqlCommand(sqlStr, MyMeans.conn); cmd.Parameters.Add(new SqlParameter("@username", SqlDbType.VarChar, 50)); cmd.Parameters["@username"].Value = txtUsn.Text; SqlDataReader sdr = cmd.ExecuteReader(); if (!sdr.Read()) { labMessage.Text = "使用者名稱不存在!請重新輸入"; txtUsn.Text = ""; txtPwd.Text = ""; txtUsn.Focus(); } else if (sdr["passdword"].ToString().Trim() == txtPwd.Text.Trim()) { MessageBox.Show("恭喜您已成功登入", "確定",MessageBoxButtons.OK,MessageBoxIcon.Asterisk); F_AddressList faddlistfrm = new F_AddressList(); faddlistfrm.ShowDialog(); } else { labMessage.Text = "密碼錯誤!請重新輸入!"; txtUsn.Text = ""; txtPwd.Text = ""; } }

註冊介面程式碼如下:

 private void button1_Click(object sender, EventArgs e)
        {
            if(txt_username.Text=="")
            {
                MessageBox.Show("使用者名稱不能為空!");
            }
            if(txt_pwd.Text=="")
            {
                MessageBox.Show("密碼不能為空!");
            }
            if(txt_pwd2.Text=="")
            {
                MessageBox.Show("確認密碼不能為空!");
            }
            if(txt_pwd.Text!=txt_pwd2.Text)
            {
                MessageBox.Show("密碼和確認密碼不相符!");
                txt_pwd.Text= "";
                txt_pwd2.Text = "";
            }
            try
            {
                string sql = string.Format("select count(*) from user_info where username='{0}'", txt_username.Text);
                SqlCommand cmd = new SqlCommand(sql, MyMeans.conn);

                MyMeans.conn.Open();
                int a = (int)cmd.ExecuteScalar();//返回一個值,看使用者是否存在
                StringBuilder strsql = new StringBuilder();
                if (a==0)
                {
                    strsql.Append("insert into user_info(username,passdword)");
                    strsql.Append("values(");
                    strsql.Append("'" + txt_username.Text.Trim().ToString() + "',");
                    strsql.Append("'" + txt_pwd.Text.Trim().ToString() + "'");
                    strsql.Append(")");
                    using (SqlCommand cmd2 = new SqlCommand(strsql.ToString(), MyMeans.conn))
                    {
                        cmd2.ExecuteNonQuery();

                    }
                        
                        MessageBox.Show("註冊成功!", "資訊提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                        this.Close();
                    
                }


               
                else
                {
                    MessageBox.Show("使用者已存在!", "資訊提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                    this.Close();
                }
                

            }

            catch(Exception ex)
            {
                MessageBox.Show(ex.ToString());
                Application.Exit();
            }

            finally
            {
                MyMeans.conn.Close();
                MyMeans.conn.Dispose();
            }
            
        
        }

在學校大部分只是學習理論,實踐比較少,難得有機會可以動手做一下,雖然剛開始覺得一些東西不知道怎麼用,也不知道怎麼去寫,查一些書,看一些別人的程式碼,照著寫一寫,認真理解,最後就能做出來,收穫也挺大的。