Professional Documents
Culture Documents
cboKhoaTim.DataSource = dtKhoaTim;
cboKhoaTim.DisplayMember = "Tenkhoa";
cboKhoaTim.ValueMember = "Makhoa";
}
c, gọi trong form load
conn = KetNoi.ConnectDB();
laynguoncboTim();
Bước 2 : lấy nguồn cho DataGrid :
trường hợp 1 : nếu makhoatim rỗng thì hiển thị tất cả các lớp :
select * from lop
trường hợp 2 : nếu có makhoatim thì tìm các lớp theo khóa đó
select * from lop where makhoa = N’makhoatim’
a, viết thủ tục lấy nguồn :
public void laynguon()
{
if (makhoatim == "")
sql = "Select * from lop";
else
sql = "Select * from lop where makhoa = N'" + makhoatim + "'";
da = new SqlDataAdapter(sql, conn);
dt = new DataTable();
da.Fill(dt);
dgDanhMuc.DataSource = dt;
lblThongbao.Text = "Có " + dgDanhMuc.RowCount + " lớp.";
}
b, lấy nguồn khi form load
makhoatim = "";
laynguon();
c, khi chọn combo, khi hiện tất cả
private void cboKhoaTim_SelectedIndexChanged(object sender, EventArgs e)
{
makhoatim = cboKhoaTim.SelectedValue.ToString();
laynguon();
}
cboKhoa.DataSource = dtKhoa;
cboKhoa.DisplayMember = "Tenkhoa";
cboKhoa.ValueMember = "Makhoa";
cboNganh.DataSource = dtNganh;
cboNganh.DisplayMember = "TenNganh";
cboNganh.ValueMember = "MaNganh";
}
b, viết thủ tục khi bấm chuột vào DataGrid
private void dgDanhMuc_CellMouseClick(object sender, DataGridViewCellMouseEventArgs e)
{
try
{
if (dgDanhMuc.RowCount > 0)
{
if (e.RowIndex >= 0)
{
DataGridViewRow row = dgDanhMuc.Rows[e.RowIndex];
txtMaLop.Text = row.Cells[0].Value.ToString();
cboKhoa.SelectedValue = row.Cells[1].Value.ToString();
cboNganh.SelectedValue = row.Cells[2].Value.ToString();
txtTenLop.Text = row.Cells[3].Value.ToString();
txtGVCN.Text = row.Cells[4].Value.ToString();
txtSDT.Text = row.Cells[5].Value.ToString();
}
}
}
catch (Exception ev) { }
}
Bước 4 : thiết kế các nút lệnh thêm, sửa, xóa, ghi, không. viết thủ tục khóa mở và
gọi thủ tục trong form load.
private void Form1_Load(object sender, EventArgs e) { khoamo(true);}
public void khoamo(bool b)
{
cboKhoaTim.Enabled = b;
cmdHienToanBo.Enabled = b;
dgDanhMuc.Enabled = b;
txtMaLop.ReadOnly = b;
txtTenLop.ReadOnly = b;
txtGVCN.ReadOnly = b;
txtSDT.ReadOnly = b;
cboKhoa.Enabled = !b;
cboNganh.Enabled = !b;
cmdThem.Enabled = b;
cmdSua.Enabled = b;
cmdXoa.Enabled = b;
cmdGhi.Enabled = !b;
cmdKhong.Enabled = !b;
}
Bước 5 : Viết lệnh cho các nút : khai báo thêm biến ktThem và macu
bool ktThem = true;
string macu = "";
Viết thủ tục xóa trắng để xóa nội dung các ô Text
public void xoatrang()
{
txtMaLop.Text = ""; txtTenLop.Text = "";
txtGVCN.Text = ""; txtSDT.Text = "";
}
a, nút thêm :
private void cmdThem_Click(object sender, EventArgs e)
{
ktThem = true;
khoamo(false);
xoatrang(); txtMaLop.Focus();
}
b, nút sửa
private void cmdSua_Click(object sender, EventArgs e)
{
if (txtMaLop.Text == "") return;
macu = txtMaLop.Text;
ktThem = false;
khoamo(false);
txtMaLop.Focus();
}
c, nút xóa
private void cmdXoa_Click(object sender, EventArgs e)
{
if (txtMaLop.Text == "") return;
DialogResult kq = MessageBox.Show("Xóa lớp học " + txtTenLop.Text +
" không?", "Xóa", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
if (kq == DialogResult.Yes)
{
sql = "Delete from lop where malop = N'" + txtMaLop.Text + "'";
if (conn.State != ConnectionState.Open) conn.Open();
SqlCommand cmd = new SqlCommand(sql, conn);
cmd.ExecuteNonQuery();
xoatrang();
laynguon();
}
}
d, nút không
private void cmdKhong_Click(object sender, EventArgs e)
{
khoamo(true);
dgDanhMuc_CellMouseClick(sender, vt);
}
e, nút ghi :
- kiểm tra dữ có bị rỗng không (mã, tên)
- kiểm tra tính hợp lệ : kiểu số, kiểu ngày, kiểu bit…
- kiểm tra trùng mã (kt khi thêm, khi sửa) :
viết thủ tục kiểm tra
- thực hiện ghi : viết câu lệnh insert hoặc update
- khóa điều khiển
- gọi lấy lại nguồn
bool ktThem = true;
string macu = "";
private void cmdGhi_Click(object sender, EventArgs e)
{
if (txtMaLop.Text == "") { txtMaLop.Focus(); return; }
if (txtTenLop.Text == "") { txtTenLop.Focus(); return; }
if (ktThem == true)
{
if (ktTrungThem(txtMaLop.Text)==true)
{
MessageBox.Show("trùng mã thêm.", "thông báo", MessageBoxButtons.OK,
MessageBoxIcon.Exclamation);
return;
}
}
else
if (ktTrungSua(txtMaLop.Text) == true)
{
MessageBox.Show("trùng mã sửa.", "thông báo", MessageBoxButtons.OK,
MessageBoxIcon.Exclamation);
return;
}
/*ghi chú : không cần viết vào code, thầy ghi chú để chép vở
1. cú pháp câu lệnh thêm : insert into tenbang(ds trường) values (ds giá trị)
insert into lop(malop,makhoa,manganh,tenlop,gvcn,sdt)
values(N'malop',N'makhoa',N'manganh',N'tenlop',N'gvcn',N'sdt')
insert into lop(malop,makhoa,manganh,tenlop,gvcn,sdt)
values(N'txtMaLop',N'cboKhoa',N'cboNganh',N'txtTenLop',N'txtGVCN',N'txtSDT')
thay thế bằng cách nối chuỗi :
txtMaLop sẽ thay bằng " + txtMaLop.Text + "
txtTenLop sẽ thay bằng " + txtTenLop.Text + "
cboKhoa sẽ thay bằng " + cboKhoa.SelectedValue.ToString()
+ "
câu lệnh sẽ trở thành
insert into lop(malop,makhoa,manganh,tenlop,gvcn,sdt) values(N'" +
txtMaLop.Text + "',N'" + cboKhoa.SelectedValue.ToString() +
"',N'" + cboNganh.SelectedValue.ToString() + "',N'" + txtTenLop.Text +
"',N'" + txtGVCN.Text + "',N'" + txtSDT.Text + "')
2. cú pháp câu lệnh cập nhật : update tenbang set trường 1 = giá trị 1,
trường 2=giá trị 2,... where mã = N'macu'
update lop set malop=N'',tenlop=N'',makhoa=N'',manganh=N'',gvcn=N'',sdt=N''
where malop = N'macu'
update lop set
malop=N'malop',tenlop=N'tenlop',makhoa=N'makhoa',manganh=N'manganh',gvcn=N'gvcn',sdt=N'sd
t' where malop = N'macu'
update lop set
malop=N'txtMaLop',tenlop=N'txtTenLop',makhoa=N'cboKhoa',manganh=N'cboNganh',gvcn=N'txtGVC
N',sdt=N'txtSDT' where malop = N'macu'
thay thế các điều khiển vào câu truy vấn
update lop set malop=N'" + txtMaLop.Text + "',tenlop=N'" + txtTenLop.Text +
"',makhoa=N'" + cboKhoa.SelectedValue.ToString() +
"',manganh=N'" + cboNganh.SelectedValue.ToString() + "',gvcn=N'" +
txtGVCN.Text + "',sdt=N'" + txtSDT.Text + "' where malop = N'" + macu + "'
*/
if (ktThem == true)
sql = "insert into lop(malop,makhoa,manganh,tenlop,gvcn,sdt) values(N'" +
txtMaLop.Text + "',N'" + cboKhoa.SelectedValue.ToString() +
"',N'" + cboNganh.SelectedValue.ToString() + "',N'" + txtTenLop.Text +
"',N'" + txtGVCN.Text + "',N'" + txtSDT.Text + "')";
else
sql = "update lop set malop=N'" + txtMaLop.Text + "',tenlop=N'" +
txtTenLop.Text + "',makhoa=N'" + cboKhoa.SelectedValue.ToString() +
"',manganh=N'" + cboNganh.SelectedValue.ToString() + "',gvcn=N'" +
txtGVCN.Text + "',sdt=N'" + txtSDT.Text + "' where malop = N'" + macu + "'";
if (conn.State != ConnectionState.Open) conn.Open();
SqlCommand cmd = new SqlCommand(sql, conn);
cmd.ExecuteNonQuery();
khoamo(true);
laynguon();
}
public bool ktTrungThem(string manhap)
{
sql = "Select * from lop where malop=N'" + manhap + "'";
da = new SqlDataAdapter(sql, conn);
dt = new DataTable();
da.Fill(dt);
if (dt.Rows.Count > 0)
return true;
else
return false;
}
public bool ktTrungSua(string manhap)
{
sql = "Select * from lop where malop =N'" + manhap + "' and malop<> N'" +
macu + "'";
da = new SqlDataAdapter(sql, conn);
dt = new DataTable();
da.Fill(dt);
if (dt.Rows.Count > 0)
return true;
else
return false;
}