Hướng dẫn thực hành NMCNPM
HƯỚNG DẪN THỰC HÀNH TUẦN 9
Chủ đề: Gọi thực thi Stored Procedure
1. Mục đích
- Kết nối và thực hiện các thao tác trên
CSDL SQL Server.
- Biết cách tham số hóa cho câu lệnh
SQL.
- Hiểu và vận dụng được cách thực thi
các câu lệnh SQL thông qua Stored Procedure.
o Stored Procedure không có kết
quả trả về (parameter input)
o Stored Procedure có kết quả trả
về (parameter output)
2. Cơ sở dữ liệu
- Tạo CSDL SQL Server mới, tên CSDL
là QLHocSinh. Tạo và thiết kế database mới gồm hai bảng như sau:
HOCSINH
STT Tên trường Kiểu dữ liệu Ghi chú
1 MaHS Varchar(10) PrimaryKey
2 TenHS Nvarchar(50)
3 NgaySinh Date/Time
4 DiaChi Nvarchar(250)
5 DTB Real/float
6 MaLop Varchar(10) ForeignKey (tham chiếu đến
Lop(MaLop)
LOP
STT Tên trường Kiểu dữ liệu Ghi chú
1 MaLop Varchar(10) PrimaryKey
2 TenLop Nvarchar(100)
3 SiSo int
- Hoặc import CSDL từ Access đã được
tạo trong tuần trước (CSDL QLHOCSINH.mdb).
1
Hướng dẫn thực hành NMCNPM
- Hướng dẫn cách import CSDL Access
vào CSDL SQL Server:
o Trước hết ta tạo một Database
mới với tên QLHocSinh
o Từ Database QLHocSinh chọn
Import Data…
o Chọn Next, Sau đó chọn dữ liệu
nguồn (dữ liệu nguồn ở đây là Access)
2
Hướng dẫn thực hành NMCNPM
o Chọn Next, Chọn đích import
(đã được mặc định là SQL Server)
o Chọn Next
3
Hướng dẫn thực hành NMCNPM
o Chọn Next
o Chọn các table muốn import vào
CSDL SQL Server. Sau đó chọn Next.
4
Hướng dẫn thực hành NMCNPM
3. Sử dụng lại ứng dụng trong tuần trước hoặc tạo ứng dụng mới:
- Để kết nối với CSDL SQL Server, ta
phải khai báo namespace như sau:
using System.Data.SqlClient;
- Khai báo các đối tượng sau để thực hiện
các thao tác với CSDL SQL Server:
SqlConnection connection;
SqlDataAdapter adapter;
SqlCommand command = new SqlCommand();
- Chuỗi kết nối với CSDL SQL Server,
gồm bốn thông tin: tên server, tên databse, userid và password.
"server=dungta; database=QLHocSinh; user id=sa; password=";
4. Áp dụng kỹ thuật tham số hóa cho câu lệnh SQL
a. Thực hiện thêm mới thông tin một học sinh
- Trước đây, chúng ta thiết lập câu lệnh
insert như sau:
string sql = "INSERT INTO HOCSINH VALUES('"
txtMaHS.Text.Trim() + "', '"
+ txtTenHS.Text.Trim() + "', '"
+ dtNgaySinh.Value.ToString() + "', '"
+ txtDiaChi.Text.Trim() + "', "
+ txtDiemTB.Text.Trim() + ", '"
+ cboLop.SelectedValue + "')";
command = new SqlCommand(sql, connection);
command.ExecuteNonQuery();
- Để tham số hóa các tham số cho câu
lệnh SQL ta thực hiện các bước sau:
o Tham số hóa câu lệnh: @[tên
tham số]
o Tạo các parameters tương ứng
cho command.
o Đặt giá trị cho các parameter
mỗi khi dùng command thực hiện câu lệnh.
- Như vậy, chúng ta có thể thay thế đoạn
code trên bằng đoạn code như sau:
string sql="INSERT INTO HOCSINH VALUES(@Ma,@Ten,@Ns,@Dc,@Diem,@Lop)";
5