Xây dựng phần mềm hướng đối tượng - Hướng dẫn thực hành tuần 5: ADO.NET
if(rows.Count > 0)
{
DataGridViewRowrow = rows[0];
txtMaHS.Text = row.Cells["MaHS"].Value.ToString();
txtTenHS.Text = row.Cells["TenHS"].Value.ToString();
if(row.Cells["NgaySinh"].Value.ToString().Length>0)
dtNgaySinh.Value =
DateTime.Parse(row.Cells["NgaySinh"].Value.ToString());
txtDiaChi.Text = row.Cells["DiaChi"].Value.ToString();
txtDiemTB.Text = row.Cells["DiemTB"].Value.ToString();
cboLop.Text = row.Cells["TenLop"].Value.ToString();
}
}
Xây dựng phần mềm hướng đối tượng GVHD: Trần Anh Dũng
HƯỚNG DẪN THỰC HÀNH TUẦN 5
Chủ đề: ADO.NET (tt)
Phần 2: Các thao tác kết nối ADO.NET sử dụng cấu trúc dòng lệnh với
namespace System.Data.
(Kết nối với Database SQL Server)
1. Thiết kế CSDL SQL Server như sau:
a. Tạo databse với tên DBHOCSINH, thiết kế các table sau:
HOCSINH
STT Tên trường Kiểu dữ liệu Ghi chú
1 MaHS Nvarchar(20) PrimaryKey
2 TenHS Nvarchar(100)
3 NgaySinh Datetime
4 DiaChi Nvarchar(255)
5 DTB Real
6 MaLop Nvarchar(20) ForeignKey (tham chiếu đến
Lop(MaLop)
LOP
STT Tên trường Kiểu dữ liệu Ghi chú
1 MaLop Nvarchar(20) PrimaryKey
2 TenLop Nvarchar(100)
3 SiSo smallint
2. Tạo project mới:
Thiết kế lại Form “Kết nối CSDL SQL Server” như màn hình sau:
Xây dựng phần mềm hướng đối tượng GVHD: Trần Anh Dũng
Source code lớp frmConnection
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace QLHocSinh
{
public partial class frmConnection : Form
{
//Khai báo biến thành phần
public string sServerName = "";
public string sDatabaseName = "";
public string sUser = "";
public string sPass = "";
public frmConnection()
{
InitializeComponent();
}
private void frmConnection_Load(object sender, EventArgs e)
{
txtServerName.Focus();
}
private void cmdExit_Click(object sender, EventArgs e)
{
this.Close();
}
private bool KiemTraDLHopLe()
{
if (txtServerName.Text.Trim().Length == 0)
Xây dựng phần mềm hướng đối tượng GVHD: Trần Anh Dũng
{
MessageBox.Show("Chưa nhập tên máy chủ.", "Thong bao loi",
MessageBoxButtons.OK, MessageBoxIcon.Stop);
return false;
}
if (txtDBName.Text.Trim().Length == 0)
{
MessageBox.Show("Chưa nhập tên CSDL.", "Thong bao loi",
MessageBoxButtons.OK, MessageBoxIcon.Stop);
return false;
}
return true;
}
private void cmdConnect_Click(object sender, EventArgs e)
{
if (!KiemTraDLHopLe())
return;
sServerName = txtServerName.Text.Trim();
sDatabaseName = txtDBName.Text.Trim();
sUser = txtUser.Text.Trim();
sPass = txtPass.Text.Trim();
frmHocSinh frm = new frmHocSinh();
//Kiểm tra kết nối CSDL
if (!frm.connect(sServerName, sDatabaseName, sUser, sPass))
{
MessageBox.Show("Kết nối đến máy chủ không thành công.",
"Thong bao loi", MessageBoxButtons.OK, MessageBoxIcon.Stop);
return;
}
MessageBox.Show("Kết nối đến máy chủ thành công.", "Thong bao",
MessageBoxButtons.OK, MessageBoxIcon.Information);
frm.Show();
this.Hide();
}
}
}
Xây dựng phần mềm hướng đối tượng GVHD: Trần Anh Dũng
Thiết kế form nhập thông tin học sinh như sau:
Kết quả màn hình khi chạy:
DataGridView
Xây dựng phần mềm hướng đối tượng GVHD: Trần Anh Dũng
Để kết nối với CSDL SQL Server dùng namespace: using System.Data.SqlClient;
Source code lớp Màn hình nhập thông tin học sinh:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace QLHocSinh
{
public partial class frmHocSinh : Form
{
private SqlConnection connection;
private SqlDataAdapter adapter;
private DataSet dataSet;
private SqlCommand command;
private string maHS, tenHS, diachi, malop;
private float dtb;
private DateTime ngaysinh;
public frmHocSinh()
{
InitializeComponent();
}
public bool connect(string sServerName, string sDBName,
string sUser, string sPass)
{
string connnectionString = "server=" + sServerName +
"; database=" +
sDBName + "; user id=" + sUser + "; password=" + sPass;
connection = new SqlConnection(connnectionString);
try
{
connection.Open();
connection.Close();
return true;
}
catch
{
return false;
}
}
private DataTable getDSLop()
{
adapter = new SqlDataAdapter("select * from LOP", connection);
dataSet = new DataSet();
adapter.Fill(dataSet);
return dataSet.Tables[0];
}
private DataTable getDSHocSinh()
{
Xây dựng phần mềm hướng đối tượng GVHD: Trần Anh Dũng
adapter = new SqlDataAdapter("Select h.MaHS, h.TenHS,
h.NgaySinh, h.DiaChi, h.DiemTB, l.TenLop From HOCSINH h,
LOP l Where h.MaLop=l.MaLop", connection);
dataSet = new DataSet();
adapter.Fill(dataSet);
return dataSet.Tables[0];
}
private void DinhDangLuoi()
{
dgHocSinh.ReadOnly = true;
dgHocSinh.Columns[0].HeaderText = "Mã HS";
dgHocSinh.Columns[0].Width = 70;
dgHocSinh.Columns[1].HeaderText = "Tên HS";
dgHocSinh.Columns[1].Width = 150;
dgHocSinh.Columns[2].HeaderText = "Ngày sinh";
dgHocSinh.Columns[2].Width = 90;
dgHocSinh.Columns[3].HeaderText = "Địa chỉ";
dgHocSinh.Columns[3].Width = 200;
dgHocSinh.Columns[4].HeaderText = "Điểm TB";
dgHocSinh.Columns[4].Width = 80;
dgHocSinh.Columns[5].HeaderText = "Lớp";
dgHocSinh.Columns[5].Width = 80;
}
private void Form1_Load(object sender, EventArgs e)
{
//Load dữ liệu vào comboBox Lớp
DataTable dtLop = getDSLop();
cboLop.DataSource = dtLop;
//Chọn item đầu tiên trong table
cboLop.SelectedIndex = 0;
// Column sẽ được hiển thị
cboLop.DisplayMember = dtLop.Columns[1].ColumnName;
// Column sẽ được giữ giá trị
cboLop.ValueMember = dtLop.Columns[0].ColumnName;
//Load danh sách học sinh lên lưới
dgHocSinh.DataSource = getDSHocSinh();
//Định dạng lưới
DinhDangLuoi();
}
private void getData()
{
maHS = txtMaHS.Text;
tenHS = txtTenHS.Text;
ngaysinh = dtNgaySinh.Value;
diachi = txtDiaChi.Text;
malop = (string)cboLop.SelectedValue;
dtb = float.Parse(txtDiemTB.Text);
}
private void insert()
{
connection.Open();
string insertCommand = "INSERT INTO HOCSINH VALUES('" +
maHS + "', '" +
Xây dựng phần mềm hướng đối tượng GVHD: Trần Anh Dũng
tenHS + "', '" +
ngaysinh.ToShortDateString() + "', '" +
diachi + "', " +
dtb + ", '" +
malop + "')";
command = new SqlCommand(insertCommand, connection);
command.ExecuteNonQuery();
connection.Close();
}
private void delete()
{
connection.Open();
string deleteCommand = "DELETE FROM HOCSINH WHERE MaHS = '" +
maHS + "'";
command = new SqlCommand(deleteCommand, connection);
command.ExecuteNonQuery();
connection.Close();
}
private void btnXoa_Click(object sender, EventArgs e)
{
getData();
delete();
MessageBox.Show("Xoa du lieu thanh cong", "Thong bao",
MessageBoxButtons.OK, MessageBoxIcon.Information);
//Load lai danh sach hoc sinh len luoi
dgHocSinh.DataSource = getDSHocSinh();
//Xoa du lieu tren cac textbox
txtMaHS.Text = "";
btnNew_Click(sender, e);
}
private void btnThoat_Click(object sender, EventArgs e)
{
Application.Exit();
}
private void btnLuu_Click(object sender, EventArgs e)
{
getData();
insert();
MessageBox.Show("Cap nhat thanh cong", "Thong bao",
MessageBoxButtons.OK, MessageBoxIcon.Information);
//Load lai danh sach hoc sinh len luoi
dgHocSinh.DataSource = getDSHocSinh();
}
private void txtMaHS_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == 13)
SendKeys.Send("{TAB}");
}
private void dgHocSinh_SelectionChanged(object sender, EventArgs e)
{
DataGridViewSelectedRowCollection rows = dgHocSinh.SelectedRows;
Xây dựng phần mềm hướng đối tượng GVHD: Trần Anh Dũng
if (rows.Count > 0)
{
DataGridViewRow row = rows[0];
txtMaHS.Text = row.Cells["MaHS"].Value.ToString();
txtTenHS.Text = row.Cells["TenHS"].Value.ToString();
if (row.Cells["NgaySinh"].Value.ToString().Length>0)
dtNgaySinh.Value =
DateTime.Parse(row.Cells["NgaySinh"].Value.ToString());
txtDiaChi.Text = row.Cells["DiaChi"].Value.ToString();
txtDiemTB.Text = row.Cells["DiemTB"].Value.ToString();
cboLop.Text = row.Cells["TenLop"].Value.ToString();
}
}
private void btnNew_Click(object sender, EventArgs e)
{
txtMaHS.Text = "";
txtTenHS.Text = "";
txtDiaChi.Text = "";
txtDiemTB.Text = "";
}
}
}
File đính kèm:
Xây dựng phần mềm hướng đối tượng - Hướng dẫn thực hành tuần 5 ADO.NET.pdf

