FillDataSetAndView() Me.Dgv_SV.DataSource = oDS Me.Dgv_SV.DataMember = "Sinhvien" Grid()
End Sub
- Sự kiện Load của Form
Private Sub frm_SVTK_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim cnnstr As String = My.Computer.FileSystem.ReadAllText("config.ini") cnn.ConnectionString = cnnstr
cnn.Open()
Dim oDL As New SqlDataAdapter() Dim oDSL As New DataSet()
oDL.SelectCommand = New SqlCommand() oDL.SelectCommand.Connection = cnn oDL.SelectCommand.CommandText= SELECT MaLop FROM lop" oDL.SelectCommand.CommandType = CommandType.Text oDL.Fill(oDSL, "lop")
Me.cb_malop.DataSource = oDSL.Tables("Lop") Me.cb_malop.DisplayMember = "Malop" Me.cb_malop.ValueMember = "MaLop" FillDataSetAndView() Me.Dgv_SV.AutoGenerateColumns = True Me.Dgv_SV.DataSource = oDV
Có thể bạn quan tâm!
- Mối Liên Hệ Giữa Lớp Command Và Các Lớp Khác
- SQL Server - 31
- Form Sắp Xếp Và Tìm Kiếm Sinh Viên
- Xác Định Các Thông Số Của Khóa Ngoại
- Thực Hiện Import Câu 2: Tạo View Thực Hiện Các Công Việc Sau:
- SQL Server - 36
Xem toàn bộ 323 trang tài liệu này.
Grid() End Sub
- Sự kiện Click của nút Sắp xếp
Private Sub btn_Sort_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Sort.Click
FillDataSetAndView()
Select Case cb_Sort.SelectedIndex Case 0
oDV.Sort = "Masv"
Case 1
oDV.Sort = "Hoten" Case 2
oDV.Sort = "ns"
Case 3
oDV.Sort = "diachi" End Select
Me.Dgv_SV.AutoGenerateColumns = True Me.Dgv_SV.DataSource = oDV
Grid()
End Sub
- Sự kiện Click của nút Tìm kiếm
Private Sub btn_Search_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Search.Click
Dim ma_sv As String Dim hoten As String Dim ns As String Dim dc As String
Dim intPosition As Integer
Select Case cb_Search.SelectedIndex Case 0
oDV.Sort = "Masv"
ma_sv = InputBox("Nhập mã sinh viên") intPosition = oDV.Find(ma_sv) oDV.RowFilter = "masv='" & ma_sv & "'"
Case 1
oDV.Sort = "Hoten"
hoten = InputBox("Nhập họ tên sinh viên") intPosition = oDV.Find(hoten) oDV.RowFilter = "hoten='" & hoten & "'"
Case 2 oDV.Sort = "ns"
ns = InputBox("Nhập ngày sinh của sinh viên") intPosition = oDV.Find(ns)
oDV.RowFilter = "ns=#" & ns & "#"
Case 3
oDV.Sort = "diachi"
dc = InputBox("Nhập địa chỉ của sinh viên") intPosition = oDV.Find(dc)
oDV.RowFilter = "diachi='" & dc & "'" End Select
If intPosition > 0 Then Me.Dgv_SV.AutoGenerateColumns = True Me.Dgv_SV.DataSource = oDV
Grid() Else
MsgBox("Không tìm thấy") End If
End Sub
BÀI TẬP
Bài số 1: Cho CSDL quản lý điểm (QLD) gồm các bảng sau
SV(MaSV, Hoten, GT, NS, QQ, MaL): Chứa thông tin về các sinh viên. HP(MaHP, TenHP, SoTC, HK): Chứa thông tin về các học phần.
Diem(MaSV, MaHP, Diem): Chứa thông tin về điểm của từng học phần của từng sinh viên.
Trong đó: MaSV-Mã sinh viên, Hoten-Họ tên sinh viên, GT-Giới tính, NS-Ngày sinh, QQ-Quê quán, MaHP-Mã học phần, TenHP-Tên học phần, SoTC-Số tín chỉ, HK- Học kỳ, Diem-Điểm.
Câu 1: Tạo lập cơ sở dữ liệu:
1. Tạo cơ sở dữ liệu với tên là QLD.
2. Tạo các bảng dữ liệu
3. Thiết kế ràng buộc khóa chính, khóa ngoại, ràng buộc duy nhất, ràng buộc kiểm tra, ràng buộc mặc định cho mỗi bảng dữ liệu.
4. Tạo Diagrams cho cơ sở dữ liệu
5. Tạo chỉ mục: liên cung, phi liên cung, không gian.
6. Nhập tối thiểu 10 bản ghi cho mỗi bảng (Nhập trực tiếp hoặc nhập từ file).
Câu 2: Tạo View thực hiện các công việc sau:
1. Đưa ra các thông tin: Mã sinh viên, họ và tên sinh viên, ngày sinh, giới tính của các sinh viên nữ có quê quán ‟Nam Dinh‟ hoặc „Can Tho‟.
2. Đưa ra các thông tin: Mã sinh viên, họ và tên sinh viên, ngày sinh, giới tính, tên học phần, điểm của các sinh viên lớp „Tin 32‟ có điểm học phần ‟CSDLQH‟ lớn hơn 8.
3. Đưa ra các thông tin: học kì, mã học phần, tên học phần, số tín chỉ, số sinh viên thi lại từng học phần của từng kỳ mà có số sinh viên thi lại nhỏ hơn 10.
4. Đưa ra các thông tin: họ và tên sinh viên, ngày sinh, giới tính, tổng điểm, điểm trung bình học phần của mỗi sinh viên trong kỳ 2.
5. Đưa ra các thông tin: họ và tên sinh viên, ngày sinh, giới tính của những thí sinh chưa dự thi môn nào. Danh sách đưa ra sắp xếp theo chiều giảm dần của ngày sinh.
6. Đưa ra các thông tin: học kỳ, mã học phần học, tên học phần học, số sinh viên có điểm lớn hơn 5 của từng học phần của từng kỳ.
7. Đưa ra các thông tin: mã lớp, mã học phần, tên học phần, số tín chỉ, số sinh viên thi lại từng học phần của từng lớp mà có số sinh viên thi lớn hơn 2.
8. Đưa ra các thông tin: mã lớp, mã học phần, tên học phần, số tín chỉ, số sinh viên không phải thi lại từng học phần của từng lớp mà có số sinh viên lớn hơn 2.
Biết rằng sinh viên thi lại là sinh viên có điểm thi nhỏ hơn 5. Điểm trung bình=(Điểm thi*Số tín chỉ)/Số tín chỉ.
Câu 3: Hãy viết các Stored Procedure để thực hiện các công việc sau:
1. Đưa ra các thông tin: Mã sinh viên, họ và tên sinh viên, ngày sinh, giới tính, tên học phần, điểm thi của sinh viên lớp „Tin 31‟ hoặc lớp „Tin K5A‟ có học kì cho trước.
2. Đưa ra các thông tin: Mã sinh viên, họ và tên sinh viên, ngày sinh, giới tính, tên học phần, điểm thi, học kì của các sinh viên có mã lớp cho trước.
3. Đưa ra các thông tin: Mã sinh viên, họ và tên sinh viên, ngày sinh, giới tính của những sinh viên chưa dự thi môn nào.
4. Đưa ra các thông tin: mã lớp, học kì, mã sinh viên, họ và tên sinh viên, ngày sinh, giới tính, tên học phần, điểm thi của các sinh viên có điểm thi học phần đó lớn hơn 5 với mã lớp và học kỳ cho trước.
5. Đưa ra các thông tin gồm: mã lớp, số sinh viên của từng lớp mà có số sinh viên lớn hơn 50. Danh sách sắp xếp theo chiều tăng dần của số sinh viên.
6. Thêm bản ghi cho bảng sinh viên (thủ tục phải thực hiện kiểm tra tính hợp lệ của dữ liệu cần bổ sung, không trùng khoá chính và đảm bảo toàn vẹn tham chiếu)
7. Thêm bản ghi cho bảng học phần học (thủ tục phải thực hiện kiểm tra tính hợp lệ của dữ liệu cần bổ sung, không trùng khoá chính và đảm bảo toàn vẹn tham chiếu).
8. Thêm bản ghi cho bảng điểm (thủ tục phải thực hiện kiểm tra tính hợp lệ của dữ liệu cần bổ sung, không trùng khoá chính và đảm bảo toàn vẹn tham chiếu).
9. Xóa các sinh viên mà có điểm trung bình nhỏ hơn 2.0.
10. Tăng số đơn vị học trình của những học phần thuộc học kỳ 2 lên 1 đơn vị học trình, giảm đơn vị học trình của những học phần thuộc học kỳ 1 đi 1 đơn vị học trình.
Câu 4: Xây dựng hàm
1. Xây dựng một hàm xét loại học lực cho mỗi sinh viên. Biết rằng nếu điểm trung bình (DTBHK) 8.4 thì xếp loại giỏi, 7.0 DTBHK < 8.4 thì xếp loại khá, 5.0 DTBHK < 6.9 thì xếp loại trung bình, ngược lại xếp loại yếu. Sau đó, sử dụng hàm này xây dựng một hàm trả về một bảng gồm các thông tin: mã sinh viên, họ tên, ngày sinh, điểm trung bình, xếp loại học lực của từng kỳ.
2. Xây dựng một hàm xét học bổng cho mỗi sinh viên của một học kỳ. Biết rằng nếu điểm trung bình học kỳ (DTBHKHK) 9.0 thì được 240.000/tháng, 8.0 DTBHKHK
< 9 thì được 180.000/tháng, 7.0 DTBHKHK < 8 thì được 150.000/tháng. Sau đó sử dụng hàm này xây dựng một hàm trả về một bảng gồm các thông tin: kỳ, mã sinh viên, họ tên, ngày sinh, điểm trung bình, mức học bổng.
3. Xây dựng một hàm trả về một bảng gồm các thông tin sau: mã lớp, số sinh viên, điểm trung bình học phần có mã học phần là „PTTK‟ hoặc „CSDL‟.
4. Xây dựng một hàm trả về một bảng gồm các thông tin sau: mã lớp, mã sinh viên, họ và tên, học kỳ, điểm trung bình của mỗi học kỳ, của mỗi sinh viên mà có điểm trung bình lớn nhất với học kỳ cho trước.
Câu 5: Viết các Trigger
1. Tạo Trigger cho bảng sinh viên theo yêu cầu sau:
Khi thêm mới một sinh viên thì kiểm tra tính hợp lệ của dữ liệu cần bổ sung, không trùng khoá chính và đảm bảo toàn vẹn tham chiếu.
Chỉ cho phép xóa thí sinh mà có điểm trung bình toàn khóa nhỏ hơn 1.0.
+ Khi cập nhật mã sinh viên thì mã sinh viên trong bảng điểm cũng được cập nhật theo.
2. Tạo Trigger cho bảng học phần học theo yêu cầu sau:
Khi thêm mới học phần học thì kiểm tra tính hợp lệ của dữ liệu cần bổ sung, không trùng khoá chính và đảm bảo toàn vẹn tham chiếu.
Khi xóa bản ghi ở bảng học phần học thì bản ghi tương ứng ở bảng điểm cũng bị xóa.
Không cho phép cập nhật số đơn vị học trình lớn hơn 10 và nhỏ hơn 0.
3. Tạo Trigger cho bảng điểm theo yêu cầu sau:
Khi thêm mới một bản ghi thì kiểm tra tính hợp lệ của dữ liệu cần bổ sung, không trùng khoá chính và đảm bảo toàn vẹn tham chiếu.
Chỉ cho phép xóa 2 bản ghi trở xuống.
Không cho phép cập nhật điểm thi lớn hơn 10 và nhỏ hơn 0.
Câu 6:Các thao tác trên cơ sở dữ liệu
1. Thiết lập cấu hình dịch vụ của SQL Server.
2. Tạo file sao lưu cho cơ sở dữ liệu trên với tên là „QLD_Backup‟ thuộc loại full backup, Transaction log và differential backup, khôi phục dữ liệu từ file sao lưu đã tạo.
3. Tách bỏ cơ sở dữ liệu khỏi SQL Server.
4. Xuất file cơ sở dữ liệu sang dạng Text, Access, Excel, SQL Server.
5. Tạo lịch trình sao lưu tự động cho cơ sở dữ liệu trên vào 17h hàng ngày
6. Tạo lịch trình sao lưu tự động cho cơ sở dữ liệu trên vào 8h sáng thứ 3 hàng tuần.
Câu 7:Quản lý bảo mật và người dùng
1. Tạo người dùng đăng nhập bằng tài khoản SQL Server, bằng tài khoản của Window.
2. Gắn các nhóm quyền cho người dùng.
3. Gắn các vai trò cho người dùng.
4. Cấp quyền sử dụng select, update, insert, delete trên bảng cho người dùng.
Hướng dẫn giải
Câu 1: Tạo lập cơ sở dữ liệu:
1. Tạo cơ sở dữ liệu với tên là QLD.
Bước 1: Chọn Databases/Chọn New Database
Hình 9.1. Tạo cơ sở dữ liệu
Bước 2: Nhập tên cơ sở dữ liệu vào mục Database name là QLD/Chọn OK
Hình 9.2. Xác định các thông số của cơ sở dữ liệu
2. Tạo các bảng dữ liệu
- Tạo bảng sinh viên
Bước 1: Chọn Tables/Chọn New Table
Hình 9.3. Tạo bảng dữ liệu
Bước 2: Thiết kế bảng dữ liệu
- Nhập tên trường
- Chọn kiểu dữ liệu thích hợp
Hình 9.4. Thiết kế bảng dữ liệu
Bước 3: Lưu bảng dữ liêu: Chọn nút Save/Nhập tên bảng/Chọn OK.
Hình 9.5. Lưu bảng dữ liệu
- Tạo bảng điểm và học phần (Sinh viên tự làm)
3. Thiết kế ràng buộc khóa chính, khóa ngoại, ràng buộc duy nhất, ràng buộc kiểm tra, ràng buộc mặc định cho mỗi bảng dữ liệu.
- Thiết kế ràng buộc khóa chính cho bảng sinh viên Bước 1: Chọn tên bảng/Chọn chuột phải/Chọn Design.
Bước 2: Chọn trường mã sinh viên//Chọn chuột phải/Chọn Set Primary Key.