You are on page 1of 14

Bi s 2

Gii thiu v cach th c truy cp d liu


Table of Contents
1 2 3 4 5 Tng quan ............................................................................................................................... 2 Truy cp d liu ADO.NET .......................................................................................................... 3 Truy cp d liu XML ................................................................................................................. 4 Truy cp d liu vi SqlDataSource. ........................................................................................... 5 Truy cp d liu LINQ................................................................................................................. 7 5.1 LINQ c bn ................................................................................................................................ 7 5.1.1 5.1.2 5.1.3 5.2 6 7 8 9 Cch lm vic ca LINQ ................................................................................................. 7 C php LINQ................................................................................................................. 8 Dng filter v sorting vi LINQ ...................................................................................... 8

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

Truy cp d liu vi web services ............................................................................................ 11 Truy cp d liu vi Ajax ......................................................................................................... 12 Cu hi n tp....................................................................................................................... 14 Ti liu tham kho ................................................................................................................ 14

Tng quan

Phn ln cc ng dng hin nay u s dng c s d liu. C nhiu cch thc truy cp d liu khc nhau trong cc cng ngh ca Microsoft nh ADO, RDO, DAO, ODBC. Tuy nhin t khi .NET Framework ra i th cng ngh ADO.NET c tch hp, ADO.NET cha cc lp cho php cc ng dng connect data sources (kt ni vi cc ngun d liu), execute commands (thc hin cc lnh), manage disconnected data (qun l d liu ngt kt ni). Vi ADO.NET ngi lp trnh c th vit t m lnh thao tc c s d liu hn so vi cc cng ngh trc trong cc ng dng client-server hoc cc ng dng trn desktop. Mt khc, trong ASP.NET t phin bn .NET Framework 2.0 tr ln c thm cc thao tc vi c s d liu m khng s dng ADO.NET nh SqlDataSource, LINQ hoc Profiles. Ngoi ra cc ng dng truy cp d liu ca .NET Framework cn c th truy nhp vo cc ngun d liu ngoi nh File, Stream, XML, Ajax, web services, WCF, data services. Trong hng dn ny, ta s to ra mt Web site project thao tc vi c s d liu. S dng Visual Studio 2008 to mt project Website. Trong to mt database tn l DB_TEST.MDF trong folder App_Data (Figure 1)

Figure 1. To database DB_TEST trong ng dng Website S dng database DB_TEST to 2 table HangHoa v KhoHang (Figure 2, Figure 3)

Microsoft Vietnam DPE Team | Bi s 2: Gii thiu cch thc truy cp d liu

Figure 2. Table HangHoa trong database DB_TEST

Figure 3. Table KhoHang trong database DB_TEST To mt chui connection trong file cu hnh web.config t tn l ConnectionString cho php truy nhp vo c s d liu DB_TEST.MDF web.config
<configuration> <connectionStrings> <add name="ConnectionString" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\DB_TEST.mdf;Integrated Security=True;User Instance=True" providerName="System.Data.SqlClient" /> </connectionStrings> // cc thit lp cu hnh khc </configuration>

2 Truy cp d liu ADO.NET


ADO.NET Data Providers cho php truy nhp vo mt c s d liu c th, thc hin cc cu lnh SQL v nhn d liu. Data provider l chic cu ni gia ng dng v ngun d liu. Lp ADO.NET Data Provider bao gm cc thnh phn: Connection: Thc hin connect ti ngun c s d liu; Command: Thc hin mt cu lnh SQL hoc mt store procedures; DataReader: Ch c v nhn d liu t mt truy vn; DataAdapter thc hin 2 nhim v: in d liu nhn c vo mt DataSet, c th ghi nhn s thay i d liu trong DataSet. Mt v d s dng ADO.NET vi i tng hin th d liu l GridView. To mt webform t tn l Adonet.aspx, trong webform to mt GridView t tn l GridView1. M lnh thc hin kt ni d liu: Adonet.aspx.cs
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].Connection String);

Microsoft Vietnam DPE Team | Bi s 2: Gii thiu cch thc truy cp d liu

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. Thc hin chng trnh vi truy nhp d liu ADO.NET

3 Truy cp d liu XML


D liu XML ngy cng thng dng v c pht trin mnh m hn trc. Trong cc ng dng ngy nay, vic s dng XML thay cho d liu truyn thng ang c xu hng pht trin mnh m. Tuy nhin cc ng dng s dng XML lm c s d liu vn cn mc quy m nh v hn ch. V d s dng GridView hin th d liu trong mt 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 | Bi s 2: Gii thiu cch thc truy cp d liu

Figure 5. Thc hin truy cp d liu XML

4 Truy cp d liu vi SqlDataSource.


SqlDataSource l mt thnh phn c gii thiu t .NET Framework 2.0. S dng SqlDataSource truy cp d liu s khng cn phi vit m lnh lp trnh, ch cn khai bo y cc thuc tnh cn. SqlDataSource ch nn dng khi khng cn s dng cc truy vn SQL qu phc tp thao tc vi c s d liu. SqlDataSource l mt cch thc kt ni d liu dng ADO.NET provider (System.Data.SqlClient, System.Data.OracleClient, System.Data.OleDbClient, System.Data.OdbcClient). SqlDataSource cn c mt connectionString thng t trong web.config. Tip theo ca SqlDataSource l mt cu lnh SQL c th l mt cu lnh truy vn SELECT hoc cc cu lnh lin quan n thay i d liu nh: DELETE, INSERT, UPDATE.

Figure 6. To SqlDataSource truy cp c s d liu

Microsoft Vietnam DPE Team | Bi s 2: Gii thiu cch thc truy cp d liu

Figure 7. La chn kt ni c s d liu trong SqlDataSource La chn table cn hin th d liu vo trong SqlDataSource (v d table KhoHang) sau thit lp GridView tr vo SqlDataSource va c to (Figure 8)

Figure 8. La chn SqlDataSource1 cho GridView1

Microsoft Vietnam DPE Team | Bi s 2: Gii thiu cch thc truy cp d liu

Figure 9. Thc hin truy cp d liu vi SqlDataSource

5 Truy cp d liu LINQ


LINQ l mt s sng to mi trong .NET Framework 3.5 (Language Integrate Query) l mt tp hp m rng ngn ng cho php thc hin cc truy vn trong ngn ng C# 2008 v Visual Basic 2008. LINQ cho php select, filter, sort, group v transform data t cc ngun data source khc nhau theo mt cch chung. LINQ to Objects thc hin truy vn cc i tng, LINQ to DataSet thc hin truy vn DataSet, LINQ to SQL thc hin truy vn n c s d liu SQL Server m khng phi vit code, LINQ to XML c d liu t nh dng XML.

5.1 LINQ c bn
V d, nu khng dng LINQ cho, cn ly tt c hng ha bt u bng 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); } }

Nu s dng LINQ trong m lp trnh:


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 Cch lm vic ca LINQ dng LINQ cn to ra mt LINQ expression theo ng quy tc. Gi tr tr v ca LINQ expression l mt i tng iterator thc thi giao din IEnumerable<T> Khi enumerable c gn vo iterator th LINQ thc hin. Microsoft Vietnam DPE Team | Bi s 2: Gii thiu cch thc truy cp d liu 7

5.1.2 C php LINQ C php ca LINQ tng t nh mt c php ca SQL nhng c trt t khc vi SQL.
dmhh = from hh in dshh ;

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

5.1.3 Dng filter v sorting vi LINQ


IEnumerable<HangHoaChiTiet> dmhh; dmhh = from hh in dshh where hh.HangHoa_TenHang.ToString().StartsWith("B") select hh;

hoc
IEnumerable<HangHoaChiTiet> dmhh; dmhh = from hh in dshh orderby hh.HangHoa_TenHang select hh;

C th dng LINQ nh sau (hai cu lnh sau tng ng nhau):


IEnumerable<HangHoaChiTiet> dmhh = from hh in dshh select hh; IEnumerable<HangHoaChiTiet> dmhh = hh.Select(hh => hh);

5.2 LinqDataSource
LinqDataSource l mt control c th thc hin nhiu tc v thm, sa, xa d liu mt cch t ng. Vi LinqDataSource khng cn vit code cho c vic cp nht, sa i d liu cng ging nh SqlDataSource. Trc ht cn phi to ra mt Linq to SQL class: File New File LINQ to SQL class (Figure 10)

Microsoft Vietnam DPE Team | Bi s 2: Gii thiu cch thc truy cp d liu

Figure 10. To ra mt LinqSqlDataContext cho php LinqDataSource truy nhp To ra m hnh LinqSqlDataContext cho php Linq ly d liu t database DB_TEST.MDF (Figure 11)

Figure 11. M hnh LinqSqlDataContext Thit lp cu hnh cho control Linqdatasource1: Chn Linqdatasource1 Configure Data Source Chn LinqSqlDataContext (Figure 12)

Microsoft Vietnam DPE Team | Bi s 2: Gii thiu cch thc truy cp d liu

Figure 12. LinqDataSource Configure Data Source Thc hin a d liu t LinqDataSource vo vo GridView (Figure 13)

Figure 13. Chn DataSource ca GridView1 l LinqDataSource1

Microsoft Vietnam DPE Team | Bi s 2: Gii thiu cch thc truy cp d liu

10

Figure 14. Thc hin truy cp d liu vi LinqDataSource

6 Truy cp d liu vi web services


Web services l mt ng dng quan trng trong cc ng dng. Phn ln cc ng dng hin nay u s dng web services. Cch n gin nht l thng qua HTTP-POST hoc HTTP-GET hoc SOAP. Mc ch ca web services l cc ng dng khc nhau c th s dng cc phng thc web services c sn m khng cn phi vit li chng nn s tit kim nhiu thi gian v cng sc. T Solution Explorer Website chn Add New Item Web Service WebService.asmx (Figure 15)

Figure 15. To web services trong ng dng Mc nh vi mi web service c to ra trong cc ng dng s dng Visual Studio u c sn phng thc HelloWorld. Phng thc ny tr v mt gi tr string l Hello World. Ta to thm mt phng thc DanhMucHangHoa truy cp vo d liu c trong ng dng. Cc phng thc trong web services c to Microsoft Vietnam DPE Team | Bi s 2: Gii thiu cch thc truy cp d liu 11

nh cc phng thc bnh thng trong ng dng nhng c thm thuc tnh ch nh n l mt web services k php 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; }

Dng mt GridView nhn d liu t phng thc DanhMucHangHoa ca web services kim tra xem d liu nhn c nh th no. 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(); }

Kt qu khi thc hin (Figure 16)

Figure 16. Kt ni d liu vi web services

7 Truy cp d liu vi Ajax


Hin nay cng ngh AJAX ang c a chung trong lnh vc lp trnh web. Thiu vng AJAX th nn tng c coi l Web 2.0 s khng cn tn ti. V mt cng ngh Ajax cho ta mt ci nhn mi v tng tc gia web client v web server. Ajax c coi l chic cu ni gia client v server, lm tng tc thc hin ca ng dng, lm n i c ch postback khin ngi dng tng nh ang lm vic trn mt ng dng desktop hn l mt ng dng web.

Microsoft Vietnam DPE Team | Bi s 2: Gii thiu cch thc truy cp d liu

12

Ajax s dng XMLHttpRequest ca trnh duyt gi mt yu cu n web server thay cho Request truyn thng. D liu t web server tr v cho XMLHttpRequest c dng mt ti liu XML hoc mt ti liu dng Text. D liu ny c th c x l bi cc hm Javascript trc khi c tr li cho trnh duyt. Khc vi cch gi request response truyn thng th d liu t web server tr v cho client c trnh duyt hin th ngay m khng qua mt bc x l trung gian no na. S dng cc framework AJAX c sn gi Ajax. V d ta gi URL http://localhost:49163/WebSite/Adonet.aspx bng ajax ca th vin min ph prototype.js nh sau (Figure 17)

Figure 17. S dng AJAX AJAX c 2 dng d liu c tr v l responseText v responseXML. Ty tng mc ch s dng m c th la chn cch thc ly d liu v cho hp l. Mt khc, khi nhn c d liu t AJAX tr v c th x l trc khi hin th d liu cho ngi dng cui. Kt qu thc hin Ajax vi tham s URL: http://localhost:49163/WebSite/Adonet.aspx (Figure 18)

Microsoft Vietnam DPE Team | Bi s 2: Gii thiu cch thc truy cp d liu

13

Figure 18. Gi AJAX vi tham s URL

8 Cu hi n tp
Cu hi: T khi c cc control SqlDataSource, LinqDataSource th c cn thit dng cc i tng ca ADO.NET (Connection, Command, Adapter, ) truy cp d liu na khng? Tr li: Vn cn thit v d cc i tng SqlDataSource, LinqDataSource rt linh hot v c th m ng hu ht cc chc nng nhng vn cha th cung cp cho nhu cu ngi dng nht l i vi nhng thao tc phc tp ln c s d liu.

Cu hi: Khi cn thc hin ly d liu t mt table trong c s d liu s dng ADO.NET ri a vo i tng DataTable th cn cc b thnh phn no sau y: A. Connection, Command, Adapter B. Connection, DataSet, Adapter C. Connection, DataTable, DataSet D. Command, Adapter, DataTable Tr li: p n B.

9 Ti liu tham kho


http://www.codegod.de/webappcodegod http://www.asp.net/ http://www.linqhelp.com/

Microsoft Vietnam DPE Team | Bi s 2: Gii thiu cch thc truy cp d liu

14

You might also like