20_chuong 20_trinh dien du lieu su dung dieu khien datagrid

Upload: nguyen-van-tai

Post on 17-Jul-2015

196 views

Category:

Documents


0 download

TRANSCRIPT

Hng dn lp trnh VB.NET

Chng 20: Trnh din d liu s dng DataGrid

Chng 20: Trnh din d liu s dng iu khin DataGrid--------oOo-------Ni dung tho lun: To i tng DataGrid trn form v s dng hin th cc bn ghi trong csdl Sp xp d liu cc bn ghi theo ct Thay i nh dng v mu sc ca cc trong khung li d liu DataGrid

DataGrid l i tng trnh din d liu rt hiu qu. N c dng khung li cho php tnh din ton b ni dung ca tp d liu DataSet. Ch : i tng DataGrid cho php trnh din d liu theo dng khung li nh excel. Bn khng cn thm cc lnh x l ph vi DataGrid. Tt c d liu c qun l bi DataAdapter v DataSet tng di.

1. S dng DataGrid hin th d liu trong bngTrong phn ny chng ta s dng DataGrid hin th d liu ca bng trong csdl Students.mdb. Ta s in y ni dung khung li bng d liu ca bng dng chui sau thc hin mt s thao tc nh dng, sp xp v ghi li nhng thay i trong DataGrid tr li csdl. Cng ging nh TextBox, bn c th rng buc d liu trong DataSet vo DataGrid. Vic rng buc ny thng qua hai thuc tnh l DataSource v DataMember. Trong bi tp MyDataGridBinding sau chng ta s a ton b ni dung ca bng Instructors c trong DsInstructors1 hin th trong khung li DataGrid. Bi tp MyDataGridBinding: Bn to mi mt Solution v thm vo mt d n cng tn l MyDataGridBinding. Kt ni c s d liu: Nu trong bi trc chng ta hon thnh kt ni vi csdl th by gi trong ca s Server Explorer s c mt kt ni n csdl nhng c thm mt gch kt ni . Nu mun s dng li kt ni ny bn ch vic n vo nt Refresh l xong. Trong bi tp ny ti

chp file csdl Students.mdb vo cng th mc vi d n tin thao tc. Bn chn nt thc hin kt ni n csdl nh bit. Chn csdl m chng ta va chp

vo th mc cha d n. Nhn OK hon thnh kt ni. Bin son: Phm c Lp -1Add: cnt-44-dh, VIMARU

Hng dn lp trnh VB.NET

Chng 20: Trnh din d liu s dng DataGrid

Bn c th xem chi tit cc bng c trong csdl ny bng ca s Server Explorer:

To i tng iu phi DataAdapter: Bn to thm i tng OleDbDataAdapter vo trong form bng cch ko n t ToolBox tab data vo trong form. Khi mt ca s Data Adapter Configuration xut hin. Nhn Next hai ln hin ca s Generate SQL Statements. Ti y bn c th t g cu lnh SQL hay s dng nt nhn Query Builder y mnh dng cch nhp trc tip cu lnh SQL. Bn nhp cu lnh sau: SELECT FROM Extension, PhoneNumber, Instructor, InstructorID Instructors

Pht biu ny s trch rt d liu c bn trng trong bng Instructors. Bn nhn Next xem kt qu ca Winzard. Lc ny, trnh Winzard t to ra cc cu lnh khc l Update (cp nht), Select, Insert (chn), Delete (xa). Nhn Finish kt thc qu trnh xy dng to i tng iu phi DataAdapter c tn OleDbDataAdapter1. To i tng trnh din DataSet: Nhn Form chn n. Chn Data | Generate DataSet t menu lm hin hp thoi Generate DataSet nh bit. Ti New bn nhp vo tn DsInstructors v nh du vo checkBox Add this DataSet To The Designer VS to ra i tng DataSet v a n vo khay h thng nh hnh:

Bin son: Phm c Lp

-2-

Add: cnt-44-dh, VIMARU

Hng dn lp trnh VB.NET

Chng 20: Trnh din d liu s dng DataGrid

Nhn OK VS to i tng DataSet cho bng Instructors trong csdl Students.mdb. Lc ny ca s form c thm cc i tng nh hnh:

Chng ta hon thnh ba bc u ca thao tc vi csdl. By gi chng ta s dng DataGrid trnh by d liu. To i tng DataGrid: Ko form cho kch thc rng ra cha khung li DataGrid vi 4 ct v 10 dng. a iu khin DataGrid trn ToolBox vo trong form. Ko chiu di ca n cho ph hp vi chiu kch thc ca form.

Bin son: Phm c Lp

-3-

Add: cnt-44-dh, VIMARU

Hng dn lp trnh VB.NET

Chng 20: Trnh din d liu s dng DataGrid

To thm mt nt nhn na vo form. t thuc tnh Name l btnLoad v text l Load Data. M Properties ca DataGrid v t thuc tnh Anchor ca n l c Left, Right, Top, Bottom. Giao din ca form lc ny nh hnh:

Tip theo ta s dng thuc tnh DataSource v DataMember rng buc d liu trong DsInstructors1 vo khung li DataGrid. Bn cho hin th cc ty chn ca thuc tnh DataSource trong ca s Properties. Mt chng trnh c th c rt nhiu DataSet nhng ti mt thi im khung li ch c th th hin mt DataSet m thi. Bn chn DsInstructors1 nh hnh H.1. Tip theo bn chn thuc tnh DataMember l Instructors nh hnh H.2. Ngay sau khi bn chn xong hai thuc tnh DataSource v DataMember th khung li s hin th cc ct d liu d cha c dng d liu no hin th. D liu s c a vo khung li khi chng trnh thc thi. Bn chn nt Load Data v t thuc tnh Anchor ca n l Bottom, Left. Lc ny giao din form thit k s nh hnh H.3. Tip theo chng ta cn vit m d liu vo khung li bng phng thc Fill nh bn bit trong chng trc.

Bin son: Phm c Lp

-4-

Add: cnt-44-dh, VIMARU

Hng dn lp trnh VB.NET

Chng 20: Trnh din d liu s dng DataGrid

H.1. Chn DsInstructors1 cho thuc tnh DataSource

H.2. Chn Instructors cho thuc tnh DataMember Bin son: Phm c Lp -5Add: cnt-44-dh, VIMARU

Hng dn lp trnh VB.NET

Chng 20: Trnh din d liu s dng DataGrid

H.3. Ca s form khi thit k xong To th tc btnLoad_Click bng cch double click vo n v nhp on m sau:DsInstructors1.Clear() OleDbDataAdapter1.Fill(DsInstructors1)

Nhn nt Save All lu li cc thay i v chy th chng trnh. Chy chng trnh: Nhn nt F5 chy chng trnh. Nhn nt Load Data np d liu vo trong khung li DataGrid:

Bn c th ko thay i kch thc form sao cho cc thng tin v csdl xut hin y . Bn cng c th sp xp d liu trong khung li bng cch click vo tiu mt ct no . Nhn nt Close ng chng trnh. Bin son: Phm c Lp -6Add: cnt-44-dh, VIMARU

Hng dn lp trnh VB.NET

Chng 20: Trnh din d liu s dng DataGrid

2. nh dng cc li trong DataGridBn c th nh dng cc thnh phn trong DataGrid thng qua thuc tnh ca n lc thit k hay khi thc thi chng trnh.. Chng ta s lm iu ny vi bi tp trn. Bn tr li ca s thit k form v m thuc tnh Properties ca khung li DataGrid. t thuc tnh PreferredColumnWidth l 110 (rng 110 n v o Pixel). Bn t thuc tnh ColumnHeadersVisible l False. Vi thit lp ny th phn tiu ca cc ct s khng hin th. Nhn chn thuc tnh BackColor, chn mu vng nht hin th cho ni dung chui cha trong li to cc dng xen k nhau. t thuc tnh GridLineColor, chn mu xanh. Cn rt nhiu thuc tnh khc bn c th tm hiu thm. Gi bn hy chy chng trnh xem nhng thay i:

3. Cp nht c s d liu tr li bngDataSet ch tin hnh sao chp bng ca csdl ch khng lm thay i ni dung csdl cho n khi c yu cu cp nht bng phng thc UpDate. Cng vi thuc tnh ReadOnly ca DataSet s cho php c thay i hay khng vi csdl. By gi chng ta s tin hnh tm hiu nhng iu . Tr li ca s thit k form v m thuc tnh properties ca DataGrid v thit lp gi tr TRUE i vi thuc tnh ReadOnly cho php c nhng thay i d liu trong khung li. Tin hnh t mt nt nhn na ln form. Thuc tnh nh sau: Name btnUpdate, Text Update. Bin son: Phm c Lp -7Add: cnt-44-dh, VIMARU

Hng dn lp trnh VB.NET

Chng 20: Trnh din d liu s dng DataGrid

Nt nhn Update s hin th khi c nhng thay i trong DataGrid v tin hnh cp nht tr li c s d liu khi ngi dng click vo n. To th tc btnUpdate_Click v nhp ni dung nh sau:Try OleDbDataAdapter1.Update(DsInstructors1) Catch ex As Exception MsgBox(ex.ToString) End Try

Th tc ny s dng phng thc Update ca OleDbDataAdapter1 yu cu cc thay i trong tp DataSet DsInstructors1 tr li bng csdl. Chy chng trnh: Nhn F5 chy chng trnh. Bn thay i ni dung mt ct no hay c th thm mt bn ghi na v click vo nt Update cp nht vo csdl. Sau li click vo nt Load Data xem csdl c thay i g khng.

4. Tng kt chng 20Bn c th lm li nhng v d trn hay t to cho mnh nhng bi khc c lin quan n truy xut csdl. Trong thi gian ti mnh s a n cho cc bn nhng chng trnh x l nng cao vi y phn tch thit k h thng, csdl cng nh m ngun cc bn tham kho. Cc bi ton mnh tng hp c nh: bi ton v my bay, qun l khch sn, qun l sch, phn mm bn hng, . Mi cc bn n c.

Bin son: Phm c Lp

-8-

Add: cnt-44-dh, VIMARU