Tạo chức năng đăng nhập cho phần mềm Quản lý quán cafe với C# Winform
Lập trình phần mềm Quản lý quán cafe với C# Winform

Danh sách bài học
Tạo chức năng đăng nhập cho phần mềm Quản lý quán cafe với C# Winform
Dẫn nhập
Bạn đã học qua LẬP TRÌNH C# CƠ BẢN? Xong nốt cả LẬP TRÌNH WINFORM lẫn SQL?
Bạn đã chán các bài tập căn bản, muốn thực hành các kiến thức đã học vào một dự án thực tế?
Hay đơn giản bạn là chủ quán café, mong muốn tự tạo nên phần mềm dành cho chính mình sử dụng?
Sẽ không có gì tuyệt vời hơn là luyện tập với ví dụ thực tế. Nào! Cùng nhau thử thách bản thân với PHẦN MỀM QUÁN CAFÉ VỚI C# WINFORM
Ở bài trước, Kteam đã GIỚI THIỆU DESIGN PATERN SINGLETON. Trong bài này, chúng ta sẽ tìm hiểu cách Tạo chức năng đăng nhập cho phần mềm Quản lý quán cafe với C# Winform
Nội dung
Nội dung bao gồm Source code & các lưu ý chính về quá trình thực hiện phần mềm. Kteam khuyến khích bạn cập nhập thêm nhiều kinh nghiệm cũng như hiểu chi tiết hơn về các kỹ thuật được đề cập trong bài học thông qua các video đính kèm.
Đừng quên Like Facebook hoặc +1 Google để ủng hộ Kteam và tác giả.
Để theo dõi tốt khóa học này, hãy đảm bảo bạn đã xem qua kiến thức về:
- LẬP TRÌNH WINFORM CƠ BẢN
- Delegate – Event
- SQL server
- Xử lý ngày tháng năm
Project tham khảo
Code fAdmin.cs
using QuanLyQuanCafe.DAO;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace QuanLyQuanCafe
{
public partial class fAdmin : Form
{
public fAdmin()
{
InitializeComponent();
}
}
}
Code fLogin.cs
using QuanLyQuanCafe.DAO;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace QuanLyQuanCafe
{
public partial class fLogin : Form
{
public fLogin()
{
InitializeComponent();
}
private void btnLogin_Click(object sender, EventArgs e)
{
string userName = txbUserName.Text;
string passWord = txbPassWord.Text;
if (Login(userName, passWord))
{
fTableManager f = new fTableManager();
this.Hide();
f.ShowDialog();
this.Show();
}
else
{
MessageBox.Show("Sai tên tài khoản hoặc mật khẩu!");
}
}
bool Login(string userName, string passWord)
{
return AccountDAO.Instance.Login(userName, passWord);
}
private void btnExit_Click(object sender, EventArgs e)
{
Application.Exit();
}
private void fLogin_FormClosing(object sender, FormClosingEventArgs e)
{
if (MessageBox.Show("Bạn có thật sự muốn thoát chương trình?", "Thông báo", MessageBoxButtons.OKCancel) != System.Windows.Forms.DialogResult.OK)
{
e.Cancel = true;
}
}
}
}
Code DataProvider.cs
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace QuanLyQuanCafe.DAO
{
public class DataProvider
{
private static DataProvider instance; // Ctrl + R + E
public static DataProvider Instance
{
get { if (instance == null) instance = new DataProvider(); return DataProvider.instance; }
private set { DataProvider.instance = value; }
}
private DataProvider(){}
private string connectionSTR = "Data Source=.\\sqlexpress;Initial Catalog=QuanLyQuanCafe;Integrated Security=True";
public DataTable ExecuteQuery(string query, object[] parameter = null)
{
DataTable data = new DataTable();
using (SqlConnection connection = new SqlConnection(connectionSTR))
{
connection.Open();
SqlCommand command = new SqlCommand(query, connection);
if (parameter != null)
{
string[] listPara = query.Split(' ');
int i = 0;
foreach (string item in listPara)
{
if (item.Contains('@'))
{
command.Parameters.AddWithValue(item, parameter[i]);
i++;
}
}
}
SqlDataAdapter adapter = new SqlDataAdapter(command);
adapter.Fill(data);
connection.Close();
}
return data;
}
public int ExecuteNonQuery(string query, object[] parameter = null)
{
int data = 0;
using (SqlConnection connection = new SqlConnection(connectionSTR))
{
connection.Open();
SqlCommand command = new SqlCommand(query, connection);
if (parameter != null)
{
string[] listPara = query.Split(' ');
int i = 0;
foreach (string item in listPara)
{
if (item.Contains('@'))
{
command.Parameters.AddWithValue(item, parameter[i]);
i++;
}
}
}
data = command.ExecuteNonQuery();
connection.Close();
}
return data;
}
public object ExecuteScalar(string query, object[] parameter = null)
{
object data = 0;
using (SqlConnection connection = new SqlConnection(connectionSTR))
{
connection.Open();
SqlCommand command = new SqlCommand(query, connection);
if (parameter != null)
{
string[] listPara = query.Split(' ');
int i = 0;
foreach (string item in listPara)
{
if (item.Contains('@'))
{
command.Parameters.AddWithValue(item, parameter[i]);
i++;
}
}
}
data = command.ExecuteScalar();
connection.Close();
}
return data;
}
}
}
Code AccountDAO.cs
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace QuanLyQuanCafe.DAO
{
public class AccountDAO
{
private static AccountDAO instance;
public static AccountDAO Instance
{
get { if (instance == null) instance = new AccountDAO(); return instance; }
private set { instance = value; }
}
private AccountDAO() { }
public bool Login(string userName, string passWord)
{
string query = "SELECT * FROM dbo.Account WHERE UserName = N'" + userName + "' AND PassWord = N'" + passWord +"' ";
DataTable result = DataProvider.Instance.ExecuteQuery(query);
return result.Rows.Count > 0;
}
}
}
Kết
Trong bài này, chúng ta đã tìm hiểu cách tạo chức năng đăng nhập cho phần mềm Quản lý Quán cafe
Ở bài sau, Kteam sẽ giới thiệu đến bạn về HẠN CHẾ LỖI SQL INJECTION CHO PHẦN MỀM QUẢN LÝ QUÁN CAFE
Cảm ơn các bạn đã theo dõi bài viết. Hãy để lại bình luận hoặc góp ý của mình để phát triển bài viết tốt hơn. Và đừng quên “Luyện tập – Thử Thách – Không ngại khó”
Tải xuống
Tài liệu
Nhằm phục vụ mục đích học tập Offline của cộng đồng, Kteam hỗ trợ tính năng lưu trữ nội dung bài học Tạo chức năng đăng nhập cho phần mềm Quản lý quán cafe với C# Winform dưới dạng file PDF trong link bên dưới.
Ngoài ra, bạn cũng có thể tìm thấy các tài liệu được đóng góp từ cộng đồng ở mục TÀI LIỆU trên thư viện Howkteam.com
Đừng quên like và share để ủng hộ Kteam và tác giả nhé!

Thảo luận
Nếu bạn có bất kỳ khó khăn hay thắc mắc gì về khóa học, đừng ngần ngại đặt câu hỏi trong phần bên dưới hoặc trong mục HỎI & ĐÁP trên thư viện Howkteam.com để nhận được sự hỗ trợ từ cộng đồng.
Nội dung bài viết
Tác giả/Dịch giả
Khóa học
Lập trình phần mềm Quản lý quán cafe với C# Winform
Bạn đã học qua LẬP TRÌNH C# CƠ BẢN? Xong nốt cả LẬP TRÌNH WINFORM lẫn SQL?
Bạn đã chán các bài tập căn bản, muốn thực hành các kiến thức đã học vào một dự án thực tế?
Hay đơn giản bạn là chủ quán café, mong muốn tự tạo nên phần mềm dành cho chính mình sử dụng?
Vậy còn chần chừ gì không tham gia ngay khóa học LẬP TRÌNH PHẦN MỀM QUÁN CAFÉ VỚI C# WINFORM?
A ơi cho em hỏi là tái ao khi em đăng nhập vào mà nó cứ báo sai tài khoản với mật khẩu nhỉ?
Mà e làm theo đúng hướng dẫn nhập tên tài khoản K9 và mật khẩu : 1 mà toàn bị báo là sai tên tài khoản hoặc mật khẩu. Em xin cảm ơn
bool Login(string userName, string passWord)
{
return AccountDAO.Instance.Login(userName, passWord);
}
Cho e hỏi chỗ bool Login bị lỗi thì khắc phục thế nào ạ?
'Login': member names cannot be the same as their enclosing type
ad chỉ mình cách fix Default parameter specifiers are not permitted
public object ExecuteScalar(string query, object[] parameter = null)