Tải bản đầy đủ (.docx) (32 trang)

Đề cương thực hành ASP.Net Đăng nhập

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (266.35 KB, 32 trang )

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:
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 +
"');");
if (mControlFocus != "")
sb.Append("document.forms[0].item('" + mControlFocus + "').focus();");
sb.Append("</script>");
if (!IsStartupScriptRegistered("setFocus"))
RegisterStartupScript("setFocus", sb.ToString());
}

protected void btnLoGin_Click(object sender, EventArgs e)
{
String strCon = @"Data Source= NGOCHTHVTC-PC; 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
<asp:GridView ID=" GridviewSV " runat="server" AutoGenerateColumns="False" />
<Columns>

SortExpression="Ma_SV" />
SortExpression="Ten_SV" />
SortExpression="Gioi_Tinh" />
SortExpression="Ngay_Sinh" ReadOnly="True" />
SortExpression="Dtb" />
.............. đưa các cột tiếp theo và đây nhé ………..
</Columns>
</asp:GridView>

-

Hoặc: Chú ý: nếu đề bài yêu cầu có thêm nút sửa và xóa trực tiếp
thì làm như sau:

onrowcancelingedit="GridView1_RowCancelingEdit"
onrowdeleting="GridView1_RowDeleting"
onrowediting="GridView1_RowEditing"
onrowupdating="GridView1_RowUpdating">

<Columns>


SortExpression="Ma_SV"
ReadOnly="True" />

SortExpression="Ten_SV" />
SortExpression="Gioi_Tinh" />
SortExpression="Ngay_Sinh" ReadOnly="True" />
SortExpression="Dtb" />
.............. đưa các cột tiếp theo và đây nhé ………..
InsertText="Thêm" NewText="Thêm" ShowDeleteButton="True"
ShowEditButton="True"

UpdateText="Cập nhật" />

</Columns>
</asp:GridView>

2.2. Viết sự kiện cho form DSSV.aspx.cs
2.2.1. Thêm 2 hàm using:
Using System.Data;
Using System.Data.SqlClient;

2.2.2. Code cho sự kiện page_Load:
private void DSSV()
{
String connStr;
String strSQL;
SqlConnection con;
SqlCommand cmd;

SqlDataAdapter adt;
DataTable dt = new DataTable();
//Mở kết nối


connStr = @"Data Source=NGOCHTHVTC-PC;Initial
Catalog=QLSV_K48;User ID=PQ3; Password = 123";
con = new SqlConnection(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 = new SqlCommand(strSQL, con);
adt = new SqlDataAdapter();
adt.SelectCommand = cmd;
adt.Fill(dt);
GridView1.DataSource = dt;
GridView1.DataBind();
con.Close();
}
protected void Page_Load(object sender, EventArgs e)
{
DSSV();
}

2.2.3. Code cho thao tác xóa: (sự kiện RowDeleting)
protected void GridView1_RowDeleting(object sender,
GridViewDeleteEventArgs e)
{
string ma_SV = GridView1.DataKeys[e.RowIndex].Value.ToString();

String connStr;
String strSQL;
SqlConnection con;
SqlCommand cmd;
connStr = @"Data Source=NGOCHTHVTC-PC;Initial
Catalog=QLSV_K48;User ID=PQ3; Password = 123";
connection = new SqlConnection(connStr);
connection.Open();
// Câu lệnh SQL: Insert/Update/Delete
strSQL = "Delete From Sinh_Vien Where Ma_SV = N'" + ma_SV.ToString()
+ "'";
cmd = new SqlCommand(strSQL, con);
cmd.ExecuteNonQuery();
con.Close();
DSSV();
}


2.2.4. Code cho thao tác sửa:
a. Sự kiện RowEditing cho phép sửa:

protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
GridView1.EditIndex = e.NewEditIndex;
DSSV();
}
b. Sự kiện RowCancelingEdit để hủy bỏ việc sửa

protected void GridView1_RowCancelingEdit(object sender,
GridViewCancelEditEventArgs e)

{
GridView1.EditIndex = -1;
DSSV();
}
c. Sự kiện RowUpdating để cập nhật

protected void GridView1_RowUpdating(object sender,
GridViewUpdateEventArgs e)
{
string ma_SV =
((TextBox)GridView1.Rows[e.RowIndex].Cells[0].Controls[0]).Text;
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;
String strSQL;
SqlConnection con;
SqlCommand cmd;
connStr = @"Data Source=NGOCHTHVTC-PC;Initial
Catalog=QLSV_K48;User ID=PQ3; Password = 123";
connection = new SqlConnection(connStr);
connection.Open();
strSQL = "Update Sinh_Vien Set Ten_SV = N'" + ten_SV + "', Gioi_Tinh =
N'" +
gioi_Tinh + "', Dtb = " + dtb + " WHERE Ma_SV = N'" +
ma_SV.Trim() + "'";

cmd = new SqlCommand(strSQL, con);


cmd.ExecuteNonQuery();
con.Close();
//gvSinhVien.EditIndex = -1: Cho phép bấm Update sẽ thoát khỏi tình
trạng Edit.
GridView1.EditIndex = -1;
DSSV();
}


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

UPLOAD

3.1.2. Code cho giao diện cho phần nhập ThemSV.aspx
<asp:Label ID="Label4" runat="server" Text="Tên Sinh Viên"></asp:Label>
ID="txtTen_SV" runat="server”></asp:TextBox>
<asp:Label ID="Label5" runat="server" Text="Mã Lớp"></asp:Label>
<asp:DropDownList ID="cboMa_Lop" runat="server"><asp:Label ID="Label1" runat="server" Text="Hình Ảnh"></asp:Label>
<asp:FileUpload ID="FileUpload1" runat="server" />
<asp:Button ID="btnUpLoad" runat="server" onclick="btnUpLoad_Click"/>
<asp:TextBox ID="txtHinh_Anh" runat="server"></asp:TextBox>

onclick="btnThem_Click" />


3.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)
protected void Page_Load(object sender, EventArgs e)
{
// load dữ liệu cho cboLop từ bảng Lop
String connStr;
String strSQL;
SqlConnection con;
SqlCommand cmd;
SqlDataAdapter adt;
DataTable dt = new DataTable();
//Mở kết nối
connStr = @"Data Source=NGOCHTHVTC-PC;Initial Catalog=QLSV_K48;User
ID=PQ3; Password = 123";
con = new SqlConnection(connStr);
con.Open();
//Câu lệnh SQL
strSQL = "SELECT Ma_Lop, Ten_Lop FROM Lop";
//Lấy Dữ liệu
cmd = new SqlCommand(strSQL, con);
adt = new SqlDataAdapter();
adt.SelectCommand = cmd;

adt.Fill(dt);
cboMa_Lop.DataSource = dt;
cboMa_Lop.DataValueField = "Ma_Lop";
cboMa_Lop.DataTextField = "Ten_Lop";
cboMa_Lop.DataBind();
con.Close();
}

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)
{
}
else//Nếu file thỏa mãn
{
try
{
string strPath = Server.MapPath("~/HinhAnh/" + FileUpload1.FileName);
FileUpload1.SaveAs(strPath);
txtHinh_Anh.Text = "~/HinhAnh/" + FileUpload1.FileName.ToString();
}
catch
{
}
}
}


3.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)
{
string strCon = @"Data Source=NGOCHTHVTC-PC;Initial
Catalog=QLSV_K48;Integrated Security=True";
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 Sinh_Vien WHERE Ma_SV = N'" +
txtMa_SV.Text.Trim() + " ' ”;
cmd.CommandText = strKtra;
cmd.Connection = con;
adt.SelectCommand = cmd;
adt.Fill(dt);
if (dt.Rows.Count > 0)
{
ShowMessage("Mã Sinh viên đã tồn tại",”Thông báo”);
txtMa_SV.Text = “”;
txtMa_SV.Focus();
Return;
}
else


{
txtTen_SV. Focus();

}
}

3.2.5. Code cho sự kiện Click của nút thêm:
protected void btnThem_Click(object sender, EventArgs e)
{
if (txtMa_SV.Text.Trim() == "")
{
ShowMessage("Nhập vào mã sinh viên", “Thông báo”);
txtMa_SV.Focus();
return;
}
string strCon = @"Data Source=NGOCHTHVTC-PC;Initial
Catalog=QLSV_K48;Integrated Security=True";
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 Sinh_Vien WHERE Ma_SV = N'" +
txtMa_SV.Text.Trim() + " ' ”;
cmd.CommandText = strKtra;
cmd.Connection = con;
adt.SelectCommand = cmd;
adt.Fill(dt);
if (dt.Rows.Count > 0)
{
ShowMessage("Mã Sinh viên đã tồn tại",”Thông báo”);
txtMa_SV.Text = “”;

txtMa_SV.Focus();
Return;
}
string sqlInsert = "insert into Sinh_Vien(Ma_SV, Ten_SV, Ma_Lop, Gioi_Tinh,
Hinh_Anh, Ngay_Sinh, Dtb) " +
" values ( N'"
+ txtMa_SV.Text.Trim() + "',N'"


+ txtTen_SV.Text.Trim() + "',N'"
+ cboMa_Lop.SelectedValue.Trim() + "',N'"
+ txtGioi_Tinh.Text.Trim() + "',N'"
+ txtHinh_Anh.Text.Trim() + "',N'"
+ txtNgay_Sinh.Text.Trim() + "',"
+ txtDtb.Text + ")";
SqlCommand sqlCom = new SqlCommand(sqlInsert, con);
sqlCom.ExecuteNonQuery();
ShowMessage("Thêm SV Thành Công", "");
Response.Redirect(DSSV.aspx");
}
catch (Exception ex)
{
ShowMessage("Lỗi:" + ex);
}
finally
{
con.Close();
}
}



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>
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>
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>
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>
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>
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


5. Thay đổi lệnh SQL:
-

Theo đề cũ (SV 46 dtb >7 và sv 47.41)

SELECT Ma_SV, Ten_SV …
FROM Sinh_Vien
WHERE (LEFT(LTRIM(Lop),4) = ‘CQ46’ AND dtb > 7) OR
(LEFT(LTRIM(Lop),7 = ‘CQ47/41’)
-

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í:
protected void btnDangKi_Click(object sender, EventArgs e)
{
if (txtMatKhau.Text.Trim() != txtnhaclaimk.text.trim())
{
ShowMessage("Mật khẩu và mật khảu nhắc lại khác nhau", “Thông báo”);
txtMatKhau.Focus();

return;
}
string strCon = @"Data Source=NGOCHTHVTC-PC;Initial
Catalog=QLSV_K48;Integrated Security=True";
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 nguoidung WHERE tendangnhap = N'" +
txttendangnhap.Text.Trim() + " ' ”;
cmd.CommandText = strKtra;
cmd.Connection = con;
adt.SelectCommand = cmd;
adt.Fill(dt);


if (dt.Rows.Count > 0)
{
ShowMessage("người dùng đã tồn tại",”Thông báo”);
txttendangnhap.Text = “”;
txttendangnhap.Focus();
Return;
}
string sqlInsert = "insert into nguoi_dung (tendangnhap, matkhau) " +
" values ( N'"
+ txttưndangnhap.Text.Trim() + "',N'"
+ txtmatkhau.Text.Trim() + "' ’ ";
SqlCommand sqlCom = new SqlCommand(sqlInsert, con);

sqlCom.ExecuteNonQuery();
ShowMessage("đăng ki Thành Công", "");
Response.Redirect(dangnhap.aspx");
}
catch (Exception ex)
{
ShowMessage("Lỗi:" + ex);
}
finally
{
con.Close();
}
}
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.


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).


Câu 2: Sử dụng HTML và Javascript để tạo 1 chương trình máy tính:
<html>
<head>
<title> Bài 2 </title>
<script language="javascript">
var x, y;
x = parseFloat(document.getElementById("so1").value);
y = parseFloat(document.getElementById("so2").value);
function Cong()
{ document.getElementById("kq").value = x + y; }
function Tru()
{ 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>
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,... )
<body>
<form id="formsach" runat="server">


<b> Sách </b>


Ngày <asp:TextBox ID="txt_ngay" runat="server"> </asp:TextBox>


ControlToValidate="txt_ngay"
MinimumValue="1900-01-01"
MaximumValue="2100-12-31"
Type="Date"
ErrorMessage="Phải nhập kiểu ngày trong khoảng từ năm 1900 đến 2100">
</asp:RangeValidator>


ControlToValidate="txt_ngay"
ErrorMessage="Không được để rỗng!">
</asp:RequiredFieldValidator>





sách


ID="txt_masach"

runat="server"

Autopostback="true">

</asp:TextBox>
ControlToValidate="txt_masach"
ErrorMessage="Không được để rỗng!">
</asp:RequiredFieldValidator>
Mã NXB <asp:TextBox ID="txt_manxb" runat="server"> </asp:TextBox>

Tên sách <asp:TextBox ID="txt_tensach" runat="server"></asp:TextBox>
ControlToValidate="txt_tensach"
ErrorMessage="Không được để rỗng!">
</asp:RequiredFieldValidator>

Mô tả <asp:TextBox ID="txt_mota" runat="server"></asp:TextBox>

Đơn vị tính <asp:TextBox ID="txt_dvt" runat="server"></asp:TextBox>


Đơn giá <asp:TextBox ID="txt_dgia" runat="server"></asp:TextBox>
ControlToValidate="txt_dgia"
MinimumValue="1"
MaximumValue="999999999"


Type="Integer"
ErrorMessage="Phải nhập số nguyên > 0">
</asp:RangeValidator>
ControlToValidate="txt_dgia"
ErrorMessage="Không được để rỗng!">
</asp:RequiredFieldValidator>

Số lượng <asp:TextBox ID="txt_slg" runat="server"></asp:TextBox>
ControlToValidate="txt_slg"
MinimumValue="1"
MaximumValue="999999999"
Type="Integer"
ErrorMessage="Phải nhập số nguyên > 0">
</asp:RangeValidator>




ID="btn_them"

runat="server"


onclick="btn_them_Click"/>

<hr noshade="noshade" />




<b> Danh sách Sách <b>
<asp:GridView ID="grv_sach" runat="server"> </asp:GridView>


</form>
</body>
** Code:
// Hàm load Grig view
private void load_grvsach()
{

Text="Thêm"


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();
adp.Fill(ds, "tblSach");
grvsach.DataSource = ds;
grvsach.DataBind();
}
//hàm Page Load
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)

{
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)
{
SqlConnection con = new SqlConnection ("server=HVTC_server\\SQLEXPRESS;
database=QLBH;");
//Trước tiên kiểm tra xem đã có mã sách hay chưa. Nếu đã tồn tại mã sách thì phải nhập lại.
SqlDataAdapter adp = new SqlDataAdapter("select * from tblSach where masach=’ “ +
txt_masach + “ ‘ ", con);
DataSet ds = new DataSet();
adp.Fill(ds, "tblSach");
DataTable dt = new DataTable();
dt = ds.Tables[0];
if (dt.Rows.Count > 0)
{
ShowMessage(" mã sách đã tồn tại", "thông báo");
txtmasach.Text = "";
txtmasach.Focus();
}
Else
//Nếu chưa có mã sách thì cho phép thêm vào
{
con.Open();


string 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();
cmd.Connection = con;
cmd.CommandText = ADD;
cmd.ExecuteNonQuery();
con.Close();
//Reset form
txt_masach.Text = "";
txt_tensach.Text = "";
txt_dgia.Text = "";
txt_dvt.Text = "";
txt_mota.Text = "";
txt_manxb.Text = "";
txt_slg.Text = "";
txt_ngay.Text = "";
//Phải load lại grid để hiển thị sách vừa thêm mới
load_grvsach();
}
}

Khi có khóa ngoại
1. Trang quản trị
a. Code giao diện
<html>
<head runat="server">
<title></title>
<style type="text/css">
#form1
{
height: 291px;

}
</style>
</head>
<body style="height: 268px">


<form id="form1" runat="server">
<div>
</div>
AutoGenerateColumns="False"
CellPadding="4" DataKeyNames="Mavt" ForeColor="#333333"
GridLines="None"
onrowcancelingedit="grvDS_RowCancelingEdit"
onrowdatabound="grvDS_RowDataBound"
onrowdeleting="grvDS_RowDeleting"
onrowediting="grvDS_RowEditing"
onrowupdating="grvDS_RowUpdating"
onselectedindexchanging="grvDS_SelectedIndexChanging"
Width="581px"
BorderStyle="Groove">
<AlternatingRowStyle BackColor="White" />
<Columns>
ReadOnly="True" />
<asp:BoundField DataField="Tenvt" HeaderText="Tên VT" />
/>
<asp:BoundField DataField="MaNCC" HeaderText="Mã NCC" />

/>
ShowDeleteButton="True"
ShowEditButton="True" ShowSelectButton="True"
CancelText="Hủy bỏ"
DeleteText="Xóa" EditText="Sửa" SelectText="Xem"
UpdateText="Cập nhật" />
</Columns>


Text="Thêm mới" />
</form>
</body>
</html>
b. Code chương trình
using
using
using
using
using

System;
System.Collections.Generic;
System.Linq;
System.Web;
System.Web.UI;


using System.Web.UI.WebControls;

using System.Data;
using System.Data.SqlClient;
namespace QLVatTuHangHoa
{
public partial class DSVatTu : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
ListUsers();
}
private void ListUsers()
{
String connStr;
String strSQL;
SqlConnection myConnection;
SqlDataAdapter myAdapter;
DataTable myTable = new DataTable();
//Mở kết nối
connStr = "Data Source=HAILEE; Initial Catalog=KTVT;
Integrated Security=True";
myConnection = new SqlConnection(connStr);
myConnection.Open();
//Câu lệnh SQL
strSQL = "Select * From dmVT";
//Lấy Dữ liệu
myAdapter = new SqlDataAdapter(strSQL, myConnection);
myAdapter.Fill(myTable);
myConnection.Close();

}


grvDS.DataSource = myTable;
grvDS.DataBind();

protected void grvDS_RowDeleting(object sender,
GridViewDeleteEventArgs e)
{
int mavt =
int.Parse(grvDS.DataKeys[e.RowIndex].Value.ToString());


×