- [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
- Hướng dẫn khóa file bằng nhiều process id, không cho xóa tập tin
- Hướng dẫn cách tạo Product Id cho ứng dụng phần mềm XXXXX-XXXXX-XXXXX-XXXXX
- [SQLSERVER] Hướng dẫn tạo script sql từ ứng dụng Sqlserver management Studio
- [C#] Hướng dẫn sử dụng thư viện AutoITx lấy id và password Ultraviewer trên winform
- [VB.NET] Hướng dẫn lấy thông tin tài khoản đăng nhập windows và khởi động lại ứng dụng ở chế độ Administrator
- [C#] Sử dụng thư viện Polly gửi lại request api khi request bị lỗi hay rớt mạng
- [DEVEXPRESS] Chia sẻ source code tạo báo cáo report in tem nhãn label trên C# winform
- [DEVEXPRESS] Hướng dẫn vẽ biểu đồ Bar Chart trên Winform
- [C#] Tạo form đăng nhập và đăng ký với hiệu ứng Sliding Animation Effect
- [C#] Hướng dẫn tạo thanh toán đơn hàng qua mã vạch VietQR sử dụng API PayOS hoàn toàn miễn phí
- [C#] Hướng dẫn ghi log ra RichTextBox giống Console trên Winform sử dụng thư viện Serilog
- [C#] Hướng dẫn cách tạo mã QR Code trên file Excel
- [VB.NET] Gởi tin nhắn và file đính kèm qua ứng dụng gởi tin nhắn Whats App
- [C#] Viết ứng dụng Auto Fill list Textbox from clipboard Winform
- [TOOL] Chia sẻ phần mềm thay đổi thông tin cấu hình máy tính
- [C#] Hướng dẫn Export dữ liệu ra file Microsoft Word Template
- [C#] Chia sẻ source code tool kiểm tra domain website
[C#] Hướng dẫn thêm, xóa, sửa listview sqlserver
Xin chào các bạn, bài viết hôm nay mình chia sẻ các bạn source code lập trình kết nối cơ sở dữ liệu sqlserver sử dụng Listview trên lập trình c#, winform.
[C#] CRUD Sqlserver using Listview winform
Trong các ví dụ trước mình cũng đã có hướng dẫn các bài viết về thêm xóa sửa, nhưng trong các bài đó mình sử dụng DataGridView.
Ở bài viết này, mình sẻ thực hiện trên Listview C# Winform
Video demo ứng dụng CRUD Listview Sqlserver Winform:
Ở bài demo này bao gồm các chức năng sau:
- Thêm dữ liệu
- Lưu dữ liệu
- Xóa dữ liệu
- Cập nhật chỉnh sửa
- Kiểm tra trùng mã sinh viên
- Tạo mã tự động
- Trigger chỉ cho phép nhập số vào trên ô textbox Học Bổng
Full source code c#:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Lession2
{
public partial class FrmMain : Form
{
private readonly string CONNECTION_STRING = "Server=(local);Database=Lession2;Trusted_Connection=True;";
private int _current_index_listview;
public FrmMain()
{
InitializeComponent();
txt_ngaysinh.Format = DateTimePickerFormat.Custom;
txt_ngaysinh.CustomFormat = "dd 'tháng' MM 'năm' yyyy";
}
private void FrmMain_Load(object sender, EventArgs e)
{
LoadLopHoc();
LoadData();
}
private void LoadData(int _currentIndex = 0)
{
var table_sinhvien = GetListStudent();
DisplayDataToListView(table_sinhvien);
if (table_sinhvien.Rows.Count > 0)
{
lst_danhsach.Items[_currentIndex].Selected = true;
_current_index_listview = _currentIndex;
}
else
{
btn_xoa.Enabled = false;
btn_sua.Enabled = false;
txt_masv.Text = "";
txt_tensv.Text = "";
txt_hocbong.Text = "";
txt_ngaysinh.Value = DateTime.Now;
}
}
private void DisplayDataToListView(DataTable data)
{
lst_danhsach.Items.Clear();
foreach (DataRow row in data.Rows)
{
ListViewItem item = new ListViewItem(row[0].ToString());
for (int i = 1; i < data.Columns.Count; i++)
{
item.SubItems.Add(row[i].ToString());
}
lst_danhsach.Items.Add(item);
}
}
private DataTable GetListStudent()
{
using (var conn = new SqlConnection(CONNECTION_STRING))
{
conn.Open();
var commandText = @"SELECT sv.masv, sv.tensv, FORMAT(sv.ngaysinh,'dd/MM/yyyy') as ngaysinh_text, gt.tengioitinh, sv.hocbong, lh.tenlop, sv.malop, sv.magioitinh, sv.ngaysinh FROM tbl_sinhvien sv
INNER JOIN tbl_gioitinh gt
ON sv.magioitinh = gt.magioitinh
INNER JOIN tbl_lophoc lh
ON sv.malop = lh.malop";
using (var cmd = new SqlCommand(commandText, conn))
{
var da = new SqlDataAdapter();
da.SelectCommand = cmd;
var ds = new DataSet();
da.Fill(ds);
return ds.Tables[0];
}
}
}
private void LoadLopHoc()
{
using(var conn = new SqlConnection(CONNECTION_STRING))
{
conn.Open();
var commandText = "SELECT malop, tenlop FROM tbl_lophoc";
using (var cmd = new SqlCommand(commandText, conn))
{
var da = new SqlDataAdapter();
da.SelectCommand = cmd;
var ds = new DataSet();
da.Fill(ds);
cb_lophoc.DataSource = ds.Tables[0];
cb_lophoc.DisplayMember = "tenlop";
cb_lophoc.ValueMember = "malop";
}
}
}
private void btn_thoat_Click(object sender, EventArgs e)
{
var dlg = MessageBox.Show("Bạn có chắc chắn muốn đóng ứng dụng?", "Thông báo", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
if(dlg == DialogResult.Yes)
{
Application.Exit();
}
}
private void lst_danhsach_ItemSelectionChanged(object sender, ListViewItemSelectionChangedEventArgs e)
{
var sinhvien = e.Item;
txt_masv.Text = sinhvien.SubItems[0].Text;
txt_tensv.Text = sinhvien.SubItems[1].Text;
txt_ngaysinh.Text = sinhvien.SubItems[2].Text;
txt_hocbong.Text = sinhvien.SubItems[4].Text;
if(sinhvien.SubItems[3].Text.Equals("Nam"))
{
rad_nam.Checked = true;
}
else
{
rad_nu.Checked = true;
}
cb_lophoc.SelectedValue = sinhvien.SubItems[6].Text;
btn_them.Enabled = true;
btn_luu.Enabled = false;
btn_xoa.Enabled = true;
btn_sua.Enabled = true;
_current_index_listview = e.ItemIndex;
}
public string GetCodeStudentAuto()
{
using (var conn = new SqlConnection(CONNECTION_STRING))
{
conn.Open();
var commandText = $@"SELECT CONCAT('SV', RIGHT(CONCAT('0000',ISNULL(right(max(masv),4),0) + 1),4))
FROM dbo.tbl_sinhvien where masv like 'SV%'";
using (var cmd = new SqlCommand(commandText, conn))
{
return cmd.ExecuteScalar().ToString();
}
}
}
private void btn_them_Click(object sender, EventArgs e)
{
btn_luu.Enabled = true;
btn_them.Enabled = false;
btn_sua.Enabled = false;
btn_xoa.Enabled = false;
txt_masv.Text = "";
txt_tensv.Text = "";
txt_ngaysinh.Value = DateTime.Now;
txt_hocbong.Text = "";
txt_masv.Text = GetCodeStudentAuto();
txt_tensv.Focus();
}
private void btn_luu_Click(object sender, EventArgs e)
{
var masv = txt_masv.Text;
var tensv = txt_tensv.Text;
var ngaysinh = txt_ngaysinh.Value;
var hocbong = txt_hocbong.Text;
var magioitinh = rad_nu.Checked == true ? 1 : 0;
var malop = cb_lophoc.SelectedValue.ToString();
if (string.IsNullOrEmpty(masv))
{
MessageBox.Show("Bạn chưa nhập mã sinh viên", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
txt_masv.Focus();
return;
}
if(masv.Length > 6)
{
MessageBox.Show("Bạn sinh viên chỉ tối đa 6 ký tự", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
txt_masv.Focus();
return;
}
//kiểm tra trùng mã
var isExists = CheckCodeIsExisted(masv);
if (isExists)
{
MessageBox.Show($"Mã sinh viên {masv} đã tồn tại.", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
txt_masv.Focus();
return;
}
if (string.IsNullOrEmpty(tensv))
{
MessageBox.Show($"Bạn chưa nhập tên sinh viên", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
txt_tensv.Focus();
return;
}
using (var conn = new SqlConnection(CONNECTION_STRING))
{
conn.Open();
var commandText = $"INSERT INTO tbl_sinhvien(masv, tensv, ngaysinh, malop, magioitinh, hocbong) VALUES(@masv, @tensv, @ngaysinh, @malop, @magioitinh, @hocbong)";
using (var cmd = new SqlCommand(commandText, conn))
{
cmd.Parameters.AddWithValue("@masv", masv);
cmd.Parameters.AddWithValue("@tensv", tensv);
cmd.Parameters.AddWithValue("@ngaysinh", ngaysinh);
cmd.Parameters.AddWithValue("@hocbong", hocbong);
cmd.Parameters.AddWithValue("@magioitinh", magioitinh);
cmd.Parameters.AddWithValue("@malop", malop);
var affectedRow = cmd.ExecuteNonQuery();
if (affectedRow > 0)
{
LoadData();
btn_them.Enabled = true;
btn_luu.Enabled = false;
btn_sua.Enabled = true;
btn_xoa.Enabled = true;
//MessageBox.Show($"Đã thêm sinh viên {tensv} thành công.", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else
{
MessageBox.Show($"Thêm dữ liệu thất bại.", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
}
private bool CheckCodeIsExisted(string masv)
{
using (var conn = new SqlConnection(CONNECTION_STRING))
{
conn.Open();
var commandText = $"SELECT count(*) FROM tbl_sinhvien WHERE masv='{masv}'";
using (var cmd = new SqlCommand(commandText, conn))
{
return Convert.ToInt32(cmd.ExecuteScalar()) > 0;
}
}
}
private void txt_hocbong_KeyPress(object sender, KeyPressEventArgs e)
{
e.Handled = e.KeyChar != (char)Keys.Back && !char.IsDigit(e.KeyChar);
}
private void btn_xoa_Click(object sender, EventArgs e)
{
var masv = txt_masv.Text;
if (!string.IsNullOrEmpty(masv))
{
var dlg = MessageBox.Show($"Bạn có chắn chắn muốn xóa sinh viên {txt_tensv.Text} ?", "Thông báo", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
if(dlg == DialogResult.Yes)
{
using (var conn = new SqlConnection(CONNECTION_STRING))
{
conn.Open();
var commandText = $"DELETE From tbl_sinhvien where masv='{masv}'";
using (var cmd = new SqlCommand(commandText, conn))
{
var affectedRow = cmd.ExecuteNonQuery();
if (affectedRow > 0)
{
LoadData();
}
else
{
MessageBox.Show($"Xóa dữ liệu thất bại.", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
}
}
}
private void btn_sua_Click(object sender, EventArgs e)
{
var masv = txt_masv.Text;
var tensv = txt_tensv.Text;
var ngaysinh = txt_ngaysinh.Value;
var hocbong = txt_hocbong.Text;
var magioitinh = rad_nu.Checked == true ? 1 : 0;
var malop = cb_lophoc.SelectedValue.ToString();
if (string.IsNullOrEmpty(masv))
{
MessageBox.Show("Bạn chưa nhập mã sinh viên", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
txt_masv.Focus();
return;
}
if (masv.Length > 6)
{
MessageBox.Show("Bạn sinh viên chỉ tối đa 6 ký tự", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
txt_masv.Focus();
return;
}
//kiểm tra trùng mã
var isExists = CheckCodeIsExisted(masv);
if (!isExists)
{
MessageBox.Show($"Mã sinh viên {masv} không tồn tại.", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
txt_masv.Focus();
return;
}
if (string.IsNullOrEmpty(tensv))
{
MessageBox.Show($"Bạn chưa nhập tên sinh viên", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
txt_tensv.Focus();
return;
}
using (var conn = new SqlConnection(CONNECTION_STRING))
{
conn.Open();
var commandText = $"UPDATE tbl_sinhvien SET tensv=@tensv, ngaysinh=@ngaysinh, malop=@malop, magioitinh=@magioitinh, hocbong =@hocbong WHERE masv=@masv";
using (var cmd = new SqlCommand(commandText, conn))
{
cmd.Parameters.AddWithValue("@masv", masv);
cmd.Parameters.AddWithValue("@tensv", tensv);
cmd.Parameters.AddWithValue("@ngaysinh", ngaysinh);
cmd.Parameters.AddWithValue("@hocbong", hocbong);
cmd.Parameters.AddWithValue("@magioitinh", magioitinh);
cmd.Parameters.AddWithValue("@malop", malop);
var affectedRow = cmd.ExecuteNonQuery();
if (affectedRow > 0)
{
LoadData(_current_index_listview);
}
else
{
MessageBox.Show($"Chỉnh sửa dữ liệu thất bại.", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
}
}
}
Thanks for watching!
Pass unrar: laptrinhvb.net