Tải bản đầy đủ (.pdf) (126 trang)

các tính năng của asp net 3 5

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 (10.1 MB, 126 trang )

MỤC LỤC

1. ASP.NET là gì? .................................................................................................................. 2
1.1
1.2
1.3
1.4
1.5
1.6

ASP.NET tích hợp với NET Framework ..................................................................................... 2
ASP.NET là đa ngôn ngữ ............................................................................................................. 2
ASP.NET là hướng đối tượng (Object-Oriented) ........................................................................ 2
ASP.NET được biên dịch ............................................................................................................. 2
ASP.NET được lưu trữ trên máy bởi Common Language Runtime ............................................ 3
ASP.NET dễ dàng triển khai và cấu hình .................................................................................... 3

2. Các tính năng mới trong ASP.NET 3.5 ............................................................................ 3
2.1
2.2
2.3
2.4
2.5
2.6

ASP.NET AJAX .......................................................................................................................... 4
Các Control mới ........................................................................................................................... 4
LINQ ............................................................................................................................................ 4
Các Assembly mới ....................................................................................................................... 4
ASP.NET Dynamic Data ............................................................................................................. 4
ASP.NET MVC (Model View Control) ...................................................................................... 4



3. Cách tạo trang web trong Visual Studio 2008 ................................................................ 5
3.1
3.2
3.3

Khởi động Visual Studio 2008 hoặc Visual Web Developer 2008 (hình 1) ................................ 5
Cách tạo dự án mới ...................................................................................................................... 5
Ví dụ 1 .......................................................................................................................................... 7

4. Giới thiệu về sự kiện (Event) trong ASP.NET ................................................................. 9
4.1
4.2
4.3
4.4

Một số tệp cơ bản trong ASP.NET .............................................................................................. 9
Chu kỳ sống của trang web trong ASP.NET (ASP.NET Page Life Cycle) ................................ 9
Một số các sự kiện của trang web (Page Event) .......................................................................... 9
Sự kiện ứng dụng (Event Application) ...................................................................................... 10

5. Tài liệu tham khảo ........................................................................................................... 11


Bài mở đầu

GIỚI THIỆU TỔNG QUAN VỀ ASP.NET 3.5

Bài này giới thiệu tổng quan về công nghệ ASP.NET 3.5 (Active Server Page). ASP.NET là gì? Giới
thiệu những tính năng mới của ASP.NET 3.5 sơ với ASP.NET 2.0. Cách tạo website trong Visual Studio 2008.


1. ASP.NET là gì?
Trước hết, tên đầy đủ của ASP.NET là Active Server Pages .NET (.NET ở đây là .NET framework). Nói
đơn giản thì ASP.NET là một công nghệ có tính cách mạng dùng để phát triển các ứng dụng về mạng hiện nay
cũng như trong tương lai. Bạn lưu ý ở chổ ASP.NET là một phương pháp tổ chức hay khung tổ chức (framework)
để thiết lập các ứng dụng hết sức hùng mạnh cho mạng dựa trên CLR (Common Language Runtime).

1.1

ASP.NET tích hợp với NET Framework

.NET Framework được chia thành bộ các tác vụ cho từng chức năng gồm các lớp (class), các cấu trúc
(structures), các giao diện (interfaces) và các lõi (core) thành phần chương trình. Trước khi sử dụng thành phần
nào bạn phải hiểu cơ bản về chức năng, các tổ chức của nó. Mỗi một trong hàng nghàn các tầng lớp được nhóm
theo trình tự logic, thứ bậc được gọi là một namespace. Mỗi namespace cung cấp một tính năng.

1.2

ASP.NET là đa ngôn ngữ

Để xây dựng một ứng dụng web chúng ta không chỉ chọn một ngôn ngữ mà có thể chọn nhiều ngôn ngữ
khác. Điều quan trọng là các ngôn ngữ chúng ta chọn mã của nó dịch được ra mã IL. Điều đó có nghĩa là IL là
ngôn ngữ của .NET và chỉ có CLR nhận biết được IL.

1.3

ASP.NET là hướng đối tượng (Object-Oriented)

ASP.NET là ngôn ngữ lập trình hướng đối tượng sử dụng các ngôn ngữ .NET. Nó cung cấp bộ các đối
tượng nhỏ và thực sự là một tầng làm việt trên nguyên lý của HTTP và HTML. Mã nguồn của chúng ta không

được truy cập toàn bộ các đối tượng trong .NET Framework nhưng có thể khai thác tất cả các quy ước của một
môi trường OOP (Object Oriented Programming). Chúng ta có tạo các lớp, giao diện, kế thừa các lớp… Chúng ta
có thể kiểm soát được các đối tượng trong chương trình như hiển thị dữ liệu và các sự kiện của đối tượng.

1.4

ASP.NET được biên dịch

Một ứng dụng ASP.NET luôn luôn được biên dịch, nó không chạy bằng mã của C# hoặc Visual Basic mà
không được biên dịch trước. Một ứng dụng ASP.NET thực sự được biên dịch thông qua 2 giai đoạn:
 Giai đoạn đầu tiên những các mã (code) bạn viết (C#, Visual Basic hoặc ngôn ngữ .NET khác)
được dịch bởi Microsoft Intermediate Language (MSIL). Giai đoạn dịch này được dịch tự
động khi trang wed đầu tiên yêu cầu. Chúng ta có thể thực hiện dịch trước. Các tệp được dịch
thành mã IL (Intermediate Language Code).
 Giai đoạn tiếp theo được dịch trước khi trang Web được thực thi. Tại giai đoạn này mã IL được
dịch thành bản mã máy (Native Machine Code). Giai đoạn này được gọi là Just-In-Time (JIT).

Microsoft Vietnam – DPE team |Bài mở đầu: Giới thiệu tổng quan về ASP.NET 3.5

2


Code in VB.NET

Code in C#

Code in Another
.NET Language

VB.NET Compiler


C# Compiler

Appropriate Compiler

IL (Intermediate
Language) Code

Just-In-Time (JIT) Compiler

The Common
Language Runtime

Native Machine
Code

Execute

1.5

ASP.NET được lưu trữ trên máy bởi Common Language Runtime

Khía cạnh quang trọng nhất của công cụ ASP.NET là nó chạy trong môi trường thời gian thực (Runtime)
của CLR (Common Language Runtime). CLR là máy ảo (virtual machine) trong Microsoft .NET, do có ngôn
ngữ trung gian IL nên khi phát triển ứng dụng trên .NET, chúng ta không bị phụ thuộc vào thiết bị, có nghĩa là
theo Microsoft nói thì ứng dụng .NET có thể chạy trên bất kỳ thiết bị nào có .NET Framework. Tất cả các
namespace, các ứng dụng, các lớp trong bộ .NET Framework được gọi tắt là bộ quản lý mã. CLR cũng cung cấp
các dịch vụ quan trọng khác như:



Quản lý bộ nhớ



Thu nhặt rác



Quản lý các tuyến



Xử lý ngoại lệ



An toàn

1.6

ASP.NET dễ dàng triển khai và cấu hình

Mọi sự cài đặt .NET Framework đều cung cấp các lớp như nhau. Để triển khai ứng dụng ASP.NET
chúng ta chỉ cần sao chép các tập tin vào thư mục ảo trên máy chủ (server) và máy chỉ chỉ cần có .NET
Framework.
Việc cấu hình dễ dàng đơn giản không phụ thuộc vào IIS (Internet Information Services). Cấu hình trong
ASP.NET được đặt trong tệp web.config. Tệp web.config được để cùng với thư mực chứa trang web của chúng
ta. Tệp web.config không bao giờ bị khóa, chúng ta có thể truy cập bất kỳ lúc nào, việc sửa tệp này hoàn toàn dễ
dạng vì chúng được lưu dưới dạng XML.


2. Các tính năng mới trong ASP.NET 3.5
Microsoft phát hành ASP.NET vào ngày 19 tháng 11 năm 2007 cùng với Visual Stutio 2008. Đây là
bước tiến hóa từ ASP.NET 2.0 tới ASP.NET 3.5. Nếu chúng ta đang sử dụng ASP.NET 2.0 để sử dụng ASP.NET
3.5 chỉ cần cài đặt thêm các tính năng mới của ASP.NET 3.5.
Microsoft Vietnam – DPE team |Bài mở đầu: Giới thiệu tổng quan về ASP.NET 3.5

3


Trong phần này sẽ giới thiệu một số tính năng mới trong ASP.NET 3.5

ASP.NET AJAX

2.1

Trong ASP.NET 2.0, ASP.NET AJAX được cài đặt thêm vào. Tuy nhiên trong ASP.NET 3.5, ASP.NET
AJAX đã được tích hợp. vào trong .NET Framework, do đó quá trình xây dựng giao diện người dùng được dễ
dàng và trực quan. ASP.NET AJAX Control Extenders đã được tích hợp ToolBox của Visual Studio 2008. Các
tính năng của ASP.NET AJAX sẽ được trình bày ở bài sau.

Các Control mới

2.2

Các control ListView và DataPager có thể dùng mới kiểu dữ liệu mới LinqDataSource.
ListView linh hoạt hơn và có chứa toàn bộ tính năng của Gridview, Datagrid, Repeater trong
ASP.NET 2.0. Nó cung cấp các khả năng và chèn, xóa, sửa, sắp xếp, phân trang. Chúng ta hoàn toàn định dạng
được việc dữ liệu hiển thị trên ListView mà không cần phải sử dụng thẻ <table>. Các Template trong ListView
rất phong phú và đa dạng. Datager cung cấp cho ListView trong việc phân trang.


LINQ

2.3

LINQ (Language Integrated Query) đưa ra khả năng lập trình mới trong .NET. Giải pháp lập trình hợp
nhất, đem đến khả năng truy vấn dữ liệu theo cú pháp SQL trực tiếp trong C# hay VB.NET, áp dụng cho tất cả
các dạng dữ liệu từ đối tượng đến Cơ sở dữ liệu quan hệ và XML.
ASP.NET LinqDataSource cho phép chúng ta có thể sử dụng LINQ để lọc (filter), order và nhóm (group)
dữ liệu trước khi binding vào List Control.

Các Assembly mới

2.4





2.5

System.Core.dll – Các implementation cho LINQ to Objects
System.Data.Linq.dll - Các implementation cho LINQ to SQL
System.Xml.Linq.dll - Các implementation cho LINQ to XML
System.Data.DataSetExtensions.dll - Các the implementation cho LINQ to DataSet
System.Web.Extensions.dll: Các implementation for ASP.NET AJAX

ASP.NET Dynamic Data

ASP.NET Dynamic Data cung cấp một Framework cho phép chúng ta nhanh chóng xây dựng một chức
năng ứng dụng driver-data, dựa trên LINQ to SQL hay Entity Framework. Nó cũng có thêm nhiều tính linh hoạt

cho các DetailsView, FormView, GridView, ListView trong kiểm tra tính hợp lệ của dữ liệu, hoặc chỉnh sửa lại
các mẫu để thay đổi cách hiển thị dữ liệu.
2.6

ASP.NET MVC (Model View Control)

Kiến trúc MVC là việc chia tất cả mục của một ứng dụng ra làm ba thành phần (component) khác nhau
Model, View và Controller:
Model: Model được giao nhiệm vụ cung cấp dữ liệu cho cơ sở dữ liệu và lưu dữ liệu vào các kho chứa
dữ liệu. Tất cả các nghiệp vụ logic được thực thi ở Model. Dữ liệu vào từ người dùng sẽ thông qua View được
kiểm tra ở Model trước khi lưu vào cơ sở dữ liệu. Việc truy xuất, xác nhận, và lưu dữ liệu là một phần của
Model.
View: View hiển thị các thông tin cho người dùng của ứng dụng và được giao nhiệm vụ cho việc nhận
các dữ liệu vào từ người dùng, gửi đi các yêu cầu đến bộ điều khiển, sau đó là nhận lại các phản hồi từ bộ điều
khiển và hiển kết quả cho người dùng. Các trang HTML, JSP, các thư viện thể và các file nguồn là một phần của
thành phần View.
Controller: Controller là tầng trung gian giữa Model và View. Controller được giao nhiệm vụ nhận các
yêu cầu từ phía máy khách. Một yêu cầu được nhận từ máy khách được thực hiện bởi một chức năng logic thích
Microsoft Vietnam – DPE team |Bài mở đầu: Giới thiệu tổng quan về ASP.NET 3.5

4


hợp từ thành phần Model và sau đó sinh ra các kết quả cho người dùng và được thành phần View hiển thị.
ActionServlet, Action, ActionForm và struts-config.xml là các phần của Controller.

3. Cách tạo trang web trong Visual Studio 2008
3.1

Khởi động Visual Studio 2008 hoặc Visual Web Developer 2008 (hình 1)


Hình 1: Visual Web Developer 2008

3.2

Cách tạo dự án mới

Chọn File → New Project (Ctrl+Shitf+N) hoặc New Web Site (Shift+Alt+N) (Hình 2)

Hình 2: Tạo dự án mới
Microsoft Vietnam – DPE team |Bài mở đầu: Giới thiệu tổng quan về ASP.NET 3.5

5


 Nếu chọn New Project xuất hiện hộp hội thoại New Project sau (hình 3):

Hình 3
Trong Project Type:


Visual Basic → Web nếu chọn Visual Basic là ngôn ngữ viết ứng dụng.



Visual C# → Web nếu chọn C# là ngôn ngữ viết ứng dụng.

Trong Templates chọn ASP.NET Web Application,.
Trong Name đặt tên cho Project, tên do ta đặt.
Trong Location là thư mục chứa Project.

 Nếu chọn New Web Site xuất hiện hộp hội thoại New Project sau (hình 4):

Hình 4
Microsoft Vietnam – DPE team |Bài mở đầu: Giới thiệu tổng quan về ASP.NET 3.5

6


Trong Languge:


Visual Basic → Web nếu chọn Visual Basic là ngôn ngữ viết ứng dụng.



Visual C# → Web nếu chọn C# là ngôn ngữ viết ứng dụng.

Trong Templates chọn ASP.NET Web Application.
Trong Location là chọn Sysem File và Chọn tên và thư mực chứa Project.

3.3

Ví dụ 1

Hình 5
Ví dụ tạo một dự án có tên là “Vi_du_1”, đặt tại ổ đĩa D, chọn ngôn ngữ chọn là C# (hình 5) sau đó bấm
OK. Sau đó chúng ta được file “Default.aspx” (hình 6).

Hình 6
Microsoft Vietnam – DPE team |Bài mở đầu: Giới thiệu tổng quan về ASP.NET 3.5


7


Trong ví dụ đầu tiên này chúng ta soạn một đoạn mã sau trong Default.aspx:
<%@ Page Language="C#" AutoEventWireup="true"
Inherits="_Default" %>

CodeFile="Default.aspx.cs"

" /><html xmlns=" /><head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<font face="verdana" color="red" size="20">Chào mừng bạn đến với ASP.NET
3.5 </font>
</div>
</form>
</body>
</html>

Để chạy chạy web này dưới dạng Deburg chúng ta chọn Deburg → Start Deburgging hoặc bấm phím
F5 (hình 7).

Hình 7
Kết quả khi chạy Vi_du_1 (hình 8)


Hình 8
Microsoft Vietnam – DPE team |Bài mở đầu: Giới thiệu tổng quan về ASP.NET 3.5

8


4. Giới thiệu về sự kiện (Event) trong ASP.NET
4.1

Một số tệp cơ bản trong ASP.NET

TỆP

MIÊU TẢ

*.aspx

Tệp này chứa toàn bộ giao diện người dùng, các tùy chọn, các đoạn
code ứng dụng. Đây là một trong những trang web đầu tiên được bắt
đầu khi người sử dụng duyệt web.
Tệp này chứa các mã nguồn của C#

*.cs
web.config

Tệp tin dạng XML chứa cấu hình cho ứng dụng ASP.NET. Nó bao
gồm các cấu hình về an ninh, quản lý trạng thái, quản lý bộ nhớ…

global.asax


Chúng ta sử dụng tập tin này để khai báo các biến toàn cục và phản
ứng với các sự kiện toàn cục.

Khi chúng ta xây dựng xong một ứng dụng Web:


Phần giao diện của ứng dụng nằm trong ở các tệp .aspx và html.



Tất cả các tệp mã nguồn (C#, VB.NET hoặc ngôn ngữ .NET) sẽ được biên dịch thành tệp .DLL và
nằm trong thư mục /Bin.

4.2

Chu kỳ sống của trang web trong ASP.NET (ASP.NET Page Life Cycle)



Chu kỳ sống được bắt đầu khi trình duyệt yêu cầu một trang web gọi là Session.



Chu kỳ sống vẫn tiếp tục nếu:



-

Session đang hoạt động.


-

Người sử dụng tương tác với giao diện web cho đến khi kích hoạt một sự kiện.

-

Dữ liệu của trang (View State) wed được gửi về cho Server.

-

Server nhận được View State và trả lại yêu cầu từ View State.

Chu kỳ sống kết thúc khi:

4.3

-

Người dùng kết thúc trình duyệt.

-

Session kết thúc (timeout).

Một số các sự kiện của trang web (Page Event)

SỰ KIỆN

MIÊU TẢ

Kiểm tra thuộc tính IsPostBack khi lần đầu tiên trang web đang được sử lý.

Pre_Init

Tạo mới hoặc tạo mới lại các Control động (Dynamic Control).
Thiết lập trang chủ (Master page), thuộc tính Theme.
Đọc và thiết lập giá trị cho thuộc tính Profile.

Init

Làm nổi (Raised) sau khi các Control đã được khởi động và các Skin đã được
ứng dụng. Chúng ta sử dụng sử kiện này để đọc hoặc khởi tạo các thuộc tính của
Control.

Microsoft Vietnam – DPE team |Bài mở đầu: Giới thiệu tổng quan về ASP.NET 3.5

9


Load

Sử dụng sự kiện này để thiết lập thuộc tính cho Control, thiết lập các kết nối với
Cơ sở dữ liệu.

InitComplete

Sử dụng sự kiện này để xử lý các tác vụ có yêu cầu khi tất cả các khởi tạo hoàn
thành.

Unload

Error
DataBinding

4.4

Trang được giải phóng khỏi bộ nhớ
Khi xảy ra lỗi trong trang.
Server Control trên trang được gắn với nguồn dữ liệu

Sự kiện ứng dụng (Event Application)

SỰ KIỆN

MIÊU TẢ

Application_Start

Người dùng đầu tiên duyệt trang web.

Application_End

Khi không còn người dùng nào duyệt trang web.

Application_Error

Khi có lỗi xảy ra trong ứng dụng

Session_Start

Khi người dùng duyệt một trang web


Session_End

Khi người dùng đóng trình duyệt hoặc Session kết thúc (time out)

Ví dụ sau đếm số người truy cập và số người online
Chọn Project → Add New Item (hình 9).

Hình 9
Trong “Add New Item” chọn “Global Application Class” (hình 10).

Hình 10
Microsoft Vietnam – DPE team |Bài mở đầu: Giới thiệu tổng quan về ASP.NET 3.5

10


Trong file Global.asax soạn đoạn mã sau:
<%@ Application Language="C#" %>
<%@ Import Namespace="System.IO" %>
<script runat="server">
void Application_Start(object sender, EventArgs e)
{
if (!File.Exists("D:\\Dem.txt"))
File.WriteAllText("D:\\Dem.txt", "0");
Application["SNTruyCap"] = int.Parse(File.ReadAllText("D:\\Dem.txt"));
}
void Application_End(object sender, EventArgs e)
{
}

void Application_Error(object sender, EventArgs e)
{
}
void Session_Start(object sender, EventArgs e)
{
if (Application["SNOnline"] == null)
Application["SNOnline"] = 1;
else
Application["SNOnline"] = (int)Application["SNOnline"] + 1;
Application["SNTruyCap"] = (int)Application["SNTruyCap"] + 1;
File.WriteAllText("D:\\Dem.txt", Application["SNTruyCap"].ToString());
}
void Session_End(object sender, EventArgs e)
{
Application["SNOnline"] = (int)Application["SNOnline"] - 1;
}
</script>

5. Tài liệu tham khảo
1. Visual Web Developer, URL: />2. Microsoft ASP.NET, URL: />3.

Bill Evjen, Scott Hanselman, Devin Rader, “Professional ASP.NET 3.5 In C# And VB”

Microsoft Vietnam – DPE team |Bài mở đầu: Giới thiệu tổng quan về ASP.NET 3.5

11


Bài số 2


̣ u về cách thứ c truy câ
̣ p dữ liê
̣ u
Giới thiê
Table of Contents
1

Tổng quan ............................................................................................................................... 2

2

Truy cập dữ liệu ADO.NET .......................................................................................................... 3

3

Truy cập dữ liệu XML ................................................................................................................. 4

4

Truy cập dữ liệu với SqlDataSource. ........................................................................................... 5

5

Truy cập dữ liệu LINQ................................................................................................................. 7
5.1

5.2

LINQ cơ bản ................................................................................................................................ 7
5.1.1


Cách làm việc của LINQ ................................................................................................. 7

5.1.2

Cú pháp LINQ................................................................................................................. 8

5.1.3

Dùng filter và sorting với LINQ ...................................................................................... 8

LinqDataSource ........................................................................................................................... 8

6

Truy cập dữ liệu với web services ............................................................................................ 11

7

Truy cập dữ liệu với Ajax ......................................................................................................... 12

8

Câu hỏi ôn tập....................................................................................................................... 14

9

Tài liệu tham khảo ................................................................................................................ 14



1

Tổng quan

Phần lớn các ứng dụng hiện nay đều sử dụng cơ sở dữ liệu. Có nhiều cách thức truy cập dữ liệu khác nhau trong
các công nghệ của Microsoft như ADO, RDO, DAO, ODBC. Tuy nhiên từ khi .NET Framework ra đời thì công
nghệ ADO.NET đã được tích hợp, ADO.NET chứa các lớp cho phép các ứng dụng connect data sources (kết nối
với các nguồn dữ liệu), execute commands (thực hiện các lệnh), manage disconnected data (quản lý dữ liệu đã
ngắt kết nối). Với ADO.NET người lập trình có thể viết ít mã lệnh thao tác cơ sở dữ liệu hơn so với các công
nghệ trước trong các ứng dụng client-server hoặc các ứng dụng trên desktop.
Mặt khác, trong ASP.NET từ phiên bản .NET Framework 2.0 trở lên có thêm các thao tác với cơ sở dữ liệu mà
không sử dụng ADO.NET như SqlDataSource, LINQ hoặc Profiles.
Ngoài ra các ứng dụng truy cập dữ liệu của .NET Framework còn có thể truy nhập vào các nguồn dữ liệu ngoài
như File, Stream, XML, Ajax, web services, WCF, data services.
Trong hướng dẫn này, ta sẽ tạo ra một Web site project thao tác với cơ sở dữ liệu. Sử dụng Visual Studio 2008
tạo một project Website. Trong đó tạo một database tên là DB_TEST.MDF trong folder App_Data (Figure 1)

Figure 1. Tạo database DB_TEST trong ứng dụng Website
Sử dụng database DB_TEST tạo 2 table HangHoa và KhoHang (Figure 2, Figure 3)

Microsoft Vietnam – DPE Team | Bài số 2: Giới thiệu cách thức truy cập dữ liệu

2


Figure 2. Table HangHoa trong database DB_TEST

Figure 3. Table KhoHang trong database DB_TEST
Tạo một chuỗi connection trong file cấu hình web.config đặt tên là ConnectionString cho phép truy nhập vào cơ
sở dữ liệu DB_TEST.MDF

web.config
<configuration>
<connectionStrings>
providerName="System.Data.SqlClient" />
</connectionStrings>
// … các thiết lập cấu hình khác …
</configuration>

2 Truy cập dữ liệu ADO.NET
ADO.NET Data Providers cho phép truy nhập vào một cơ sở dữ liệu cụ thể, thực hiện các câu lệnh SQL và nhận
dữ liệu. Data provider là chiếc cầu nối giữa ứng dụng và nguồn dữ liệu.
Lớp ADO.NET Data Provider bao gồm các thành phần: Connection: Thực hiện connect tới nguồn cơ sở dữ liệu;
Command: Thực hiện một câu lệnh SQL hoặc một store procedures; DataReader: Chỉ đọc và nhận dữ liệu từ một
truy vấn; DataAdapter thực hiện 2 nhiệm vụ: Điền dữ liệu nhận được vào một DataSet, có thể ghi nhận sự thay
đổi dữ liệu trong DataSet.
Một ví dụ sử dụng ADO.NET với đối tượng hiển thị dữ liệu là GridView. Tạo một webform đặt tên là
Adonet.aspx, trong webform đó tạo một GridView đặt tên là GridView1. Mã lệnh thực hiện kết nối dữ liệu:
Adonet.aspx.cs
SqlConnection conn = new
SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].Connection
String);

Microsoft Vietnam – DPE Team | Bài số 2: Giới thiệu cách thức truy cập dữ liệu

3



SqlCommand sql = new SqlCommand("SELECT * FROM HangHoa", conn);
DataSet ds = new DataSet();
SqlDataAdapter sda = new SqlDataAdapter(sql);
sda.Fill(ds,"HangHoa");
DataTable dt = ds.Tables["HangHoa"];
GridView1.DataSource = dt.DefaultView;
GridView1.DataBind();

Figure 4. Thực hiện chương trình với truy nhập dữ liệu ADO.NET

3 Truy cập dữ liệu XML
Dữ liệu XML ngày càng thông dụng và được phát triển mạnh mẽ hơn trước. Trong các ứng dụng ngày nay, việc
sử dụng XML thay cho dữ liệu truyền thống đang có xu hướng phát triển mạnh mẽ. Tuy nhiên các ứng dụng sử
dụng XML làm cơ sở dữ liệu vẫn còn ở mức quy mô nhỏ và hạn chế.
Ví dụ sử dụng GridView để hiển thị dữ liệu trong một file XML.
Employee.xml
<?xml version="1.0" encoding="utf-8" ?>
<JobDataSet>
<Employees>
<Name>Nguyen Van A</Name>
<Birthday>1988</Birthday>
<Jobs>Student</Jobs>
</Employees>
<Employees>
<Name>Do Nhu B</Name>
<Birthday>1989</Birthday>
<Jobs>Engineer</Jobs>
</Employees>
</JobDataSet>


XML.aspx.cs
DataSet ds = new DataSet();
ds.ReadXml(Server.MapPath("Employee.xml"));
DataTable dt = ds.Tables["Employees"];
GridView1.DataSource = dt.DefaultView;
GridView1.DataBind();

Microsoft Vietnam – DPE Team | Bài số 2: Giới thiệu cách thức truy cập dữ liệu

4


Figure 5. Thực hiện truy cập dữ liệu XML

4 Truy cập dữ liệu với SqlDataSource.
SqlDataSource là một thành phần được giới thiệu từ .NET Framework 2.0. Sử dụng SqlDataSource để truy cập
dữ liệu sẽ không cần phải viết mã lệnh lập trình, chỉ cần khai báo đầy đủ các thuộc tính cần. SqlDataSource chỉ
nên dùng khi không cần sử dụng các truy vấn SQL quá phức tạp để thao tác với cơ sở dữ liệu.
SqlDataSource là một cách thức kết nối dữ liệu dùng ADO.NET provider (System.Data.SqlClient,
System.Data.OracleClient, System.Data.OleDbClient, System.Data.OdbcClient). SqlDataSource cần có một
connectionString thường đặt trong web.config. Tiếp theo của SqlDataSource là một câu lệnh SQL có thể là một
câu lệnh truy vấn SELECT hoặc các câu lệnh liên quan đến thay đổi dữ liệu như: DELETE, INSERT, UPDATE.

Figure 6. Tạo SqlDataSource truy cập cơ sở dữ liệu

Microsoft Vietnam – DPE Team | Bài số 2: Giới thiệu cách thức truy cập dữ liệu

5



Figure 7. Lựa chọn kết nối cơ sở dữ liệu trong SqlDataSource
Lựa chọn table cần hiển thị dữ liệu vào trong SqlDataSource (ví dụ table KhoHang) sau đó thiết lập GridView trỏ
vào SqlDataSource vừa được tạo (Figure 8)

Figure 8. Lựa chọn SqlDataSource1 cho GridView1

Microsoft Vietnam – DPE Team | Bài số 2: Giới thiệu cách thức truy cập dữ liệu

6


Figure 9. Thực hiện truy cập dữ liệu với SqlDataSource

5 Truy cập dữ liệu LINQ
LINQ là một sự sáng tạo mới trong .NET Framework 3.5 (Language Integrate Query) là một tập hợp mở rộng
ngôn ngữ cho phép thực hiện các truy vấn trong ngôn ngữ C# 2008 và Visual Basic 2008. LINQ cho phép select,
filter, sort, group và transform data từ các nguồn data source khác nhau theo một cách chung. LINQ to Objects
thực hiện truy vấn các đối tượng, LINQ to DataSet thực hiện truy vấn DataSet, LINQ to SQL thực hiện truy vấn
đến cơ sở dữ liệu SQL Server mà không phải viết code, LINQ to XML đọc dữ liệu từ định dạng XML.

5.1 LINQ cơ bản
Ví dụ, nếu không dùng LINQ cho, cần lấy tất cả hàng hóa bắt đầu bằng B thì ta có code sau:
DanhMucHangHoa dm = new DanhMucHangHoa();
List<HangHoaChiTiet> dshh = dm.LayDanhMucHangHoa();
List<HangHoaChiTiet> dmhh = new List<HangHoaChiTiet>();
foreach (HangHoaChiTiet hh in dshh)
{
if (hh.HangHoa_TenHang.ToString().StartsWith("B"))
{
dmhh.Add(hh);

}
}

Nếu sử dụng LINQ trong mã lập trình:
List<HangHoaChiTiet> dshh = dm.LayDanhMucHangHoa();
IEnumerable<HangHoaChiTiet> dmhh;
dmhh = from hh in dshh
where hh.HangHoa_TenHang.ToString().StartsWith("B")
select hh;
GridView1.DataSource = dshh;
GridView1.DataBind();

5.1.1 Cách làm việc của LINQ
Để dùng LINQ cần tạo ra một LINQ expression theo đúng quy tắc.
Giá trị trả về của LINQ expression là một đối tượng iterator thực thi giao diện IEnumerable<T>
Khi enumerable đã được gán vào iterator thì LINQ thực hiện.
Microsoft Vietnam – DPE Team | Bài số 2: Giới thiệu cách thức truy cập dữ liệu

7


5.1.2 Cú pháp LINQ
Cú pháp của LINQ tương tự như một cú pháp của SQL nhưng có trật tự khác với SQL.
dmhh = from hh in dshh
…;

Ví dụ:
IEnumerable<HangHoaChiTiet> dmhh = from hh in dshh
select hh.HangHoa_TenHang;


5.1.3 Dùng filter và sorting với LINQ
IEnumerable<HangHoaChiTiet> dmhh;
dmhh = from hh in dshh
where hh.HangHoa_TenHang.ToString().StartsWith("B")
select hh;

hoặc
IEnumerable<HangHoaChiTiet> dmhh;
dmhh = from hh in dshh
orderby hh.HangHoa_TenHang
select hh;

Có thể dùng LINQ như sau (hai câu lệnh sau tương đương nhau):
IEnumerable<HangHoaChiTiet> dmhh = from hh in dshh
select hh;
IEnumerable<HangHoaChiTiet> dmhh = hh.Select(hh => hh);

5.2 LinqDataSource
LinqDataSource là một control có thể thực hiện nhiều tác vụ thêm, sửa, xóa dữ liệu một cách tự động. Với
LinqDataSource không cần viết code cho cả việc cập nhật, sửa đổi dữ liệu cũng giống như SqlDataSource.
Trước hết cần phải tạo ra một Linq to SQL class: File  New  File  LINQ to SQL class (Figure 10)

Microsoft Vietnam – DPE Team | Bài số 2: Giới thiệu cách thức truy cập dữ liệu

8


Figure 10. Tạo ra một LinqSqlDataContext cho phép LinqDataSource truy nhập
Tạo ra mô hình LinqSqlDataContext cho phép Linq lấy dữ liệu từ database DB_TEST.MDF (Figure 11)


Figure 11. Mô hình LinqSqlDataContext
Thiết lập cấu hình cho control Linqdatasource1: Chọn Linqdatasource1  Configure Data Source…  Chọn
LinqSqlDataContext (Figure 12)

Microsoft Vietnam – DPE Team | Bài số 2: Giới thiệu cách thức truy cập dữ liệu

9


Figure 12. LinqDataSource  Configure Data Source…
Thực hiện đưa dữ liệu từ LinqDataSource vào vào GridView (Figure 13)

Figure 13. Chọn DataSource của GridView1 là LinqDataSource1

Microsoft Vietnam – DPE Team | Bài số 2: Giới thiệu cách thức truy cập dữ liệu

10


Figure 14. Thực hiện truy cập dữ liệu với LinqDataSource

6 Truy cập dữ liệu với web services
Web services là một ứng dụng quan trọng trong các ứng dụng. Phần lớn các ứng dụng hiện nay đều sử dụng web
services. Cách đơn giản nhất là thông qua HTTP-POST hoặc HTTP-GET hoặc SOAP. Mục đích của web
services là các ứng dụng khác nhau có thể sử dụng các phương thức web services có sẵn mà không cần phải viết
lại chúng nên sẽ tiết kiệm nhiều thời gian và công sức.
Từ Solution Explorer  Website  chọn Add New Item  Web Service  WebService.asmx (Figure 15)

Figure 15. Tạo web services trong ứng dụng
Mặc định với mỗi web service được tạo ra trong các ứng dụng sử dụng Visual Studio đều có sẵn phương thức

HelloWorld. Phương thức này trả về một giá trị string là “Hello World”. Ta tạo thêm một phương thức
DanhMucHangHoa để truy cập vào dữ liệu đã có trong ứng dụng. Các phương thức trong web services được tạo
Microsoft Vietnam – DPE Team | Bài số 2: Giới thiệu cách thức truy cập dữ liệu

11


như các phương thức bình thường trong ứng dụng nhưng có thêm thuộc tính chỉ định nó là một web services ký
pháp là [WebMethod].
WebService.asmx.cs
[WebMethod]
public DataSet DanhMucHangHoa()
{
SqlConnection conn = new
SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].Connection
String);
DataSet ds = new DataSet();
SqlDataAdapter sda = new SqlDataAdapter("SELECT * FROM HangHoa", conn);
sda.Fill(ds, "HangHoa");
return ds;
}

Dùng một GridView để nhận dữ liệu từ phương thức DanhMucHangHoa của web services để kiểm tra xem dữ
liệu nhận được như thế nào. Từ Website  Add New Item  WebForm  WebServices.aspx
WebServices.aspx.cs
protected void Page_Load(object sender, EventArgs e)
{
WebService vs = new WebService();
GridView1.DataSource = vs.DanhMucHangHoa().Tables["HangHoa"].DefaultView;
GridView1.DataBind();

}

Kết quả khi thực hiện (Figure 16)

Figure 16. Kết nối dữ liệu với web services

7 Truy cập dữ liệu với Ajax
Hiện nay công nghệ AJAX đang được ưa chuộng trong lĩnh vực lập trình web. Thiếu vắng AJAX thì nền tảng
được coi là Web 2.0 sẽ không còn tồn tại. Về mặt công nghệ Ajax cho ta một cái nhìn mới về tương tác giữa web
client và web server. Ajax được coi là chiếc cầu nối giữa client và server, làm tăng tốc độ thực hiện của ứng
dụng, làm ẩn đi cơ chế postback khiến người dùng tưởng như đang làm việc trên một ứng dụng desktop hơn là
một ứng dụng web.

Microsoft Vietnam – DPE Team | Bài số 2: Giới thiệu cách thức truy cập dữ liệu

12


Ajax sử dụng XMLHttpRequest của trình duyệt để gửi một yêu cầu đến web server thay cho Request truyền
thống. Dữ liệu từ web server trả về cho XMLHttpRequest có dạng một tài liệu XML hoặc một tài liệu dạng Text.
Dữ liệu này có thể được xử lý bởi các hàm Javascript trước khi được trả lại cho trình duyệt. Khác với cách gửi
request – response truyền thống thì dữ liệu từ web server trả về cho client được trình duyệt hiển thị ngay mà
không qua một bước xử lý trung gian nào nữa.
Sử dụng các framework AJAX có sẵn để gọi Ajax. Ví dụ ta gọi URL http://localhost:49163/WebSite/Adonet.aspx
bằng ajax của thư viện miễn phí prototype.js như sau (Figure 17)

Figure 17. Sử dụng AJAX
AJAX có 2 dạng dữ liệu được trả về là responseText và responseXML. Tùy từng mục đích sử dụng mà có thể lựa
chọn cách thức lấy dữ liệu về cho hợp lý. Mặt khác, khi nhận được dữ liệu từ AJAX trả về có thể xử lý trước khi
hiển thị dữ liệu cho người dùng cuối.

Kết quả thực hiện Ajax với tham số URL: http://localhost:49163/WebSite/Adonet.aspx (Figure 18)

Microsoft Vietnam – DPE Team | Bài số 2: Giới thiệu cách thức truy cập dữ liệu

13


Figure 18. Gọi AJAX với tham số URL

8 Câu hỏi ôn tập
Câu hỏi: Từ khi có các control SqlDataSource, LinqDataSource thì có cần thiết dùng các đối tượng của
ADO.NET (Connection, Command, Adapter,… ) để truy cập dữ liệu nữa không?
Trả lời: Vẫn cần thiết vì dù các đối tượng SqlDataSource, LinqDataSource rất linh hoạt và có thể đảm đương hầu
hết các chức năng nhưng vẫn chưa thể cung cấp đủ cho nhu cầu người dùng nhất là đối với những thao tác phức
tạp lên cơ sở dữ liệu.

Câu hỏi: Khi cần thực hiện lấy dữ liệu từ một table trong cơ sở dữ liệu sử dụng ADO.NET rồi đưa vào đối tượng
DataTable thì cần các bộ thành phần nào sau đây:
A. Connection, Command, Adapter
B. Connection, DataSet, Adapter
C. Connection, DataTable, DataSet
D. Command, Adapter, DataTable
Trả lời: Đáp án B.

9 Tài liệu tham khảo
/> /> />
Microsoft Vietnam – DPE Team | Bài số 2: Giới thiệu cách thức truy cập dữ liệu

14



×