1.3. Code cho nút đăng nhập: public void ShowMessage(string mTextMsg, string mControlFocus) { System.Text.StringBuilder sb = new System.Text.StringBuilder(); sb.Append(); if (mTextMsg = ) sb.Append( alert( + mTextMsg + );); if (mControlFocus = ) sb.Append(document.forms0.item( + mControlFocus + ).focus();); sb.Append(); if (IsStartupScriptRegistered(setFocus)) RegisterStartupScript(setFocus, sb.ToString()); } 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 { ShowMessage(Đăng nhập không thành công, “Thông báo”); } con.close(); } 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
Trang 11 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.csUsing System.Data;
Using System.Data.SqlClient;
1.3 Code cho nút đăng nhập:
public void ShowMessage(string mTextMsg, string mControlFocus)
{
System.Text.StringBuilder sb = new
System.Text.StringBuilder("");
sb.Append("<script language=\"JavaScript\">");
if (mTextMsg != "") sb.Append(" alert('" + mTextMsg +
String strCon = @"Data Source= NGOCHTHVTC-PC; Initial Catalog=
CSLT3_CanBo; User ID=ngochthvtc; Password=ngochvtc";
Trang 2SqlConnection con = newSqlConnection();
con.ConnectionString = strCon;
con.Open();
SqlDataAdapter adt = newSqlDataAdapter();
SqlCommand cmd = newSqlCommand();
DataTable dt = newDataTable();
string strKtra = "SELECT * FROM Nguoi_Dung WHERE Ten_DN = N'" + txtTenDangNhap.Text.Trim() + "' AND Mat_Khau = '"
Trang 32 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" /> <Columns>
<asp:BoundField DataField="Ma_SV" HeaderText="Mã SV"
Trang 4<asp:BoundField DataField="Ma_SV" HeaderText="Mã SV"
đư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" />
Trang 5connStr = @"Data Source=NGOCHTHVTC-PC;Initial
Catalog=QLSV_K48;User ID=PQ3; Password = 123";
con = newSqlConnection(connStr);
con.Open();
//Câu lệnh SQL
strSQL = "Select Ma_SV, Ten_SV, Gioi_Tinh, Dtb From Sinh_Vien";
//Lấy Dữ liệu
cmd = newSqlCommand(strSQL, con);
adt = newSqlDataAdapter();
2.2.3 Code cho thao tác xóa: (sự kiện RowDeleting)
protectedvoid GridView1_RowDeleting(object sender,
connStr = @"Data Source=NGOCHTHVTC-PC;Initial
Catalog=QLSV_K48;User ID=PQ3; Password = 123";
connection = newSqlConnection(connStr);
Trang 62.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,
connStr = @"Data Source=NGOCHTHVTC-PC;Initial
Catalog=QLSV_K48;User ID=PQ3; Password = 123";
connection = newSqlConnection(connStr);
Trang 83 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:Label ID="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:Label ID="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"
onclick="btnThem_Click"/>
UPLOAD
Trang 93.2 Viết sự kiện cho form ThemSV.aspx.cs
3.2.1 Thêm 2 hàm using:
Using System.Data;
Using System.Data.SqlClient;
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 = newSqlCommand(strSQL, con);
adt = newSqlDataAdapter();
3.2.3 Code cho sự kiện UPLOAD (load đường dẫn hình ảnh)
protectedvoid btnUpLoad_Click(object sender, EventArgs e)
{
HttpPostedFile file = FileUpload1.PostedFile;
Trang 10if (FileUpload1.HasFile == false || file.ContentLength > 500000)
3.2.4 Nếu bắt trùng mã ở text_changed của mã sinh viên:
protectedvoid txtMa_SV_TextChanged(object sender, EventArgs e)
SqlDataAdapter adt = newSqlDataAdapter();
SqlCommand cmd = newSqlCommand();
DataTable dt = newDataTable();
string strKtra = "SELECT * FROM Sinh_Vien WHERE Ma_SV = N'" +
Trang 11{
txtTen_SV Focus();
}
}
3.2.5 Code cho sự kiện Click của nút thêm:
protectedvoid btnThem_Click(object sender, EventArgs e)
SqlDataAdapter adt = newSqlDataAdapter();
SqlCommand cmd = newSqlCommand();
DataTable dt = newDataTable();
string strKtra = "SELECT * FROM Sinh_Vien WHERE Ma_SV = N'" +
Trang 134 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 14- 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’
6 Code cho sự kiện Click của nút đăng kí:
protectedvoid btnDangKi_Click(object sender, EventArgs e)
SqlDataAdapter adt = newSqlDataAdapter();
SqlCommand cmd = newSqlCommand();
DataTable dt = newDataTable();
string strKtra = "SELECT * FROM nguoidung WHERE tendangnhap = N'" + txttendangnhap.Text.Trim() + " ' ”;
cmd.CommandText = strKtra;
cmd.Connection = con;
adt.SelectCommand = cmd;
adt.Fill(dt);
Trang 15Câ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
Trang 16- 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 17Bướ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 18Câu 2: Sử dụng HTML và Javascript để tạo 1 chương trình máy tính:
<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" >
Trang 19</body>
</html>
Câu 3: Btập ASP.NET
** 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
(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"
Trang 20Mã 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"
ControlToValidate="txt_tensach"
ErrorMessage="Không được để rỗng!">
</asp:RequiredFieldValidator>
<br> Mô tả <asp:TextBox ID="txt_mota" runat="server"></asp:TextBox>
<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"
ControlToValidate="txt_dgia"
MinimumValue="1"
MaximumValue="999999999"
Trang 21<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 22SqlConnection 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();
//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)
DataSet ds = new DataSet();
Trang 23string ADD = "insert into tblSach(masach,tensach,dongia,ngaycapnhat) values('" + txt_masach.Text + "',N'" + txt_tensach + "','" + txt_dgia.Text + "'," + txt_ngay.Text + ")"; SqlCommand cmd = new SqlCommand();
Trang 24<form id="form1" runat="server">
<asp:BoundField DataField="MaNCC" HeaderText="Mã NCC" /> <asp:BoundField DataField="Hinhanh" HeaderText="Hình ảnh" />
<asp:CommandField HeaderText="Chức Năng"
Trang 26//Cells[vitri]: Đây là vị trí của cột đánh số thứ tự 0 – n
//Controls[vitri]: Xét trong Cells xử lý control thứ bao nhiêu cũng đánh số từ 0 – n, ở đây trong mỗi field đều có 1 control nên đánh số là 0
String sTenvt =
((TextBox)grvDS.Rows[e.RowIndex].Cells[1].Controls[0]).Text;
String sDvt =
((TextBox)grvDS.Rows[e.RowIndex].Cells[2].Controls[0]).Text;
Trang 27cmd = new SqlCommand(strSQL, connection);
Trang 28Thêm mới 1 vật tư
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent"
<asp:TextBox ID="txtMavt"
runat="server"></asp:TextBox>
</td>
</tr>
<tr>
<td>Tên VT:</td>
<td><asp:TextBox ID="txtTenvt"
runat="server"></asp:TextBox> </td>
</tr>
<tr>
<td> Đơn vị tính:</td>
Trang 29sb.Append("<script language=\"JavaScript\">");
if (mTextMsg != "") sb.Append(" alert('" + mTextMsg +
"');");
Trang 30myCommand = new SqlCommand(strSQL, myConnection);
myAdapter = new SqlDataAdapter();
Trang 31SqlDataAdapter adt = new SqlDataAdapter();
SqlCommand cmd = new SqlCommand();
DataTable dt = new DataTable();
string strKtra = "SELECT * From dmVT Where Mavt = '" + txtMavt.Text.Trim() + "'";