Mô tả chi tiết cách làm và code các phần của một trang web hoàn chỉnh bằng ASP.NET:Code Form đăng nhập:1.1. Giao diện form 1.2. Thêm 2 using cho phần code trong đăng nhập: dangnhap.aspx.cs Using System.Data; Using System.Data.SqlClient; 1.3. Code cho nút đăng nhập: protected void btnLoGin_Click(object sender, EventArgs e) { String strCon = Data Source= NGOCHTHVTCPC; Initial Catalog= CSLT3_CanBo; User ID=ngochthvtc; Password=ngochvtc; SqlConnection con = new SqlConnection(); con.ConnectionString = strCon; con.Open(); SqlDataAdapter adt = new SqlDataAdapter(); SqlCommand cmd = new SqlCommand(); DataTable dt = new DataTable(); string strKtra = SELECT FROM Nguoi_Dung WHERE Ten_DN = N + txtTenDangNhap.Text.Trim() + AND Mat_Khau = + txtMatKhau.Text.Trim() + ; cmd.CommandText = strKtra; cmd.Connection = con; adt.SelectCommand = cmd; adt.Fill(dt); if (dt.Rows.Count > 0) { ShowMessage(Đăng nhập thành công,”Thông báo”); Response.Redirect(DSSV.aspx); } else 2 { ShowMessage(Đăng nhập không thành công, “Thông báo”); } con.close(); }
Trang 11
1 Phần đăng nhập
1.1 Giao diện form
1.2 Thêm 2 using cho phần code trong đăng nhập: dangnhap.aspx.cs
Using System.Data;
Using System.Data.SqlClient;
1.3 Code cho nút đăng nhập:
protected void btnLoGin_Click(object sender, EventArgs e)
SqlDataAdapter adt = new SqlDataAdapter();
SqlCommand cmd = new SqlCommand();
DataTable dt = new DataTable();
string strKtra = "SELECT * FROM Nguoi_Dung WHERE Ten_DN = N'" +
txtTenDangNhap.Text.Trim() + "' AND Mat_Khau = '"
Trang 33
2 Phần hiển thị lên gridview, sửa xóa trực tiếp trên gridview:
2.1 Tạo mới form DSSV.aspx
2.1.1 Code cho GridviewSV trang DSSV.aspx
<asp:GridView ID=" GridviewSV " runat="server" AutoGenerateColumns="False" />
Trang 4đưa các cột tiếp theo và đây nhé ………
< asp : CommandField CancelText ="Hủy" DeleteText ="Xóa" EditText ="Sửa"
InsertText ="Thêm" NewText ="Thêm" ShowDeleteButton ="True"
ShowEditButton ="True" UpdateText ="Cập nhật" />
cmd = new SqlCommand(strSQL, con);
adt = new SqlDataAdapter();
Trang 55
} protectedvoid Page_Load(object sender, EventArgs e) {
DSSV();
}
2.2.3 Code cho thao tác xóa: (sự kiện RowDeleting)
protectedvoid GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e) {
string ma_SV = GridView1.DataKeys[e.RowIndex].Value.ToString();
2.2.4 Code cho thao tác sửa:
a Sự kiện RowEditing cho phép sửa:
protectedvoid GridView1_RowEditing(object sender, GridViewEditEventArgs e) {
GridView1.EditIndex = e.NewEditIndex;
DSSV();
}
b Sự kiện RowCancelingEdit để hủy bỏ việc sửa
protectedvoid GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{ GridView1.EditIndex = -1;
Trang 66
string ten_SV = ((TextBox) GridView1.Rows[e.RowIndex].Cells[1].Controls[0]).Text; string gioi_Tinh = ((TextBox)GridView1.Rows[e.RowIndex].Cells[2].Controls[0]).Text; decimal dtb =
Convert.ToDecimal(((TextBox)GridView1.Rows[e.RowIndex].Cells[3].Controls[0]).Text); String connStr;
Trang 77
3 Phần thêm mới có kiểm tra trùng mã
3.1 Thêm mới form ThemSV.aspx
3.1.1 Giao diện form
3.1.2 Code cho giao diện cho phần nhập ThemSV.aspx
<asp:LabelID="Label3"runat="server"Text="Mã Sinh Viên"</asp:Label>
<asp:TextBox ID="txtMa_SV"runat="server"</asp:TextBox>
<asp:LabelID="Label4"runat="server" Text="Tên Sinh Viên"></asp:Label>
<asp:TextBox ID="txtTen_SV"runat="server”></asp:TextBox>
<asp:LabelID="Label5"runat="server"Text="Mã Lớp"></asp:Label>
<asp:DropDownList ID="cboMa_Lop"runat="server"></asp:DropDownList
<asp:LabelID="Label1"runat="server" Text="Hình Ảnh"></asp:Label>
<asp:FileUploadID="FileUpload1"runat="server"/>
<asp:ButtonID="btnUpLoad"runat="server"onclick="btnUpLoad_Click"/>
<asp:TextBoxID="txtHinh_Anh"runat="server"></asp:TextBox>
<asp:ButtonID="btnThem" runat="server"Text="Thêm Sinh Viên"
Trang 88
3.2.2 Code cho sự kiện page_Load (load dữ liệu cho dropdowlist: cbomalop)
protectedvoid Page_Load(object sender, EventArgs e)
cmd = new SqlCommand(strSQL, con);
adt = new SqlDataAdapter();
3.2.3 Code cho sự kiện UPLOAD (load đường dẫn hình ảnh)
protected void btnUpLoad_Click(object sender, EventArgs e)
{
HttpPostedFile file = FileUpload1.PostedFile;
if (FileUpload1.HasFile == false || file.ContentLength > 500000)
Trang 93.2.4 Nếu bắt trùng mã ở text_changed của mã sinh viên:
protected void txtMa_SV_TextChanged(object sender, EventArgs e)
SqlDataAdapter adt = new SqlDataAdapter();
SqlCommand cmd = new SqlCommand();
DataTable dt = new DataTable();
string strKtra = "SELECT * FROM Sinh_Vien WHERE Ma_SV = N'" +
3.2.5 Code cho sự kiện Click của nút thêm:
protected void btnThem_Click(object sender, EventArgs e)
Trang 10SqlDataAdapter adt = new SqlDataAdapter();
SqlCommand cmd = new SqlCommand();
DataTable dt = new DataTable();
string strKtra = "SELECT * FROM Sinh_Vien WHERE Ma_SV = N'" +
Trang 1111 }
Trang 1212
4 Phần kiểm tra có sử dụng các điều khiển
4.1 Kiểm tra txtMasv không được để trắng
<asp:TextBox ID=" txtMasv" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator runat="server" id="reqMasv" controltovalidate="txtMasv"
errormessage="khong duoc de trong!" />
4.2 Kiểm tra txtNgay có kiểu date và thuộc khoảng cho trước
<asp:TextBox ID=" txtNgay " runat="server"></asp:TextBox>
<asp:RangeValidator runat="server" id="rngNgay" controltovalidate="txtNgay"
type="Date" minimumvalue="12-31-1960" maximumvalue="01-01-1995"
errormessage="Nhap ngay khong dung!" />
4.3 Kiểm tra txtDtb có kiểu Số thực và thuộc khoảng cho trước
<asp:TextBox ID=" txtDtb " runat="server"></asp:TextBox>
<asp:RangeValidator runat="server" id="rngDate" controltovalidate="txtDtb" type="Double"
minimumvalue="0" maximumvalue="10" errormessage="Diem nhap vao khong nam trong gioi han cho phep!" />
4.4 Kiểm tra txtten không được có kí tự đặc biệt: (4.4 và 4.5 trong trường hợp tạo form đăng kí người dùng)
<asp:TextBox ID="txtten" runat="server"></asp:TextBox>
<asp:RegularExpressionValidator ID="RegularExpressionValidator1" ControlToValidate="txtten" ValidationExpression="\w{1,255}" runat="server" ErrorMessage="khong duoc nhap ki tu dac biet"></asp:RegularExpressionValidator>
4.5 Kiểm tra trùng mật khẩu
<asp:TextBox ID="txtma2" runat="server" TextMode="Password"></asp:TextBox>
<asp:CompareValidator ID="CompareValidator1" Display="Dynamic"
ControlToValidate="txtma2" ControlToCompare="txtma" runat="server" ErrorMessage="mat khau khong khop"></asp:CompareValidator>
- Với txtma là text nhập mật khẩu, txtma2 là text nhắc lại mật khẩu
Trang 13- Lấy ra các sinh viên khoa tin học
SELECT Ma_SV, Ten_SV …
FROM Sinh_Vien WHERE SUBSTRING(LTRIM(6,2) = ‘41’
Trang 1414
6 Code cho sự kiện Click của nút đăng kí:
protected void btnDangKi_Click(object sender, EventArgs e)
SqlDataAdapter adt = new SqlDataAdapter();
SqlCommand cmd = new SqlCommand();
DataTable dt = new DataTable();
string strKtra = "SELECT * FROM nguoidung WHERE tendangnhap = N'" +
Trang 16<title> Bài 2 </title>
<script language= "javascript">
<input type="text" id="dtb" >
<button type="button" onclick ="xeploai()">Xếp loa ̣i</button>
<input type="text" id="kq" >
</body>
</html>
Trang 17{ document.getElementById("kq").value = x - y; } function Nhan()
{ document.getElementById("kq").value = x * y; } function Chia()
{ document.getElementById("kq").value = x / y; } function Mu()
{ document.getElementById("kq").value =math.pow( x,y); }
</script>
</head>
<body>
<input type="text" id="so1" >
<button type="button" onclick="Cong()"> Cộng </button>
<button type="button" onclick="Tru()"> Trừ </button>
<button type="button" onclick="Nhan()"> Nhân </button>
<button type="button" onclick="Chia()"> Chia </button>
<button type="button" onclick="Mu()"> Mũ </button>
<input type="text" id="so2">
Function PhucHoi()
{
// đoạn code lệnh }
</head>
<body>
ĐĂNG NHẬP DIỄN ĐÀN
Trang 1818
Tên đăng nhập: <input type="text" id="tendangnhap" >
Mật khẩu: <input type="text" id="matkhau" >
<button type="button" onclick="DangNhap()"> Đăng Nhập </button>
<button type="button" onclick="PhucHoi()"> Phục Hồi</button>
</body>
</html>
Trang 1919
Câu 1: Trình bày về ASP.NET? Quá trình xử lý trang ASP.NET?
ASP.NET (Active Server Pages) là kỹ thuật lập trình và phát triển ứng dụng web ở phía Server
(Server-side) dựa trên nền tảng của Microsoft Net Framework ASP.NET là một khung nền phát triển để xây dựng các trang web với HTML, CSS, JavaScript và máy chủ mã hóa Là sự kết hợp của 2 công nghệ phát triển web: web form và web service, là công nghệ để tạo ra web động
- Page: Một trang ASP là một trang web mà người dùng điều hướng và được hiển thị trên các trình duyệt
- Server: Một trang ASP chứa đoạn mã hóa mà các máy chủ Web thực hiện
- Active: Một trang ASP cung cấp nội dung động mà được cập nhật mỗi lần trang được truy cập
ASP.NET hỗ trợ ba mô hình phát triển khác nhau: Web Pages, MVC, Web Forms
ASP.Net cho phép viết = ngôn ngữ Visual Basic.Net, J#, C#,…
Trang ASP.Net được biên dịch trước -> Server có thể thi hành nhanh chóng và hiệu quả
ASP.Net hỗ trợ mạnh mẽ bộ thư viện phong phú và đa dạng của Net Framework
ASPX và ASP có thể cùng hoạt động trong 1 ứng dụng
ASP.Net sử dụng phong cách lập trình mới: Code behide Tách code và giao diện riêng biệt
Quá trình xử lý trang ASP.NET:
Về cơ bản một trang ASP.NET giống như một trang HTML
Một trang ASP.NET có phần mở rộng aspx Nếu một trình duyệt yêu cầu một trang ASP.NET, máy chủ xử lý bất kỳ mã thực thi nào có trong trang trước khi kết quả được gửi trả lại cho trình duyệt Cụ thể: Một trang ASP.NET lưu trữ trên máy chủ Web và có chứa mã viết bằng một trong các ngôn ngữ NET Khi người dùng yêu cầu các trang ASP.NET, máy chủ web tải trang và thực hiện các chương trình liên kết với trang Các mã liên kết với trang có thể thực hiện rất nhiều thao tác, chẳng hạn như truy cập vào một cơ sở dữ liệu trên máy chủ, gọi đến dịch vụ Web, hoặc thực hiện các phép tính Cuối cùng, đoạn mã hiển thị đầu ra là HTML cho người sử dụng trong trình duyệt
Trang 2020
Bước 1: Người lập trình phải tạo các trang ASPX (giả sử tên trang đó là abc.aspx) và đặt nó vào trong thư mục web của web server (có tên là www.server.com) Trên thanh địa chỉ của trình duyệt, người dùng nhập trang www.server.com/abc.aspx
Bước 2: Trình duyệt gửi yêu cầu tới server với nội dung: ”Làm ơn gửi cho tôi trang abc.aspx thì tốt !” Bước 3: Web server sẽ biên dịch code của trang aspx (bao gồm cả các mã code vb.net/ c# - gọi là code behind hay code file) thành class
Bước 4: Lớp sau khi được biên dịch sẽ được server thực thi
Bước 5: Server trả kết quả thực thi về cho trình duyệt (trang HTML)
Trang 21{ document.getElementById("kq").value = x - y; } function Nhan()
{ document.getElementById("kq").value = x * y; } function Chia()
{ document.getElementById("kq").value = x / y; } function Mu()
{ document.getElementById("kq").value =math.pow( x,y); }
</script>
</head>
<body>
<input type="text" id="so1" >
<button type="button" onclick="Cong()"> Cộng </button>
<button type="button" onclick="Tru()"> Trừ </button>
<button type="button" onclick="Nhan()"> Nhân </button>
<button type="button" onclick="Chia()"> Chia </button>
<button type="button" onclick="Mu()"> Mũ </button>
<input type="text" id="so2">
=
<input type="text" id="kq" >
</body>
</html>
Trang 2222
Câu 3: Btập ASP.NET
** Trình bày các bước truy xuất trong mô hình ngắt kết nối:
1 Định nghĩa xâu kết nối connection string
string xauketnoi =”server=HVTC\\EXPRESS; database=QLSV;user=sa; password=123456”;
2 Định nghĩa kết nối (connection)
SqlConnection con = new SqlConnection(xauketnoi);
3 Định nghĩa command
SqlCommand cmd = new SqlCommand();
4 Định nghĩa data adapter
SqlDataAdapter adp = new SqlDataAdapter(“select * from sinhvien order by masv”,con);
5 Tạo một đối tượng DataSet mới
DataSet ds = new DataSet();
6 SELECT -> điền dữ liệu vào dataset với các kết quả từ câu lệnh truy vấn qua data adapter
Adp.Fill(ds,”sinhvien”);
7 Đọc các bản ghi từ DataTables trong sử dụng DataRow và DataColumn
8 UPDATE, INSERT hoặc DELETE -> cập nhập cơ sở dữ liệu qua data adapter
** Vẽ form:
** Source kèm với các ràng buộc dữ liệu cho các thuộc tính cần thiết
Trang 2323
(chỉ cần thiết lập ràng buộc Require FieldValidator và RangeValidator cho các thuộc tính mà có trong grid mà đề bài cho, ngoài ra thì thiết lập ràng buộc RangeValidator cho các thuộc tính cần thiết khác như số lượng, đơn giá, tiền, )
Ngày <asp:TextBox ID="txt_ngay" runat="server"> </asp:TextBox>
<asp:RangeValidator ID="RV1" runat="server"
Mã sách <asp:TextBox ID="txt_masach" runat="server" Autopostback="true"> </asp:TextBox>
<asp:RequiredFieldValidator ID="RFV2" runat="server"
ControlToValidate="txt_masach"
ErrorMessage="Không được để rỗng!">
</asp:RequiredFieldValidator>
Mã NXB <asp:TextBox ID="txt_manxb" runat="server"> </asp:TextBox>
<br> Tên sách <asp:TextBox ID="txt_tensach" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="RFV1" runat="server"
Trang 2424
<br> Đơn vị tính <asp:TextBox ID="txt_dvt" runat="server"></asp:TextBox>
<br> Đơn giá <asp:TextBox ID="txt_dgia" runat="server"></asp:TextBox>
<asp:RangeValidator ID="RV2" runat="server"
<br> Số lượng <asp:TextBox ID="txt_slg" runat="server"></asp:TextBox>
<asp:RangeValidator ID="RV3" runat="server"
// Hàm load Grig view
private void load_grvsach()
Trang 2525
{ SqlConnection con = new SqlConnection ("server=HVTC_server\\SQLEXPRESS; database=QLBH "); SqlDataAdapter adp = new SqlDataAdapter("select masach,tensach,dongia,ngaycapnhat from tblSach order by masach", con);
DataSet ds = new DataSet();
load_grvsach();
Page.DataBind();
} }
//Code btn_them kèm theo việc kiểm tra mã sách có trùng không
protected void btn_them_Click(object sender, EventArgs e)
ShowMessage(" mã sách đã tồn tại", "thông báo");
txtmasach.Text = "";
txtmasach.Focus();