- [SQLSERVER] Loại bỏ Restricted User trên database MSSQL
- [C#] Hướng dẫn tạo mã QRcode Style trên winform
- [C#] Hướng dẫn sử dụng temp mail service api trên winform
- [C#] Hướng dẫn tạo mã thanh toán VietQR Pay không sử dụng API trên winform
- [C#] Hướng Dẫn Tạo Windows Service Đơn Giản Bằng Topshelf
- [C#] Chia sẻ source code đọc dữ liệu từ Google Sheet trên winform
- [C#] Chia sẻ source code tạo mã QR MOMO đa năng Winform
- [C#] Chia sẻ source code phần mềm lên lịch tự động chạy ứng dụng Scheduler Task Winform
- [Phần mềm] Tải và cài đặt phần mềm Sublime Text 4180 full version
- [C#] Hướng dẫn download file từ Minio Server Winform
- [C#] Hướng dẫn đăng nhập zalo login sử dụng API v4 trên winform
- [SOFTWARE] Phần mềm gởi tin nhắn Zalo Marketing Pro giá rẻ mềm nhất thị trường
- [C#] Việt hóa Text Button trên MessageBox Dialog Winform
- [DEVEXPRESS] Chia sẻ code các tạo report in nhiều hóa đơn trên XtraReport C#
- [POWER AUTOMATE] Hướng dẫn gởi tin nhắn zalo từ file Excel - No code
- [C#] Chia sẻ code lock và unlock user trong domain Window
- [DEVEXPRESS] Vẽ Biểu Đồ Stock Chứng Khoán - Công Cụ Thiết Yếu Cho Nhà Đầu Tư trên Winform
- [C#] Hướng dẫn bảo mật ứng dụng 2FA (Multi-factor Authentication) trên Winform
- [C#] Hướng dẫn convert HTML code sang PDF File trên NetCore 7 Winform
- [C#] Hướng dẫn viết ứng dụng chat với Gemini AI Google Winform
[C#] Hướng dẫn tạo mã tự động trên lập trình Winform
Xin chào các bạn, bài viết hôm nay mình sẽ hướng dẫn các bạn cách tạo sinh mã tự động trong lập trình C#, winform với database sqlserver.
[C#] Tutorial Automatically generate Product Code
Thường các bạn sinh viên khi học lập trình, khi nhập thông tin một form nào đó về danh sách như: sản phẩm, sinh viên, học sinh...
Thì thường các bạn hay tạo mã tự động tăng theo dạng:
Mình ví dụ thường các bạn tạo mã tự động tăng khi thêm danh sách sinh viên như sau:
SV0001, SV0002, SV0003,..., SV000N
Ở phần sau, bạn muốn thêm bao nhiêu số 0 bất kỳ tùy ý nhé.
Ở bài này mình sẽ hướng dẫn các bạn cách tạo mã code đơn giản như vậy chỉ cần sử dụng câu lệnh SQL ngắn gọn là các bạn có thể làm được.
- Ở phần này, các bạn lưu ý là khi tạo mã thì bạn nên tạo khi bấm lưu sinh viên hoặc sản phẩm
Vì: nếu ứng dụng của bạn một người dùng thì không sao, nhưng cùng lúc có nhiều máy sử dụng phần mềm để nhập danh sách thì sẽ xảy ra trường hợp trùng mã.
+ Ở video hướng dẫn bên dưới này, mình cũng thực hiện cho bạn xem cách insert dữ liệu không bị lỗi sql injection
thường gặp.
Chi tiết các bạn có thể theo dõi video demo ứng dụng:
Full source code C#:
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;
using VBSQLHelper;
namespace DemoAutoIDStudent
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
LoadData();
}
public void LoadData()
{
var table_student = SQLHelper.ExecQueryDataAsDataTable("select * from tbl_sinhvien");
dataGridView1.DataSource = table_student;
}
public string CreateAutoID()
{
return SQLHelper.ExecQuerySacalar($@"SELECT CONCAT('MASV', RIGHT(CONCAT('0000000000',ISNULL(right(max(masv),10),0) + 1),10))
FROM dbo.tbl_sinhvien where masv like 'MASV%'").ToString();
}
private void btnAdd_Click(object sender, EventArgs e)
{
txt_masv.Text = CreateAutoID();
}
private void btn_save_Click(object sender, EventArgs e)
{
var masv = txt_masv.Text.Trim();
var tensinhvien = txt_tensv.Text.Trim();
var sql_insert = $@"INSERT INTO dbo.tbl_sinhvien
(
masv,
tensv
)
VALUES
( @masv,
@tensv
)";
var affectRow = SQLHelper.ExecQueryNonData(sql_insert, new { masv = masv, tensv = tensinhvien});
// fix insert sql injection
if(affectRow > 0)
{
// Insert success
LoadData();
txt_masv.Text = CreateAutoID();
txt_tensv.Text = "";
txt_tensv.Focus();
}
else
{
MessageBox.Show("Insert fails");
}
}
}
}
Thanks for watching!