Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Trang 1 của 2 12 CuốiCuối
Kết quả 1 đến 10 của 20
  1. #1
    Ngày tham gia
    Sep 2015
    Bài viết
    0

    Hướng dẫn tạo Form Đăng Ký và Đăng Nhập - part 1

    Part 1 chủ yếu trình bày về cách INSERT data vào database và kiểm tra điều kiện để Log In vào 1 Form khác.
    Form Đăng Ký

    Form Đăng Nhập

    Form Chính


    Cấu trúc Form:

    + Trang Đăng Nhập: Form1.cs
    + Trang Đăng Ký : DangKy.cs
    + Trang Chính: MainForm.cs


    Các class sử dụng:

    + AccessData.cs
    + KiemTraDangNhap.cs
    + Ngay.cs


    1. Tạo CSDL - Sử dụng MSSQL

    + CSDL tên : DEMO_DANGKY_DANGNHAP
    + Table tên: USER_INFO
    + Các columns: để cho đơn giản. Tôi cho tất cả các thuộc tính đều là kiển NVARCHAR(50)

    - USERNAME (TextBox)
    - PASSWORD (TextBox)
    - CPASSWORD (TextBox)
    - EMAIL (TextBox)
    - ADDRESS (TextBox)
    - GENDER (RadioButton)
    - BIRTHDAY (ComboBox)
    - OCCUPATION (TextBox)


    + Các thuộc tính trên tương ứng với FORM DANGKY. Xem tham khảo ở file đính kèm.

    + Tạo database:


    + Sau khi tạo CSDL xong. Ta add nó vào Server Explorer:






    2. Các class

    + AccessData.cs :

    Mã:
    using System.Data;using System.Data.SqlClient; class AccessData    {        public SqlConnection GetConnection()        {            return new SqlConnection("Data Source=DUNG-PC;Initial Catalog=DEMO_DANGKY_DANGNHAP;Integrated Security=True");        }        public void ExcuteNonQuery(string sql)        {            SqlConnection conn = GetConnection();            SqlCommand cmd = new SqlCommand(sql, conn);            conn.Open();            cmd.ExecuteNonQuery();            conn.Close();            cmd.Dispose();        }        public SqlDataReader ExecuteReader(string sql)        {            SqlConnection conn = GetConnection();            conn.Open();            SqlCommand cmd = new SqlCommand(sql, conn);            SqlDataReader reader = cmd.ExecuteReader();            return reader;        }    }

    + KiemTraDangNhap.cs : Kiểm tra xem username và password có hợp lệ hay ko.


    Mã:
    using System.Data;using System.Data.SqlClient; class KiemTraDangNhap    {        public int CheckLogin(string username, string password)        {            AccessData acc = new AccessData();            SqlDataReader reader = acc.ExecuteReader("SELECT USERNAME, PASSWORD FROM USER_INFO");            while(reader.Read())            {                if (reader[0].ToString() == username && reader[1].ToString() == password)                {                    // reader[0] tương ứng cho textbox Username                     // reader[1] tương ứng cho textbox Password                    return 1;                }            }            return 0;        }    }
    + Ngay.cs : Cái này dùng để kiểm tra tính hợp lệ của ngày tháng năm


    Mã:
    using System.Windows.Forms; class Ngay    {        public int KiemTraNhuan(ComboBox cbYear)        {            int year = Convert.ToInt32(cbYear.SelectedItem);            if (year % 4 == 0 && year % 100 != 0)                return 1;            if (year % 400 == 0)                return 1;            return 0;        }        public int NgayMax(ComboBox cbDate, ComboBox cbMonth, ComboBox cbYear)        {            int day = Convert.ToInt32(cbDate.SelectedItem);            int month = Convert.ToInt32(cbMonth.SelectedItem);             switch (month)            {                case 1:                case 3:                case 5:                case 7:                case 8:                case 10:                case 12:                    return 31; // Các tháng có 31 ngày                    break;                case 4:                case 6:                case 9:                case 11:                    return 30; // Các tháng có 30 ngày                    break;                case 2:                    {                        if (KiemTraNhuan(cbYear) == 1)                             return 29; // Nếu là năm Nhuận => Tháng 2 : 29 ngày                        return 28; // Ngược lại => Tháng 2: 28 ngày                    }                default:                    return 0;            }        }        public int KiemTraHopLe(ComboBox cbDate, ComboBox cbMonth, ComboBox cbYear)        {            int month = Convert.ToInt32(cbMonth.SelectedItem);            int day = Convert.ToInt32(cbDate.SelectedItem);            if (month >= 1 && month <= 12)            {                if (day >= 1 && day <= NgayMax(cbDate, cbMonth, cbYear)) // Nếu ngày từ 1 đến cái ngày lớn nhất trong tháng đó                     return 1;                return 0;            }            return 0;        }    }

    3. Các Form

    + DangKy.cs

    - Thứ 1 : Ta sẽ đặt giá trị cho cái ComboBox Ngày Tháng Năm

    - Thứ 2 : Bắt sự kiện cho cái nút SignUp => INSERT data vào database



    Mã:
    public partial class DangKy : Form    {        AccessData acc;        public DangKy()        {            InitializeComponent();            for (int i = 1; i <= 31; i++)            {                this.cbDate.Items.Add(i.ToString()); // Lấy giá trị cho ComboBox Ngày : 1 - 31 ngày            }             for (int i = 0; i <= 12; i++)            {                this.cbMonth.Items.Add(i.ToString()); // Lấy giá trị cho ComboBox Tháng : 1 - 12 tháng            }             int curYear = DateTime.Now.Year; // Lấy ra năm hiện tại            for (int i = curYear; i >= 1900; i--)            {                this.cbYear.Items.Add(i.ToString()); // Lấy giá trị cho ComboBox Năm: 1900 - Năm hiên tại            }        }               // Bắt sự kiện cho button SignUp => Insert data vào database        private void btnSignUp_Click(object sender, EventArgs e)        {                           Ngay n = new Ngay(); // Tạo đối tượng Ngày => Kiểm tra tính hợp lệ của ngày                if (n.KiemTraHopLe(cbDate, cbMonth, cbYear) == 1)                {                    acc = new AccessData();                    string gender = ""; // Tạo biến gender => Để chứa giá trị Male hoặc Female                    string birth = ""; // Tạo biến birth => Để chứa ngày tháng năm sinh (12/12/1900)                    if (this.rdMale.Checked == true)                     {                        gender = "Male"; // Nếu RadioButton Male được check => Lưu Male vào gender                    }                    else                    {                        if (this.rdFemale.Checked == true)                        {                            gender = "Female"; // Nếu RadioButton Female được check => Lưu Female vào gender                        }                    }                    // Lấy ngày tháng năm từ ComboBox và lưu vào cho biến birth                    birth = cbDate.SelectedItem.ToString() + "/" + cbMonth.SelectedItem.ToString() + "/" + cbYear.SelectedItem.ToString();                    //                    string sql = "INSERT INTO USER_INFO VALUES('" + txtUsername.Text + "', '" + txtPassword.Text + "', '" + txtCPassword.Text + "', '" + txtEmail.Text + "', '" + txtAddress.Text + "', '" + gender + "', '" + birth + "','" + txtOccupation.Text + "')"; // Query Insert data                    acc.ExcuteNonQuery(sql); // Thực thi Query                    MessageBox.Show("Đăng Ký Thành Công", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Information); // Nếu đang ký thành công => Sẽ có thông báo Thành Công và đồng thời các TextBox sẽ mất giá trị do ClearTextBox().                    ClearTextBox();                }                else                {                    // Nếu ngày tháng ko hợp lê thì nó sẽ hiển thị lại bằng các tên bên dưới.                    cbDate.Text = "Date:";                    cbMonth.Text = "Month:";                    cbYear.Text = "Year:";                }                  }         private void ClearTextBox()        {            txtUsername.Clear();            txtPassword.Clear();            txtCPassword.Clear();            txtAddress.Clear();            txtEmail.Clear();            cbDate.Text = "Day:";            cbMonth.Text = "Month:";            cbYear.Text = "Year:";            txtOccupation.Clear();        }             }
    + Form1.cs : Form Đăng Nhập
    - Thứ 1: Bắt sự kiện button SignIn : Kiểm tra data nhập từ 2 TextBox (Username , Password) với data trong database. Nếu trùng thì load qua MainForm.cs. Ko trùng thì hiện THÔNG BÁO

    - Thứ 2: Bắt sự kiện button SignUp : Load Form DangKy.cs


    Mã:
    public partial class Form1 : Form    {        public Form1()        {            InitializeComponent();        }         private void btnSignUp_Click(object sender, EventArgs e)        {            DangKy dk = new DangKy();            dk.ShowDialog();        }         private void btnSignIn_Click(object sender, EventArgs e)        {            KiemTraDangNhap dn = new KiemTraDangNhap();             MainForm frm = new MainForm();            if (dn.CheckLogin(txtUsername.Text, txtPassword.Text) == 1) // Kiểm tra data từ TextBox và data trong database            {                this.Hide(); // Form Đăng Nhập sẽ ẩn đi => MainForm sẽ load lên                frm.ShowDialog();            }            else            {                lblThongBao.Text = "Sai Password hoac Username. Check lai lan nua !!!";                txtUsername.Clear();                txtPassword.Clear();            }        }    }
    Chúc thành công !!!

    FILE DEMO: File demo + File back up database(.bak)
    NOTE:
    Muốn sử dụng được cái file Demo. Mấy bro nhớ vào MSSQL Restore cái file DEMO_DANGKY_DANGNHAP.bak (file CSDL của mình).

  2. #2
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Part 2: Update data.

    Form Update data giống với Form DangKy. Chỉ khác button.

    Đầu tiên muốn xem thông tin của profile thì ta phải có data. Làm cách nào để lấy cho chính xác. Ta phải truyền data từ các Form với nhau.

    Ví dụ: Tôi muốn lấy ra 1 profile của 1 thành viên nào đó, thì tôi sử dụng query Select

    Select * From USER_INFO Where USERNAME = 'USERNAME TỪ FORM DANG NHAP' (Điều kiện lấy data từ database)

    Vậy ta sẽ tiến hành truyền data từ Form DangNhap sang các Form.

    Form Profile


    Mã:
        public partial class Profile : Form    {        Form1 frm1 = null;          public Profile(Form1 f) // Truyền data từ Form DangNhap sang Form Profile        {            this.frm1 = f;            InitializeComponent();            for (int i = 1; i <= 31; i++)            {                this.cbDate.Items.Add(i.ToString());            }             for (int i = 0; i <= 12; i++)            {                this.cbMonth.Items.Add(i.ToString());            }             int curYear = DateTime.Now.Year;            for (int i = curYear; i >= 1900; i--)            {                this.cbYear.Items.Add(i.ToString());            }        }         private void Profile_Load(object sender, EventArgs e)        {            AccessData acc = new AccessData();             string frmUsername = frm1.TxtUsername.Text;                        // Lấy data từ database ra để hiển thị trên từng TextBox của FOrm Profile             SqlDataReader reader = acc.ExecuteReader("SELECT * FROM USER_INFO WHERE USERNAME = '" + frmUsername + "'");             while (reader.Read())            {                txtUsername.Text = reader[0].ToString();                txtPassword.Text = reader[1].ToString();                txtCPassword.Text = reader[2].ToString();                txtEmail.Text = reader[3].ToString();                txtAddress.Text = reader[4].ToString();                txtOccupation.Text = reader[7].ToString();                //                if (reader[5].ToString() == "Male")                {                    rdMale.Checked = true;                }                else                {                    if (reader[5].ToString() == "Female")                    {                        rdFemale.Checked = true;                    }                }                //                string birth = reader[6].ToString(); // Lấy ra ngày/thángăm                 string[] arrBirth = birth.Split('/'); // Lấy từ phần tử ra.                cbDate.Text = arrBirth[0];                cbMonth.Text = arrBirth[1];                cbYear.Text = arrBirth[2];             }            reader.Close();        }         private void btnUpdate_Click(object sender, EventArgs e)        {            try            {                Ngay n = new Ngay();                if (n.KiemTraHopLe(cbDate, cbMonth, cbYear) == 1)                {                    AccessData acc = new AccessData();                     string username = frm1.TxtUsername.Text;                    string gender = "";                     if (this.rdMale.Checked == true)                    {                        gender = "Male";                    }                    else                    {                        if (this.rdFemale.Checked == true)                        {                            gender = "Female";                        }                    }                    string birth = "";                    birth = cbDate.SelectedItem.ToString() + "/" + cbMonth.SelectedItem.ToString() + "/" + cbYear.SelectedItem.ToString();                                        // Câu truy vấn Update data xuống database                    string sql = "UPDATE USER_INFO SET PASSWORD = '" + txtPassword.Text + "', CPASSWORD = '" + txtCPassword.Text + "', EMAIL = '" + txtEmail.Text + "', ADDRESS = '" + txtAddress.Text + "', GENDER = '" + gender + "', BIRTHDAY = '" + birth + "', OCCUPATION = '" + txtOccupation.Text + "' WHERE USERNAME = '" + username + "'";                    acc.ExcuteNonQuery(sql);                    MessageBox.Show("Update Successfully !!!");                    this.Refresh();                }                else                {                    cbDate.Text = "Date:";                    cbMonth.Text = "Month:";                    cbYear.Text = "Year:";                }            }            catch (Exception)            {                MessageBox.Show("Error !!!");            }        }    }
    Chỉnh sửa lại của 2 Form Form1.cs và MainForm.cs

    Form1.cs

    Mã:
            private void btnSignIn_Click(object sender, EventArgs e)        {            KiemTraDangNhap dn = new KiemTraDangNhap();             MainForm frm = new MainForm(this); //Chỉnh sửa ở tham số đầu vào             if (dn.CheckLogin(txtUsername.Text, txtPassword.Text) == 1)            {                this.Hide();                frm.ShowDialog();            }            else            {                lblThongBao.Text = "Sai Password hoac Username. Check lai lan nua !!!";                txtUsername.Clear();                txtPassword.Clear();            }        }
    MainForm.cs
    Thêm button ViewProfile


    Mã:
        public partial class MainForm : Form    {        Form1 f;         public MainForm(Form1 f) // Truyền data từ Form DangNhap(Form1.cs) sang MainForm        {            //f = new Form1();              this.f = f;            InitializeComponent();        }         private void btnView_Click(object sender, EventArgs e) // Bắt sự kiện Button ViewProfile        {            Profile pf = new Profile(this.f);            pf.Show();        }         private void MainForm_Load(object sender, EventArgs e)        {            string p1 = f.TxtUsername.Text;            lblThongBao.Text = p1 + " Dang nhap thanh cong";        }    }
    Chúc thành công !!!

  3. #3
    Còn về phần kiểm tra điều kiện của các TextBox sao cho hợp lệ(Password phải có mấy kí tự, email phải là dạng chuẩn vd: example@something.com, Confirm Pass phải giống Password).


    Mấy bro tự tìm hiểu nhá. Good Luck !!![IMG]images/smilies/biggrin.png[/IMG] [IMG]images/smilies/tongue.png[/IMG]

  4. #4
    Ngày tham gia
    Sep 2015
    Đang ở
    89 Tam Trinh - Hoàng Mai - Hà Nội
    Bài viết
    0
    Đăng nhập và đăng ký mình không nghỉ nó quá dài đến vậy!!![IMG]images/smilies/applause.gif[/IMG][IMG]images/smilies/17.gif[/IMG]

    Chúc các bạn thành công![IMG]images/smilies/clap_grin.gif[/IMG][IMG]images/smilies/biggrin.png[/IMG]

  5. #5
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Kiến thức mình còn hạn chế. Nên cách làm của mình có lẽ dài dòng. [IMG]images/smilies/tongue.png[/IMG]

    Mong mấy bác cùng đóng góp thêm cho tut này. Để mọi người cùng học hỏi. Thanks [IMG]images/smilies/biggrin.png[/IMG]

  6. #6
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi nndung179
    Kiến thức mình còn hạn chế. Nên cách làm của mình có lẽ dài dòng. [IMG]images/smilies/tongue.png[/IMG]

    Mong mấy bác cùng đóng góp thêm cho tut này. Để mọi người cùng học hỏi. Thanks [IMG]images/smilies/biggrin.png[/IMG]
    Bạn ơi mình muốn hiện đúng tên người khi đăng nhập thì làm sao ạ... sao mình đăng nhập mà nó cứ lấy tên đầu tiên để hiện ra code mình đây : rs.Source = "SELECT DISTINCT * FROM dbo.dangky ORDER BY TenDangNhap ASC"; có phải do dòng này ko bạn... làm bằng Javascript

  7. #7
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    bạn ơi giờ ko cần kiểm tra ngày tháng năm như vậy đâu, mình thì dùng như thế này. nếu muốn người ta nhập theo định dạng gì thì viết 1 string chứa biểu thức Reg cho nó. rồi dùng Regex.IsMatch(reg,input) là xong
    rồi else
    try{ DateTime dt=Convert.ToDateTime(input);}catch{}
    là ok mà
    Cách này mình mất khoảng 6 dòng[IMG]images/smilies/biggrin.png[/IMG]

  8. #8
    Trích dẫn Gửi bởi nndung179
    Part 1 chủ yếu trình bày về cách INSERT data vào database và kiểm tra điều kiện để Log In vào 1 Form khác.
    Form Đăng Ký</font>

    Form Đăng Nhập

    Form Chính


    Cấu trúc Form:

    + Trang Đăng Nhập: Form1.cs
    + Trang Đăng Ký : DangKy.cs
    + Trang Chính: MainForm.cs


    Các class sử dụng:

    + AccessData.cs
    + KiemTraDangNhap.cs
    + Ngay.cs


    1. Tạo CSDL - Sử dụng MSSQL

    + CSDL tên : DEMO_DANGKY_DANGNHAP
    + Table tên: USER_INFO
    + Các columns: để cho đơn giản. Tôi cho tất cả các thuộc tính đều là kiển NVARCHAR(50)

    - USERNAME (TextBox)
    - PASSWORD (TextBox)
    - CPASSWORD (TextBox)
    - EMAIL (TextBox)
    - ADDRESS (TextBox)
    - GENDER (RadioButton)
    - BIRTHDAY (ComboBox)
    - OCCUPATION (TextBox)


    + Các thuộc tính trên tương ứng với FORM DANGKY. Xem tham khảo ở file đính kèm.

    + Tạo database:


    + Sau khi tạo CSDL xong. Ta add nó vào Server Explorer:






    2. Các class

    + AccessData.cs :

    Mã:
    using System.Data;using System.Data.SqlClient; class AccessData    {        public SqlConnection GetConnection()        {            return new SqlConnection("Data Source=DUNG-PC;Initial Catalog=DEMO_DANGKY_DANGNHAP;Integrated Security=True");        }        public void ExcuteNonQuery(string sql)        {            SqlConnection conn = GetConnection();            SqlCommand cmd = new SqlCommand(sql, conn);            conn.Open();            cmd.ExecuteNonQuery();            conn.Close();            cmd.Dispose();        }        public SqlDataReader ExecuteReader(string sql)        {            SqlConnection conn = GetConnection();            conn.Open();            SqlCommand cmd = new SqlCommand(sql, conn);            SqlDataReader reader = cmd.ExecuteReader();            return reader;        }    }

    + KiemTraDangNhap.cs : Kiểm tra xem username và password có hợp lệ hay ko.


    Mã:
    using System.Data;using System.Data.SqlClient; class KiemTraDangNhap    {        public int CheckLogin(string username, string password)        {            AccessData acc = new AccessData();            SqlDataReader reader = acc.ExecuteReader("SELECT USERNAME, PASSWORD FROM USER_INFO");            while(reader.Read())            {                if (reader[0].ToString() == username && reader[1].ToString() == password)                {                    // reader[0] tương ứng cho textbox Username                     // reader[1] tương ứng cho textbox Password                    return 1;                }            }            return 0;        }    }
    + Ngay.cs : Cái này dùng để kiểm tra tính hợp lệ của ngày tháng năm


    Mã:
    using System.Windows.Forms; class Ngay    {        public int KiemTraNhuan(ComboBox cbYear)        {            int year = Convert.ToInt32(cbYear.SelectedItem);            if (year % 4 == 0 && year % 100 != 0)                return 1;            if (year % 400 == 0)                return 1;            return 0;        }        public int NgayMax(ComboBox cbDate, ComboBox cbMonth, ComboBox cbYear)        {            int day = Convert.ToInt32(cbDate.SelectedItem);            int month = Convert.ToInt32(cbMonth.SelectedItem);             switch (month)            {                case 1:                case 3:                case 5:                case 7:                case 8:                case 10:                case 12:                    return 31; // Các tháng có 31 ngày                    break;                case 4:                case 6:                case 9:                case 11:                    return 30; // Các tháng có 30 ngày                    break;                case 2:                    {                        if (KiemTraNhuan(cbYear) == 1)                             return 29; // Nếu là năm Nhuận => Tháng 2 : 29 ngày                        return 28; // Ngược lại => Tháng 2: 28 ngày                    }                default:                    return 0;            }        }        public int KiemTraHopLe(ComboBox cbDate, ComboBox cbMonth, ComboBox cbYear)        {            int month = Convert.ToInt32(cbMonth.SelectedItem);            int day = Convert.ToInt32(cbDate.SelectedItem);            if (month >= 1 && month <= 12)            {                if (day >= 1 && day <= NgayMax(cbDate, cbMonth, cbYear)) // Nếu ngày từ 1 đến cái ngày lớn nhất trong tháng đó                     return 1;                return 0;            }            return 0;        }    }

    3. Các Form

    + DangKy.cs

    - Thứ 1 : Ta sẽ đặt giá trị cho cái ComboBox Ngày Tháng Năm

    - Thứ 2 : Bắt sự kiện cho cái nút SignUp => INSERT data vào database



    Mã:
    public partial class DangKy : Form    {        AccessData acc;        public DangKy()        {            InitializeComponent();            for (int i = 1; i <= 31; i++)            {                this.cbDate.Items.Add(i.ToString()); // Lấy giá trị cho ComboBox Ngày : 1 - 31 ngày            }             for (int i = 0; i <= 12; i++)            {                this.cbMonth.Items.Add(i.ToString()); // Lấy giá trị cho ComboBox Tháng : 1 - 12 tháng            }             int curYear = DateTime.Now.Year; // Lấy ra năm hiện tại            for (int i = curYear; i >= 1900; i--)            {                this.cbYear.Items.Add(i.ToString()); // Lấy giá trị cho ComboBox Năm: 1900 - Năm hiên tại            }        }               // Bắt sự kiện cho button SignUp => Insert data vào database        private void btnSignUp_Click(object sender, EventArgs e)        {                           Ngay n = new Ngay(); // Tạo đối tượng Ngày => Kiểm tra tính hợp lệ của ngày                if (n.KiemTraHopLe(cbDate, cbMonth, cbYear) == 1)                {                    acc = new AccessData();                    string gender = ""; // Tạo biến gender => Để chứa giá trị Male hoặc Female                    string birth = ""; // Tạo biến birth => Để chứa ngày tháng năm sinh (12/12/1900)                    if (this.rdMale.Checked == true)                     {                        gender = "Male"; // Nếu RadioButton Male được check => Lưu Male vào gender                    }                    else                    {                        if (this.rdFemale.Checked == true)                        {                            gender = "Female"; // Nếu RadioButton Female được check => Lưu Female vào gender                        }                    }                    // Lấy ngày tháng năm từ ComboBox và lưu vào cho biến birth                    birth = cbDate.SelectedItem.ToString() + "/" + cbMonth.SelectedItem.ToString() + "/" + cbYear.SelectedItem.ToString();                    //                    string sql = "INSERT INTO USER_INFO VALUES('" + txtUsername.Text + "', '" + txtPassword.Text + "', '" + txtCPassword.Text + "', '" + txtEmail.Text + "', '" + txtAddress.Text + "', '" + gender + "', '" + birth + "','" + txtOccupation.Text + "')"; // Query Insert data                    acc.ExcuteNonQuery(sql); // Thực thi Query                    MessageBox.Show("Đăng Ký Thành Công", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Information); // Nếu đang ký thành công => Sẽ có thông báo Thành Công và đồng thời các TextBox sẽ mất giá trị do ClearTextBox().                    ClearTextBox();                }                else                {                    // Nếu ngày tháng ko hợp lê thì nó sẽ hiển thị lại bằng các tên bên dưới.                    cbDate.Text = "Date:";                    cbMonth.Text = "Month:";                    cbYear.Text = "Year:";                }                  }         private void ClearTextBox()        {            txtUsername.Clear();            txtPassword.Clear();            txtCPassword.Clear();            txtAddress.Clear();            txtEmail.Clear();            cbDate.Text = "Day:";            cbMonth.Text = "Month:";            cbYear.Text = "Year:";            txtOccupation.Clear();        }             }
    + Form1.cs : Form Đăng Nhập
    - Thứ 1: Bắt sự kiện button SignIn : Kiểm tra data nhập từ 2 TextBox (Username , Password) với data trong database. Nếu trùng thì load qua MainForm.cs. Ko trùng thì hiện THÔNG BÁO

    - Thứ 2: Bắt sự kiện button SignUp : Load Form DangKy.cs


    Mã:
    public partial class Form1 : Form    {        public Form1()        {            InitializeComponent();        }         private void btnSignUp_Click(object sender, EventArgs e)        {            DangKy dk = new DangKy();            dk.ShowDialog();        }         private void btnSignIn_Click(object sender, EventArgs e)        {            KiemTraDangNhap dn = new KiemTraDangNhap();             MainForm frm = new MainForm();            if (dn.CheckLogin(txtUsername.Text, txtPassword.Text) == 1) // Kiểm tra data từ TextBox và data trong database            {                this.Hide(); // Form Đăng Nhập sẽ ẩn đi => MainForm sẽ load lên                frm.ShowDialog();            }            else            {                lblThongBao.Text = "Sai Password hoac Username. Check lai lan nua !!!";                txtUsername.Clear();                txtPassword.Clear();            }        }    }
    Chúc thành công !!!

    FILE DEMO: File demo + File back up database(.bak)
    NOTE:
    Muốn sử dụng được cái file Demo. Mấy bro nhớ vào MSSQL Restore cái file <font color="Red">DEMO_DANGKY_DANGNHAP.bak
    (file CSDL của mình).
    Phần đăng nhập này chưa có phần quyền.Bạn có thể chỉ giúp mình làm đăng nhập có phân quyền với được không?
    Mình có bảng NHANVIEN(TenDN,matkhau,quyen)

  9. #9
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Cách đơn giản nhất là như thế này.

    VD:

    CSDL NhanVien(manv(int), hoten(nvarchar), tinhtrang(int), capdo(int))

    capdo: Có 2 thuộc tính
    1: Quản lý
    2: Nhân viên

    Trong chương trình sẽ có 1 form chức năng của QuanLy và NhanVien.
    1. NhanVien ko dc quyen sử dụng chức năng của QuanLy
    2. QuanLy thì được xài hết chức năng NhanVien + QuanLy

    => Mỗi lần đăng nhập. Form sẽ gửi Username xuống database kiểm tra xem username có cấp độ nào.

    + Nếu là 1: Hiện toàn bộ Control trên Form
    + Nếu là 2: Visible = false cho các control ko phải của NhanVien

  10. #10
    Trích dẫn Gửi bởi nndung179
    Cách đơn giản nhất là như thế này.

    VD:

    CSDL NhanVien(manv(int), hoten(nvarchar), tinhtrang(int), capdo(int))

    capdo: Có 2 thuộc tính
    1: Quản lý
    2: Nhân viên

    Trong chương trình sẽ có 1 form chức năng của QuanLy và NhanVien.
    1. NhanVien ko dc quyen sử dụng chức năng của QuanLy
    2. QuanLy thì được xài hết chức năng NhanVien + QuanLy

    => Mỗi lần đăng nhập. Form sẽ gửi Username xuống database kiểm tra xem username có cấp độ nào.





    + Nếu là 1: Hiện toàn bộ Control trên Form
    + Nếu là 2: Visible = false cho các control ko phải của NhanVien
    bạn có thể demo giúp mình với csdl NhanVien(tenDN,matkhau,quyen) được không?[IMG]images/smilies/biggrin.png[/IMG]

 

 
Trang 1 của 2 12 CuốiCuối

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •