BÀI TẬP THỰC HÀNH VISUAL BASIC.NET pot - Pdf 11

Trang 1
BÀI TẬP THỰC HÀNH VISUAL BASIC.NET

Tuần 1 : Cấu trúc chương trình VB
- Tạo và lưu 1 project VB
- Viết chương trình in ra chữ Hello
- Viết chương trình nhập họ tên của 1 người. In ra họ tên của người đó.
- Thiết kế Form nhập vào 2 số. Tính tổng 2 số vừa nhập
(Dùng Textbox và Command Button)
- Thiết kế giao diện máy tính đơn giản

Tuần 2 : Ngôn ngữ lập trình
- Viết chương trình giải phương trình ax + b = 0
- Viết chương trình giải phương trình bậc 2 : ax
2
+ bx + c = 0
- Viết chương trình nhập vào 1 số từ 1 đến 7. Cho biết số đó là thứ mấy trong tuần
- Viết chương trình tính tổng S = 1 + 2 + 3 +…+ N
- Viết chương trình tính N!

Tuần 3 : Ngôn ngữ lập trình (tt)
- Viết chương trình lặp lại nhiều lần việc nhập 1 số nguyên x, việc nhập kết thúc khi
x=0. Tính tổng các số vừa nhập
- Viết chương trình kiểm tra 1 số có phải nguyên tố hay không?
- Viết chương trình kiểm tra 1 số có phải là số chính phương hay không?

Tuần 4 : Ngôn ngữ lập trình (tt)
- Viết chương trình con nhập vào mảng 1 chiều N phần tử. Tìm số lớn nhất và nhỏ
nhất trong mảng
- Viết chương trình con sắp xếp mảng 1 chiều theo thứ tự tăng dần
- Viết chương trình con cho biết có bao nhiêu số nguyên tố trong mảng 1 chiều

- PictureBox2: thuộc tính Image – None; SizeMode: Stretchimage
- Chương trình này có hai CheckBox cho phép click chọn. Nếu click chọn vào
CheckBox nào thì sẽ hiện một bức ảnh tương ứng với nó.

Trang 3
3. Tạo trong form các điều khiển gồm ListBox, TextBox và một Button như hình.

4. Chương trình gồm hai textbox cho phép nhập hai giá trị để gán cho hai biến value1
và value2, bốn radiobutton cho phép chọn bốn toán tử khác nhau, khi đã nhập đầy
đủ hai giá trị thì có thể thực hiện tính bằng cách nhấp chọn nút ‘thực hiện tính’ và
kết quả hiển thị trong ô textbox3 – kết quả.

Tuần 7 : Các Control điều khiển (tt)
1. Giao diện chương trình:

Yêu cầu :
5. Chương trình bao gồm một listbox liệt kê danh sách 4 nước. Khi người dùng click
vào một nước nào đó thì tên nước hiện trên một nhãn và thông tin chi tiết hiện trên
một nhãn khác.
Trang 4
6. Lúc này nếu người dùng click vào lstcountry nhưng nếu không click đúng vào một
trong bốn mục thì chương trình lập tức hiện thông báo yêu cầu chọn một trong bốn
mục đó (sự kiện MouseHover)
2. Thiết kế giao diện như sau :

Dùng Textbox Tuần 8 : Các Control điều khiển (tt)
2. Thiết kế giao diện:

Constructor
Sub New() Public
Đặt nội dung cho textbox là “This is
my textbox”
Sub new (TextValue As String) public
Đặt nội dung cho textbox như tham số
truyền vào.
Phương thức
Phạm vi
truy cập
Yêu cầu chức năng
Sub Show() public Hiển thị textbox
Sub Hide() public Ẩn textbox
Sub SetDefaultFont() public Đặt font chữ mặc định cho textbox là
12pt, normal.
Sub SetFont(FontName As string) Public Đặt font chữ cho textbox. Thuộc tính
khác giữ nguyên
Sub SetFont(FontSize As Integer) Public Đặt kích cỡ font
Sub SetFont(FontName As String,
FontSize As Integer)
public Đặt tên font và kích thước cho textbox
Sub SetFont(F As Font) public Đặt font chữ cho textbox.
NumericEntryOnly() public Chỉ cho phép nhập số
Chuyên đề .NET.

Khoa Công nghệ thông tin – ĐHSPKT Hưng Yên 2006

ABCAlphabetEntryOnly() public Chỉ cho phép nhập chữ cái.
SetForeColor(Color As
ColorEnum)

public
3. Viết ứng dụng đơn giản.
Yên cầu:
Viết chương trình soạn thảo văn bản đơn giản có đầy đủ menu bar, menu toolbar và menu
popup để cho phép người dùng soạn thảo, định dạng và lưu trữ ra đĩa cứng.

à Sinh viên LÀM TRƯỚC Ở NHÀ, sau đó giáo viên sẽ
kiểm tra trong giờ thực hành và công bố điểm ngay khi hết
giờ thực hành. SV nào không đi thực hành để báo cáo à 0
điểm.

1
Bài thực hành số 2
Thao tác Cơ sở dữ liệu trong VB.NET

Mục tiêu : Sau khi kết thúc bài thực hành, sinh viên có thể:
ỉ Kết nối và truy vấn cơ sở dữ liệu thông qua tập các lớp của ADO.NET
ỉ Cập nhật dữ liệu thông qua các lớp thuộc mô hình kết nối và phi kết nối
(Connectioned & Disconnected).
ỉ Viết các lớp ComboBox, ListBox, TreeView, ListView, DataGridview mới có kế
thừa từ các lớp gốc.
ỉ Xây dựng một ứng dụng có sử dụng các lớp vừa xây dựng.

L-u ý:
ỉ Sinh viên khi làm cần phải xây dựng một (hoặc vài) form để Demo các yêu
cầu cho GVHD.
ỉ Nếu các bài Copy của nhau (không trình bày đ-ợc cái mình đã làm) thì cả ng-ời
Copy và cho Copy đều đ-ợc điểm 0 của phần thực hành (bị trừ 3 điểm).
M


e) Ghi thông tin về các sản phẩm đã bán vào tệp văn bản theo định dạng. (Mỗi bản
ghi trên một dòng)

STT ContacName ProductName CompanyName Quantity
1 John Monitor IBM 5
2 Adam CPU Intel 10
. Hình 1
2. Thao tác CSDL nwind.mdb theo mô hình phi kết nối
Xây dựng một form thao tác với bản Customers có dạng nh- sau:
3

H2. Giao diện thể hiện chức năng.
L-u ý: Có sử dụng điểu khiển Error Provider để kiểm tra dữ liệu nhập (các tr-ờng
số, tr-ờng not null)
3. Xây dựng lớp MyListBox thừa kế từ ListBox, với các thành viên mới:
- Ph-ơng thức LoadField(FieldName, TableName, DBPath: String) để nạp
một tr-ờng trong một bảng của tệp CSDL DBPath vào Listbox.
- Ph-ơng thức LoadFieldDistinctRow
(FieldName, TableName, DBPath: String)
để nạp tr-ờng nh-ng loại bỏ các phần tử trùng nhau (chỉ giữ lại một).

- Ph-ơng thức SortData (ChieuSapXep as boolean) để sắp xếp dữ liệu theo
chiều tăng hoặc giảm dần.

- Ph-ơng thức SortData(KieuDuLieu As Integer, ChieuSapXep as boolean) để sắp
xếp tùy thuộc vào kiểu dữ liệu trong listbox.
- Ph-ơng thức SortVietnameseName() để sắp xếp theo vần tên (Nếu listbox chứa

- Sub DeleteKey(K as string) để xóa một nút có khóa bằng K
- Function InsertNode(Key, Text As String, ParentKey As String) Để thêm một nút
mới có khóa là Key, Text là Text làm nút con của nút có khóa (Key) là ParentKey.
- Lớp MyTreeView
- SaveToCollection() As Collection : để l-u tất cả các nút của treeview vào một tập
hợp.
- Thêm menu popup vào cho treeview với các mục : Add, Delete để cho phép ng-ời
dùng thêm ngay, xóa ngay nút hiện hành (đang đ-ợc chọn).
- Bổ sung sự kiện Delete. Sự kiện này của ng-ời dùng sẽ đ-ợc kích hoạt mỗi khi
ng-ời dùng nhấn phím Del. (l-u ý: Nhiều bạn ở bài thực hành tr-ớc hiểu sai yêu
cầu Xin xem ví dụ mẫu).
7. Xây dựng lớp MyListView
Xây dựng lớp này để có thêm chức năng:
- ShowTable(Tên bảng, Tên CSDL) để hiển thị một bảng CSDL trong ListView.
- MyListView cũng có menuPopup để ng-ời dùng chọn kiểu hiển thị (3 mục là List,
Icons, report). Việc hiển thị menu có thể là tùy chọn (Enable/Disable).
- Thêm sự kiện Delete giống nh- ở câu 6.
8. Vận dụng các lớp vừa xây dựng ở trên, viết ứng dụng Quản lý lịch làm việc
Thông tin chung:
- Mỗi ng-ời có thể viết nhiều ngày làm việc
- Mỗi ngày có thể có nhiều việc khác nhau
- Mỗi việc đều có chi tiết công việc.
Yêu cầu (các chức năng chính, còn SV có thể bổ sung thêm nếu thấy cần Càng tốt !):
a. Nhập lịch làm việc cho một tuần
b. Bổ sung thêm một công việc cho một ngày nào đó
c. Xóa một công việc
d. Chỉnh sửa công việc
e. Xem các công việc theo ngày, tháng, tuần
f. Nhắc việc. Nếu thời gian máy tính bằng với thời điểm bắt đầu của công việc thì
"Nhắc nhở" bằng cách hiển thị một Message.

Yêu cầu:
Nhập nội dung xâu gửi (shutdown, restart, OPEN#<Đ-ờng dẫn>) vào
ô textbox Xâu gửi trên ứng dụng A. Sau khi nhấn nút Gửi thì xâu đó hiện ra
ô textbox Xâu nhận về trên ứng dụng B, đồng thời thực hiện các công việc
t-ơng ứng.

Bài 2: Viết ch-ơng trình UDP đặt trên một máy. thực hiện các công việc sau:
Khi một ứng dụng (B) gửi một xâu chữ Tiếng Anh thì ứng A sẽ gửi trả lại
nghĩa tiếng Việt t-ơng ứng. Nếu từ Tiếng Anh không có trong từ điển (từ
2
điển ở đây chỉ có 3 từ Computer, RAM, HDD) thì ứng dụng A gửi trả lại xâu
"Not found".
Mô tả giao diện:

Giao diện của ứng dụng A (ứng dụng 1)
Giao diện của ứng dụng B (ứng dụng 2)

Yêu cầu:
Nhập từ Tiếng Anh (TA) cần tra vào ô Textbox Từ TA trên ứng dụng
B. Khi nhấn nút Gửi thì từ TA đó hiện ra trong ô Text Từ TA nhận về từ
ứng dụng B trên ứng dụng A. Sau khi nhấn nút Gửi lại nghĩa thì nghĩa của
từ TA sẽ hiện ra trong ô Textbox Nghĩa nhận về từ ứng dụng A .

Bài 3: viết ch-ơng trình chơi cờ Caro qua mạng sử dụng giao thức UDP.
Mô tả giao diện:

Giao diện của ứng dụng A (ứng dụng 1)

Viết ch-ơng trình Telnet.

Bài 2: Viết ch-ơng trình Client/Server: Khi client gửi xâu "shutdown",
"restart" thì Server sẽ tắt máy và khởi động t-ơng ứng.
Mô tả giao diện: Giao diện của ứng dụng Client
Yêu cầu + Gợi ý:
5
- Khi ng-ời dùng nhấn nút Gửi thì client sẽ gửi nội dung trong ô
textbox Nội dung gửi cho Server. Tùy theo nội dung client gửi đi
mà Server thực hiện các công việc t-ơng ứng (shutdown, restart).
- Các thông tin về server có thể thay đổi đ-ợc.
- Để shutdown máy tính có thể dùng hàm API ExitWindown hay
Process.start(Shutdown,-s).

Bài 3: Viết ch-ơng trình Server giải đáp tên miền. Nếu máy khách gửi tên
máy thì server sẽ gửi về địa chỉ IP. (danh sách này tự tạo ra khoảng 3 cặp
để minh họa).
Mô tả giao diện:

Giao diện của ứng dụng Client

Yêu cầu
- Khi ng-ời dùng nhấn nút Gửi thì client sẽ gửi nội dung trong ô
textbox Nội dung gửi cho Server. Kiểm tra xem nội dung client gửi
đi có trùng với 1 trong 3 tên máy đã đ-ợc định nghĩ tr-ớc. Nếu
trùng thì Server gửi lại địa chỉ IP cho client.
- Các thông tin về server có thể thay đổi đ-ợc.

v Client:
- Các client kết nối đến server đ-ợc hiển thị trong mục: Danh sách
các client.
8
- Khi một client muốn chat với một client nào đó thì phải chọn client
muốn chat trong (check vào client muốn chat) Danh sách các
client. Nếu không chọn thì nội dung chat chỉ gửi nên server.

Đại học S- phạm Kỹ thuật H-ng Yên Biờn son: Nguyn Minh Quý. Ver 1.0
TRƯờNG ĐạI HọC SƯ PHạM Kỹ THUậT HƯNG YÊN
Khoa công nghệ thông tin
hệ thống bài thực hành môn : ms ASP.net
Lớp: TK3H
Ging viờn: Nguyn Minh Quý
Bài thực hành số 1
Sử dụng Web Control
Yêu cầu:
Xây dựng một trang Web thực hiện 4 phép tính +, -, *, /

Các b-ớc tiến hành:
B1. Chạy Microsoft Visual Studio .net
B2. Chọn kiểu dự án là ASP.NET Application
B3. Kéo và đặt lần l-ợt các điều khiển sau đây vào form:
+ Textbox (Để l-u số hạng thứ nhất)

End Select
End Subtruy cập cơ sở dữ liệu trong asp.net
Trong các bài thực hành tiếp theo, ta sẽ lấy cơ sở dữ liệu có tên là Email.mdb để minh hoạ. Tệp
Email.mdb có 1 bảng tên là tblNguoiDung, bảng này có các tr-ờng là MaNguoiDung, HoTen,
DiaChiEMail, MatKhau. Tệp này qui -ớc là l-u trong cùng với th- mục của ứng dụng WEB hiện hành. SV
tự tạo CSDL này và nhập vào bảng khoảng 20 bản ghi mẫu!
Đại học S- phạm Kỹ thuật H-ng Yên Biờn son: Nguyn Minh Quý. Ver 1.0
Bài thực hành số 2.1

Hiển thị dữ liệu trong CSDL ra ListBox (Version 1)
Yêu cầu: Nạp họ tên ng-ời dùng trong bảng tblNguoiDung vào ListBox khi ng-ời dùng click vào nút "DS
ng-ời dùng". (Đây là cách lấy và nạp dữ liệu truyền thống)

Các b-ớc tiến hành:
B1. Kéo một ListBox và một button vào form, đặt tên lần l-ợt là: lstHoTen, cmdHienThi.
B2. Viết lệnh:

'/// Phần khai báo thuộc form
Dim Cn As New OleDb.OleDbConnection
Dim Cmd As OleDb.OleDbCommand
Dim Rs As OleDb.OleDbDataReader

'/// Lệnh khởi tạo khi trang bắt đầu đ-ợc nạp: Mở kết nối đến CSDL
Private Sub Page_Load(ByVal sender As System.Object,ByVal e As System.EventArgs)
Cn.ConnectionString="Provider=Microsoft.JET.OLEDB.4.0; Data Source=" & MapPath("EMail.mdb")
Cn.Open()
End Sub

ng-ời dùng". (Đây là cách lấy và nạp dữ liệu cải tiến, tận dụng khả năng gắn kết dữ liệu của các đối t-ợng
Web control)

Các b-ớc tiến hành:
B1. Kéo một ListBox và một button vào form, đặt tên lần l-ợt là: cboDS, cmdHienThi.
B2. Viết lệnh:

'/// Phần khai báo thuộc form
Dim Cn As New OleDb.OleDbConnection
Dim Cmd As OleDb.OleDbCommand
Dim Rs As OleDb.OleDbDataReader

Đại học S- phạm Kỹ thuật H-ng Yên Biờn son: Nguyn Minh Quý. Ver 1.0
'/// Lệnh khởi tạo khi trang bắt đầu đ-ợc nạp: Mở kết nối đến CSDL
Private Sub Page_Load(ByVal sender As System.Object,ByVal e As System.EventArgs)
Cn.ConnectionString="Provider=Microsoft.JET.OLEDB.4.0; Data Source=" & MapPath("EMail.mdb")
Cn.Open()
End Sub

'/// Thực hiện lấy dữ liệu trong bảng và chèn vào Listbox
Private Sub cmdHienThi_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
lstHoTen.Items.Clear()

Cmd = New OleDb.OleDbCommand("Select * from tblNguoiDung", Cn)

datAdapter.SelectCommand = Cmd '// Lấy kết quả vừa thực hiện và l-u vào data Adapter
datAdapter.Fill(datSet, "NguoiDung") '// Đặt tên cho tập kết quả đó là NguoiDung (tuỳ ý)

lstHoTen.DataSource = datSet.Tables("NguoiDung")
lstHoTen.DataTextField = "HoTen" '/// Sẽ gắn tr-ờng HoTen với Listbox để hiển thị


'/// Thủ tục hiển thị danh sách ng-ời dùng ra điều khiển Data Grid
Public Sub HienThiDSND()
Cmd = New OleDb.OleDbCommand("Select * from tblNguoiDUng", Cn)
datSet.Clear()
datAdapter.SelectCommand = Cmd '/// Chuyển kết quả từ cmd vào data Adapter
datAdapter.Fill(datSet, "NguoiDung") '/// Điền kết quả từ Adapter vào data Set, đặt tên là NguoiDung

dgrNguoiDung.DataSource = datSet.Tables("NguoiDung") '/// Nguồn dữ liệu là NguoIDung
dgrNguoiDung.DataBind() '/// Thực hiện gắn kết thực sự
dgrNguoiDung.Dispose()
End Sub

Private Sub Page_Unload(ByVal sender As Object, ByVal e As System.EventArgs)
datAdapter.Dispose()
Cn.Close()
End Sub
Đại học S- phạm Kỹ thuật H-ng Yên Biờn son: Nguyn Minh Quý. Ver 1.0
Bài thực hành số 4
Hiển thị dữ liệu trong bảng ra Data Grid và thực hiện phân trang
Yêu cầu: Hiển thị dữ liệu chứa trong bảng tblNguoiDung và thực hiện phân trang, mỗi trang hiển thị 5 bản ghi.

Các b-ớc tiến hành:
B1: Kéo Data grid vào form và đặt tên là dgrNguoiDung
B2: Thiết lập các thuộc tính cho DataGrid.:
+ Allow Paging : True
+ PageSize : 5
+ Paging mode: Number
B3: Viết lệnh
Public Cn As New OleDb.OleDbConnection

End Sub

'// Thủ tục này sẽ đ-ợc kích hoạt mỗi khi ng-ời dùng click vào các số trang t-ơng ứng.
'/// Tham số e.NewPageIndex sẽ cho biết là ng-ời dùng click vào trang nào.
Private Sub dgrNguoiDung_PageIndexChanged(ByVal source As Object, ByVal e As
System.Web.UI.WebControls.DataGridPageChangedEventArgs) Handles dgrNguoiDung.PageIndexChanged
dgrNguoiDung.CurrentPageIndex = e.NewPageIndex '/// Đặt trang cần xem là trang ng-ời dùng vừa chọn
HienThiDSND() '/// Gọi thủ tục này để nạp lại dữ liệu vào Data Grid
End Sub

Bài thực hành số 5
Thực hiện các thao tác cập nhật và xoá bản ghi

Yêu cầu: Sử dụng Data Grid để hiển thị bảng tblNguoiDung, trong đó thêm cột Update và delete. Mỗi khi ng-ời dùng
click vào cột Update, delete của bản ghi (dòng) hiện tại thì thực hiện Update và Delete bản ghi t-ơng ứng.

Các B-ớc tiến hành:
B1+B2: Giống nh- bài thực hành số 4
B3: Tạo thêm cột cho Data Grid:
+ Click chọn Data Grid
+ Chọn mục Properties Buiding trong phần Properties (ở d-ới cùng)
+ Thực hiện thêm cột Edit và cột Delete khi hộp thoại hiện ra.
Đại học S- phạm Kỹ thuật H-ng Yên Biờn son: Nguyn Minh Quý. Ver 1.0
B4: Viết code

Public Cn As New OleDb.OleDbConnection
Public Cmd As New OleDb.OleDbCommand
Public datRead As OleDb.OleDbDataAdapter

Public datAdapter As New OleDb.OleDbDataAdapter


'/// Thủ tục sự kiện này xảy ra khi ng-ời dùng click vào cột Edit của Data Grid > Ta sẽ viết lệnh thực hiện edit tại đây
Private Sub dgrNguoiDung_EditCommand( tham số tự sinh khi bạn chọn sự kiện EditCommand )
dgrNguoiDung.EditItemIndex = e.Item.ItemIndex '/// Chuyển dòng vừa chọn sang chế độ sửa (Hiển thị textbox)
dgrNguoiDung.SelectedIndex = e.Item.ItemIndex '/// Cho dòng này sáng lên (highlight) . có thể bỏ qua dòng này.
HienThiDSND()
End Sub

'/// Thủ tục sự kiện này đ-ợc gọi khi ng-ời dùng click vào cột Delete
Private Sub dgrNguoiDung_DeleteCommand( tự sinh ra )

Dim MaNguoiDung As String = dgrNguoiDung.DataKeys(e.Item.ItemIndex).ToString '/// Lấy mã của bản ghi vừa chọn
Cmd = New OleDb.OleDbCommand("Delete from tblNguoiDung where Manguoidung='" & MaNguoiDung & "'", Cn)
Cmd.ExecuteNonQuery() '// Thực thi câu lệnh xoá
Cmd.Dispose()

HienThiDSND() '/// Hiển thị lại dữ liệu trong bảng ra Data Grid
End Sub

'/// Sự kiện này sinh ra khi ng-ời dùng click vào cột Update
'/// l-u ý: ASP.NET không tự động cập nhật mà chỉ báo hiệu rằng "Ng-ời dùng vừa nhấn nút Update"
'/// Do vậy ta phải viết các lệnh cập nhật tại đây

Private Sub dgrNguoiDung_UpdateCommand( ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs )
Dim txt As TextBox
Dim MaNguoiDung, HoTen, DiaChiEMail, strSQL As String

MaNguoiDung = dgrNguoiDung.DataKeys(e.Item.ItemIndex).ToString '/// Lấy mã ng-ời dùng cần cập nhật

txt = CType(e.Item.Cells(2).Controls(0), TextBox) '/// Lấy nội dung ng-ời dùng vừa soạn mới


'// thủ tục sự kiện này đ-ợc gọi khi ng-ời dùng click vào dòng tiêu đề với ngụ ý "Sắp xếp"
'/// tham số e.SortExpression sẽ trả về tên của cột mà ng-ời dùng vừa click.
'/// L-u ý là phải đặt thuộc tính Sortexpress cho Data Grid khi thiết lập thêm cột trong Properties Builder
Private Sub dgrNguoiDung_SortCommand(ByVal source As Object, ByVal e As )
SapXepDSND(e.SortExpression) '/// Gọi thủ tục sắp xếp để thực hiện sắp xếp cột t-ơng ứng
End Sub

'/// thủ tục sắp xếp thực hiện sắp xếp theo một tr-ờng nào đó theo chiều tăng hoặc giảm, mặc định là tăng (ASC)
'/// Thực chất công việc của ta là Select lại dữ liệu nh-ng thêm mệnh đề sắp xếp trong câu lệnh SQL
'// Sau đó nạp vào Data Grid.
Public Sub SapXepDSND(ByVal TenTruong As String, Optional ByVal Chieu As String = "ASC")
Cmd = New OleDb.OleDbCommand("Select * from tblNguoiDUng order by " & TenTruong & " " & Chieu, Cn)
datSet.Clear()

datAdapter.SelectCommand = Cmd
datAdapter.Fill(datSet, "NguoiDung")

dgrNguoiDung.DataSource = datSet.Tables("NguoiDung")
dgrNguoiDung.DataBind()
dgrNguoiDung.Dispose()
End Sub Bài tập làm thêm:

Bài 1: Xây dựng trang Login để kiểm tra thông tin đăng nhập của ng-ời dùng.

Bài 2: Xây dựng trang cho phép thêm mới bản ghi vào bảng. Gợi ý: Xây dựng ttang NhapDuLieu.htm để ng-ời dùng nhập dữ liệu và submit cho
trang Them.aspx. Trang Them.aspx sẽ lấy thông tin nàybằng Request.form và insert vào bảng (sử dụng ph-ơng thức: executeNonQuery của đối

Tạo 3 vùng


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status