Bài giảng Lập trình Website - Dương Thành Phết

ìm hiểu về ASP.Net

¾Cuối thập niên 90, ASP (Active Server Page) đã được

nhiều lập trình viên lựa chọn để xây dựng và phát triển ứng

dụng web động trên máy chủ hệ điều hành Windows.

¾ASP thể hiện những ưu điểm với mô hình lập trình thủ tục

đơn giản, sử dụng hiệu quả các đối tượng: ADO (ActiveX

Data Object) - Xử lý dữ liệu, FSO (File System Object) -

Làm việc với hệ thống tập tin ASP cũng hỗ trợ nhiều ngôn

ngữ: VBScript, JavaScript Î Được yêu thích trong thời

gian dài

¾ Tuy nhiên, ASP còn tồn đọng một số khó khăn như:

ƒ Code ASP và HTML lẫn lộn, viết code khó khăn,

ƒ Hạn chế khả năng sử dụng lại code.

ƒ Triển khai không được biên dịch dễ mất code

ƒ Hạn chế về tốc độ, quá trình Postback khó khăn,

¾ Năm 2002, Microsoft giới thiệu một kỹ thuật lập trình

Web mới là ASP.Net.

¾ Với ASP.Net, không những không cần phải biết các tag

HTML, thiết kế web, mà còn hỗ trợ mạnh lập trình hướng

đối tượng trong quá trình xây dựng và phát triển ứng dụng

Web.

¾ ASP.Net là kỹ thuật lập trình và phát triển ứng dụng web

ở phía Server dựa trên nền tảng của Microsoft .Net

Framework.

¾ Mã lệnh ở phía server sẽ được biên dịch và thi hành tại

Web Server kết quả được chuyển sang HTML/ JavaScript/

CSS và trả về cho Client.

¾Tất cả các xử lý lệnh ASP, ASP.Net đều được thực hiện

tại Server và do đó, gọi là kỹ thuật lập trình ở phía server

Bài giảng Lập trình Website - Dương Thành Phết trang 1

Trang 1

Bài giảng Lập trình Website - Dương Thành Phết trang 2

Trang 2

Bài giảng Lập trình Website - Dương Thành Phết trang 3

Trang 3

Bài giảng Lập trình Website - Dương Thành Phết trang 4

Trang 4

Bài giảng Lập trình Website - Dương Thành Phết trang 5

Trang 5

Bài giảng Lập trình Website - Dương Thành Phết trang 6

Trang 6

Bài giảng Lập trình Website - Dương Thành Phết trang 7

Trang 7

Bài giảng Lập trình Website - Dương Thành Phết trang 8

Trang 8

Bài giảng Lập trình Website - Dương Thành Phết trang 9

Trang 9

Bài giảng Lập trình Website - Dương Thành Phết trang 10

Trang 10

Tải về để xem bản đầy đủ

pdf 55 trang duykhanh 3500
Bạn đang xem 10 trang mẫu của tài liệu "Bài giảng Lập trình Website - Dương Thành Phết", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Lập trình Website - Dương Thành Phết

Bài giảng Lập trình Website - Dương Thành Phết
”;
OleDbParameter ts2 as OleDbParameter=
cmd.Parameters.Add(“@MAMH”,OleDbType.Char,4);
Ts1.Value=”MH01”;
Khoa CNTT, Trường CĐ CNTT TP.HCM© Dương Thành Phết-www.thayphet.net
299
Thực hiện Command:
™ Phương thức ExecuteReader: Trả về đối tượng 
DataReader để đọc dữ liệu mỗi lần một dòng với 
phương thức Read.(DataReader đọc dữ liệu trực tiếp từ
nguồn nên phải duy trì kết nối đến khi đọc xong)
SqlDataReader As SqlDataReader;
 = .ExecuteReader;
VD: SqlDataReader rd As SqlDataReader;
rd = cmd.ExecuteReader;
™ Phương thức ExcuteNoneQuery: Dùng thực thi các 
phát biểu T-Sql như: Insert, Update, Delete, Create,
™ Phương thức ExcuteScalar: Trả về từ phát biểu 
SQL dạng Select chỉ có một cột một hàng. 
Khoa CNTT, Trường CĐ CNTT TP.HCM© Dương Thành Phết-www.thayphet.net
300
try
{ 
SqlConnection cnn = new SqlConnection("Data Source=(local);
Initial Catalog=QLbansach;User ID=sa;Password=");
SqlCommand cmd = new SqlCommand();
cmd.Connection = cnn;
//Loại command là câu lệnh SQL
cmd.CommandText = "Select Count(*) From Chude";
cmd.CommandType = CommandType.Text;
//Mở kết nối và lấy dữ liệu
cnn.Open();
int count = (int)cmd.ExecuteScalar();
response.write(count.ToString());
cnn.Close();
}
catch (Exception)
{
response.write("Không thành công!“);
}
Khoa CNTT, Trường CĐ CNTT TP.HCM© Dương Thành Phết-www.thayphet.net
Ví dụ 1: Sử dụng Command với câu lệnh Select
Trang 50
301
try
{
SqlConnection cnn = new SqlConnection("Data Source=(local);
Initial Catalog=QLbansach;User ID=sa;Password=");
SqlCommand cmd = new SqlCommand();
cmd.Connection = cnn;
//Biến Commnad thao tác Insert, Update, Delete
cmd.CommandText = "Insert Into Chude(tencd) Values(n'văn hóa')";
cmd.CommandType = CommandType.Text;
cnn.Open();
cmd.ExecuteNonQuery();
response.write("Thành công!“);
cnn.Close();
}
catch (Exception)
{
response.write(“Thất bại!“);
}
Khoa CNTT, Trường CĐ CNTT TP.HCM© Dương Thành Phết-www.thayphet.net
Ví dụ 2: Sử dụng Command với lệnh Insert,Update,Delete
302
Khoa CNTT, Trường CĐ CNTT TP.HCM© Dương Thành Phết-www.thayphet.net
Ví dụ 3: Command với lệnh Insert,Update,Delete + Tham số
try
{
SqlConnection cnn = new SqlConnection("Data Source=(local);
Initial Catalog=QLbansach;User ID=sa;Password=");
SqlCommand cmd = new SqlCommand();
cmd.Connection = cnn;
SqlParameter parTenLinhVuc = 
new SqlParameter("@TENCHUDE", SqlDbType.NVarChar, 50);
cmd.CommandText = 
"INSERT INTO CHUDE VALUES(@TENCHUDE)";
cmd.CommandType = CommandType.Text;
cmd.Parameters.Add(parTenchude);
parTenLinhVuc.Value = TextBox1.Text;
cnn.Open();
cmd.ExecuteNonQuery();
cnn.Close();
response.write("Thành công!“);
}
catch (Exception)
{
response.write(“Thất bại!“);
}
303
7.2.3 DataReader
™Là đối tượng truy cập dữ liệu trực tiếp, sử dụng con 
trỏ phía Server và duy trì kết nối với Server trong suốt 
quá trình đọc dữ liệu, 
™Tùy theo loại Connection mà DataReader thuộc tên 
miền:
System.Data.OleDb.OleDbDataReader
System.Data.SqlClient.SqlDataReader
Khoa CNTT, Trường CĐ CNTT TP.HCM© Dương Thành Phết-www.thayphet.net
304
Các thuộc tính
™ FieldCout: Số cột trên dòng hiện hành của 
DataReader
™ IsClosed : Cho biết dataReader đã đóng
™ Item:Trị của cột truyền vào. Tham số truyền vào là
tên cột hoặc số thứ tự tính từ 0. 
Khoa CNTT, Trường CĐ CNTT TP.HCM© Dương Thành Phết-www.thayphet.net
305
Các phương thức
™ Close: Đóng DataReader
™ GetFieldType: Trả về kiểu dữ liệu của tham số
truyền vào.
™ GetName: Trả về tên của cột truyền vào
™ GetValue: Trả về trị của cột truyền vào
™ Read: Di chuyển đến dòng kế tiếp và trả về true 
nếu còn dòng để di chuyển, ngược lại trả về False.
Trong khi dataReader đang mở các thao tác dữ
liệu trên nguồn dữ liệu đều không thể cho đến khi 
dataReader đóng lại bằng lệnh Close 
Khoa CNTT, Trường CĐ CNTT TP.HCM© Dương Thành Phết-www.thayphet.net
306
Khoa CNTT, Trường CĐ CNTT TP.HCM© Dương Thành Phết-www.thayphet.net
Ví dụ 1:DataReader với lệnh Insert,Update,Delete +Tham số
try
{ SqlConnection cnn = new SqlConnection("Data Source=(local);
Initial Catalog=QLbansach;User ID=sa;Password=");
SqlCommand cmd = new SqlCommand();
cmd.Connection = cnn;
cmd.CommandText = "SELECT * FROM Nhaxuatban";
cmd.CommandType = CommandType.Text;
cnn.Open();
IDataReader dr = cmd.ExecuteReader();
String list = "";
while (dr.Read())
{
list = list + dr["TenNXB"].ToString().Trim() + " ";
}
dr.Close();
response.write(list.ToString());
cnn.Close();
}
catch (Exception)
{
response.write(“Thất bại!“);
} 
Trang 51
307
Khoa CNTT, Trường CĐ CNTT TP.HCM© Dương Thành Phết-www.thayphet.net
Ví dụ 2: DataReader + gọi procedure (VD: Getnhaxuatban)
try
{ SqlConnection cnn = new SqlConnection("Data Source=(local);
Initial Catalog=QLbansach;User ID=sa;Password=");
SqlCommand cmd = new SqlCommand("Getnhaxuatban", cnn);
cmd.Connection = cnn;
cmd.CommandType = CommandType.StoredProcedure;
cnn.Open();
IDataReader dr = cmd.ExecuteReader();
String list = "";
while (dr.Read())
{
list = list + dr["TenNXB"].ToString();
}
dr.Close();
response.write(list.ToString());
cnn.Close(); 
}
catch (Exception)
{
response.write(“Thất bại!“);
} 308
Khoa CNTT, Trường CĐ CNTT TP.HCM© Dương Thành Phết-www.thayphet.net
Ví dụ 2: DataReader + gọi procedure có tham số
Create Procedure GetchudeByMaCD
@Machude char(15)
AS
Begin
Select * From Chude Where MaCD=@Machude
End
309
Khoa CNTT, Trường CĐ CNTT TP.HCM© Dương Thành Phết-www.thayphet.net
try
{ SqlConnection cnn = new SqlConnection("Data Source=(local);
Initial Ctalog=QLbansach;User ID=sa;Password=");
SqlCommand cmd = new SqlCommand("GetchudeByMaCD", cnn);
cmd.Connection = cnn;
cmd.CommandType = CommandType.StoredProcedure;
SqlParameter parMALINHVUC =
new SqlParameter("@Machude", SqlDbType.NChar, 10);
parMAVHUDE.Value = TextBox1.Text;
cmd.Parameters.Add(parMACHUDE); 
cnn.Open();
IDataReader dr = cmd.ExecuteReader();
String list = "";
while (dr.Read())
{
list = list + dr["Tenchude"].ToString();
}
dr.Close();
response.write(list.ToString());
cnn.Close();
}
catch (Exception)
{
response.write(“Thất bại!“);
} 310
7.2.4 DataAdapter
™ Để lấy dữ liệu từ nguồn dữ liệu về cho ứng dụng, 
chúng ta sử dụng đối tượng DataAdapter. Đối tượng 
này cho phép ta lấy cấu trúc và dữ liệu của các bảng.
™ DataAdapter là một bộ gồm 4 đối tượng:
ƒ SelectCommand: Cho phép lấy thông tin từ nguồn.
ƒ InsertCommand: Cho phép thêm dữ liệu vào bảng 
trong nguồn.
ƒ UpdateCommand: Cho phép điều chỉnh dữ liệu của 
bảng trong nguồn.
ƒ DeleteCommand: Cho phép xóa dữ liệu của bảng 
trong nguồn. 
Khoa CNTT, Trường CĐ CNTT TP.HCM© Dương Thành Phết-www.thayphet.net
311
™ Tạo DataAdapter
Cú pháp:
DataAdapter =
New DataAdapter(,)
Khoa CNTT, Trường CĐ CNTT TP.HCM© Dương Thành Phết-www.thayphet.net
DataAdapter chỉ thao tác với nguồn dữ liệu qua đối 
tượng connection đang kết nối, khi Connection chưa mở
thì DataAdapter sẽ tự động mở kết nối khi cần và đóng 
lại 
312
Khoa CNTT, Trường CĐ CNTT TP.HCM© Dương Thành Phết-www.thayphet.net
™ Các thuộc tính của DataAdapter
ƒ DeleteCommand: Đối tượng Command chứa nội 
dung lệnh hủy các mẫu tin trên nguồn dữ liệu. 
ƒ InsertCommand: Đối tượng Command chứa nội 
dung lệnh thêm các mẫu tin trên nguồn dữ liệu. 
ƒ SelectCommand: Đối tượng Command chứa nội 
dung lệnh truy xuất các mẫu tin trên nguồn dữ liệu. 
ƒ UpdateCommand: Đối tượng Command chứa nội 
dung lệnh sửa các mẫu tin trên nguồn dữ liệu. 
Trang 52
313
Khoa CNTT, Trường CĐ CNTT TP.HCM© Dương Thành Phết-www.thayphet.net
™ Các chức năng của DataAdapter
ƒ Lấy dữ liệu từ nguồn:
- DataTable: Fill()
- DataSet: Fill() 
Dữ liệu lấy về DataSet dưới dạng các dataTable 
với tên là: Table0,Table1, Table2. . .
- Đổ dữ liệu vào Datset cho bảng DataTable nếu 
chưa có sẽ tạo mới:
Fill(,)
314
Khoa CNTT, Trường CĐ CNTT TP.HCM© Dương Thành Phết-www.thayphet.net
ƒ Phương thức trả về mẫu tin lấy được
Dataset DS as New Dataset()
Integer so;
so= DA.Fill(DS,”Sinhvien”) 
ƒ Để cập nhật dữ liệu về nguồn
Update(): Cập nhật các dòng (Các 
đối tượng DataRow) vào nguồn dữ liệu.
Update(): Cập nhật các thay đổi trên 
tất cả các bảng của Dataset vào nguồn dữ liệu.
Update(): Cập nhật tất cả các thay 
đổi trên DataTable vào nguồn dữ liệu.
Update(,) Cập nhật các 
thay đổi trên bảng trong Dataset vào nguồn.
315
7.2.5 Dataset
™ Dataset là một mô hình CSDL quan hệ thu nhỏ 
đáp ứng nhu cầu của ứng dụng.
™ Dataset chứa các bảng (DataTable), các quanhệ
(DataRelation) và các ràng buộc (constraint) 
™ Dataset thuộc tên miền: System.Data.Dataset.
™ Khai báo
New System.Data.Dataset()
Hoặc
New System.Data.Dataset() 
Khoa CNTT, Trường CĐ CNTT TP.HCM© Dương Thành Phết-www.thayphet.net
316
Khoa CNTT, Trường CĐ CNTT TP.HCM© Dương Thành Phết-www.thayphet.net
™ Các phương thức
Thêm một bảng vào Dataset
Tables.Add()
Một bảng mới tự động được tạo ra với tên 
mặc định Table1, Table2 . . .
Tables.Addd() 
Một bảng mới tạo ra theo đúng 
Ghi chú: Tên bảng có phân biệt chữ in, thường
Xóa bảng ra khỏi Dataset
Tables.Remove() 
Xóa bảng ra khỏi tập hợp Table. 
317
Khoa CNTT, Trường CĐ CNTT TP.HCM© Dương Thành Phết-www.thayphet.net
Kiểm tra bảng có thuộc về Dataset
Tables.Contains()
Lấy chỉ số của bảng
Tables.IndexOf()
Lấy số bảng trong Dataset
Tables.Count
Lấy ra một bảng trong Dataset
Tables()
Để cập nhật các thay đổi trên Dataset
AcceptChanges()
318
Khoa CNTT, Trường CĐ CNTT TP.HCM© Dương Thành Phết-www.thayphet.net
Để hủy các thay đổi trên Dataset
RejectChanges()
Để xóa bỏ mọi dữ liệu trên dataSet
Clear()
Để tạo một bản sau của Dataset
Clone()
Để xóa bỏ Dataset
Dispone()
Giải phóng mọi tài nguyên trên vùng nhớ 
Dataset đang sử dụng.
Tạo quan hệ giữa hai bảng trong Dataset.
Relations.Add(, 
)
Xóa quan hệ giữa hai bảng trong Dataset.
Relations.Remove()
Trang 53
319
7.2.6 DataTable
Dữ liệu các bảng trong nguồn dữ liệu được lấy về
và đưa vào các DataTable. DataTable thuộc tên miền : 
System.Data.dataTable.
Cú pháp:
New DataTable();
New DataTable();
DataTable được hình thành từ DataColumn và DataRow. 
Khoa CNTT, Trường CĐ CNTT TP.HCM© Dương Thành Phết-www.thayphet.net
320
Khoa CNTT, Trường CĐ CNTT TP.HCM© Dương Thành Phết-www.thayphet.net
try
{ SqlConnection cnn = new SqlConnection("Data Source=(local);
Initial Catalog=QLbansach;User ID=sa;Password=");
SqlDataAdapter da=new SqlDataAdapter("select * from CHUDE", cnn);
SqlCommandBuilder commandBuilder = new SqlCommandBuilder(da);
DataSet ds = new DataSet();
da.Fill(ds);
foreach (DataRow row in ds.Tables[0].Rows)
if (row["MaCD"]=="1")
{ 
row["TENCHUDE"] = "BBB"; 
}
response.write(ds.Tables[0].Rows[2].ItemArray[1].ToString());
GridView1.DataSource = ds.Tables[0];
GridView1.DataBind();
//Không sử dụng SqlCommandBuilder thì không thể update dữ liệu.
da.Update(ds);
} 
catch (Exception)
{
response.write(“Thất bại!“);
}
Ví dụ 1: DataAdapter + update dữ liệu 
321
Khoa CNTT, Trường CĐ CNTT TP.HCM© Dương Thành Phết-www.thayphet.net
try 
{
SqlConnection cnn = new SqlConnection("Data Source=(local);
Initial Catalog=QLbansach;User ID=sa;Password=");
SqlDataAdapter da = new SqlDataAdapter("GETNXB", cnn);
DataSet ds = new DataSet();
da.Fill(ds);
response.write(ds.Tables[0].Rows[2].ItemArray[1].ToString());
GridView2.DataSource = ds.Tables[0];
GridView2.DataBind();} 
catch (Exception)
{
response.write(“Thất bại!“);
}
Ví dụ 2: DataAdapter + Procedure(GetNXB)
322
Khoa CNTT, Trường CĐ CNTT TP.HCM© Dương Thành Phết-www.thayphet.net
try 
{ SqlConnection cnn = new SqlConnection("Data Source=(local);
Initial Catalog=QLbansach;User ID=sa;Password=");
SqlCommand cmd = new SqlCommand("Getchude", cnn);
cmd.Connection = cnn;
cmd.CommandType = CommandType.StoredProcedure;
SqlParameter parMACD =
new SqlParameter("@MACD", SqlDbType.NChar, 10);
parMACD.Value = "1";
cmd.Parameters.Add(parMACD);
cnn.Open();
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = cmd;
DataSet ds = new DataSet();
da.Fill(ds);
GridView1.DataSource = ds.Tables[0];
GridView1.DataBind();
cnn.Close();
} 
catch (Exception)
{
response.write(“Thất bại!“);
}
Ví dụ 3: DataAdapter + Procedure tham số (Getchude)
323
Khoa CNTT, Trường CĐ CNTT TP.HCM© Dương Thành Phết-www.thayphet.net
try
{ SqlConnection cnn = new SqlConnection("Data Source=(local);
Initial Catalog=QLbansach;User ID=sa;Password=");
SqlCommand cmd = new SqlCommand("GETNXB", cnn);
cmd.Connection = cnn;
cmd.CommandType = CommandType.StoredProcedure;
cnn.Open();
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = cmd;
//da.InsertCommand = cmd;
//da.DeleteCommand = cmd;
//da.UpdateCommand = cmd;
DataSet ds = new DataSet();
da.Fill(ds);
GridView1.DataSource = ds.Tables[0];
GridView1.DataBind();
cnn.Close();
}
catch (Exception)
{
response.write(“Thất bại!“);
}
Ví dụ 4: DataAdapter + Đối số là command 
324
7.2.7 Đối Tượng Transaction
Dữ liệu các bảng trong nguồn dữ liệu được lấy về
và đưa vào các DataTable. DataTable thuộc tên miền : 
System.Data.dataTable.
Cú pháp:
New DataTable();
New DataTable();
DataTable được hình thành từ DataColumn và DataRow. 
Khoa CNTT, Trường CĐ CNTT TP.HCM© Dương Thành Phết-www.thayphet.net
Trang 54
325
7.3. Xây Dựng Lớp Xử Lý Dữ Liệu
Khoa CNTT, Trường CĐ CNTT TP.HCM© Dương Thành Phết-www.thayphet.net
™ Để các thao tác với CSDL thuận lợi. Ta nên xây dựng lớp 
xử lý dữ liệu đảm nhận việc kết nối CSDL và các thủ tục xử lý.
ƒ Docbang(string LenhSQL): Nhằm thực hiện câu lệnh 
truy vấn SQL để trả về dữ liệu là 1 DataTable
ƒ Thuchienlenh(string LenhSQL): Nhằm thực hiện câu 
lệnh Insert, Update, Delete để cập nhật dữ liệu cho CSDL.
™ Thực hiện:
ƒ Tạo cấu hình chuỗi kết nối CSDL trong tập tin 
Webconfig. (Có thể dùng SQLDatasource để sinh mã)
<add name="KetnoiCSDL" connectionString="Data Source =(local);
Initial Catalog=QLBansach;Integrated Security=True“
providerName="System.Data.SqlClient" />
326
Khoa CNTT, Trường CĐ CNTT TP.HCM© Dương Thành Phết-www.thayphet.net
ƒ Tạo mới lớp XLDL.cs: Thêm mới 1 Item 
Tên lớp: XLDL.cs
Sẽ lưu lớp này trong thư mục App_Code
327
Khoa CNTT, Trường CĐ CNTT TP.HCM© Dương Thành Phết-www.thayphet.net
Thực hiện mã code cho lớp XLDL.cs
. . . 
using System.Data.SqlClient;
public class XLDL
{
static string StrCnn = ConfigurationManager.ConnectionStrings["KetnoiCSDL"].
ConnectionString.ToString();
public static DataTable Docbang(string LenhSQL)
{
using (SqlConnection cnn = new SqlConnection(StrCnn))
{
SqlDataAdapter bodocghi = new SqlDataAdapter(LenhSQL, cnn);
DataTable bang = new DataTable();
bodocghi.Fill(bang);
return bang;
}
}
. . .
328
Khoa CNTT, Trường CĐ CNTT TP.HCM© Dương Thành Phết-www.thayphet.net
. . . 
public static void thuchienlenh(string LenhSQL)
{
using (SqlConnection cnn = new SqlConnection(StrCnn))
{
cnn.Open();
SqlCommand bolenh = new SqlCommand(LenhSQL, cnn);
bolenh.ExecuteNonQuery();
cnn.Close();
}
}
}
Trang 55

File đính kèm:

  • pdfbai_giang_lap_trinh_website_duong_thanh_phet.pdf