giới thiệu về visual basic và ado

46
Giới thiệu về Giới thiệu về Visual Basic và Visual Basic và ADO ADO Nguyễn Văn Khiết Nguyễn Văn Khiết

Upload: saburo

Post on 16-Jan-2016

45 views

Category:

Documents


0 download

DESCRIPTION

Giới thiệu về Visual Basic và ADO. Nguyễn Văn Khiết. Noäi dung. Giôùi thieäu veà Visual Basic Moâi tröôøng laøm vieäc Caùc kieåu döõ lieäu cô sôû Cuù phaùp caùc leänh Giôùi thieäu veà ADO Moâ hình ñoái töôïng Caùc ví duï söû duïng. Giôùi thieäu veà Visual Basic. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Giới thiệu về Visual Basic và ADO

Giới thiệu về Visual Giới thiệu về Visual Basic và ADOBasic và ADO

Nguyễn Văn KhiếtNguyễn Văn Khiết

Page 2: Giới thiệu về Visual Basic và ADO

Noäi dungNoäi dung

Giôùi thieäu veà Visual BasicGiôùi thieäu veà Visual Basic Moâi tröôøng laøm vieäcMoâi tröôøng laøm vieäc Caùc kieåu döõ lieäu cô sôûCaùc kieåu döõ lieäu cô sôû Cuù phaùp caùc leänhCuù phaùp caùc leänh

Giôùi thieäu veà ADOGiôùi thieäu veà ADO Moâ hình ñoái töôïngMoâ hình ñoái töôïng Caùc ví duï söû duïng.Caùc ví duï söû duïng.

Page 3: Giới thiệu về Visual Basic và ADO

Giôùi thieäu veà Visual Giôùi thieäu veà Visual BasicBasic

Maøn hình thieát keá formMaøn hình thieát keá form

Page 4: Giới thiệu về Visual Basic và ADO

Giôùi thieäu veà Visual Giôùi thieäu veà Visual BasicBasic

Xöû lyù caùc söï kieän treân formXöû lyù caùc söï kieän treân form

Page 5: Giới thiệu về Visual Basic và ADO

VB: Caùc kieåu döõ lieäu VB: Caùc kieåu döõ lieäu cô baûncô baûn

ByteByte Integer LongLong CurrencyCurrency DateDate StringString BooleanBoolean SingleSingle DoubleDouble

Page 6: Giới thiệu về Visual Basic và ADO

Cuù phaùp caùc leänhCuù phaùp caùc leänh

Khai báo biến Dim TênBiến As KiểuDữLiệu VD : Dim i as Integer

Dim str as StringDim b as Boolean

Dim cn as ADODB.ConnectionDim lb as ListBox

Page 7: Giới thiệu về Visual Basic và ADO

Cuù phaùp caùc leänhCuù phaùp caùc leänh

Leänh gaùn Cuù phaùp :

Gaùn caùc kieåu döõ lieäu cô sôû Bieán = giaùtrò

Gaùn caùc ñoái töôïngSet bieán = ñoái töôïng

Ví duï :a = 100Set cn = new ADODB.Recordset

Page 8: Giới thiệu về Visual Basic và ADO

Cuù phaùp caùc leänhCuù phaùp caùc leänh

Leänh if Cuù phaùp :

If điều_kiện Then Lệnh If điều_kiện Then

… End if If điều_kiện Then

…Else

… End if

Page 9: Giới thiệu về Visual Basic và ADO

Cuù phaùp caùc leänhCuù phaùp caùc leänh

Leänh Select Case Cuù phaùp :Select Case Biến

Case giá_trị_1(Các) lệnh

Case giá_trị_2(Các) lệnh

Case Else(Các) lệnh

End Select

Page 10: Giới thiệu về Visual Basic và ADO

Cuù phaùp caùc leänhCuù phaùp caùc leänh

Leänh For Cuù phaùp :For bien=Biên_dưới To Biên_trên [step k]

(Các) lệnh

Next

Page 11: Giới thiệu về Visual Basic và ADO

Cuù phaùp caùc leänhCuù phaùp caùc leänh

Leänh While Cuù phaùp :While điều_kiện_lặp

(Các) lệnhWend

Do While điều_kiện_lặp(Các) lệnh

Loop

Page 12: Giới thiệu về Visual Basic và ADO

ADOADO

Browser / Application

ADO

OLE DB

ODBC

Relational Data

Non-Relational

Data

Page 13: Giới thiệu về Visual Basic và ADO

ADO (ActiveX Data ADO (ActiveX Data Object)Object)

Ñeå söû duïng Ñeå söû duïng ADO trong ADO trong Visual Basic, Visual Basic, tham chieáu tham chieáu ñeán thö vieän:ñeán thö vieän: Trong Visual Basic, choïn menu Trong Visual Basic, choïn menu

Project,Project, ReferencesReferences ChoïnChoïn Microsoft ActiveX Data Microsoft ActiveX Data

Objects 2.6 LibraryObjects 2.6 Library . .

Page 14: Giới thiệu về Visual Basic và ADO

ADO Object ModelADO Object Model

ConnectionConnection RecordsetRecordset CommandCommand ParameterParameter FieldField ……

Page 15: Giới thiệu về Visual Basic và ADO

ADO Object ModelADO Object Model

Ñoái töôïng ConnectionÑoái töôïng Connection Thieát laäp keát noái ñeán CSDL.Thieát laäp keát noái ñeán CSDL. Xaùc ñònh OLE DB provider Xaùc ñònh OLE DB provider Thöïc hieän 1 caâu query Thöïc hieän 1 caâu query Quaûn lyù transactions treân keát noái Quaûn lyù transactions treân keát noái

ñang môû. ñang môû.

Page 16: Giới thiệu về Visual Basic và ADO

Connection ObjectConnection Object

Ví duï : Môû moät connectionVí duï : Môû moät connection

(kết nối tới MS Access : hs.mdb)(kết nối tới MS Access : hs.mdb)

Dim cn As New ADODB.Connection Dim cn As New ADODB.Connection

cn.ConnectionString = "Provider = cn.ConnectionString = "Provider = Microsoft.Jet.OLEDB.4.0; Data Microsoft.Jet.OLEDB.4.0; Data Source = hs.mdb"Source = hs.mdb"

cn.Opencn.Open

Page 17: Giới thiệu về Visual Basic và ADO

Connection ObjectConnection Object

Ví duï : Môû moät connectionVí duï : Môû moät connection

(kết nối tới MS SQLServer : pubs)(kết nối tới MS SQLServer : pubs)

Dim cn As New ADODB.Connection Dim cn As New ADODB.Connection

cn.ConnectionString = “Provider = cn.ConnectionString = “Provider = SQLOLEDB.1;Data SQLOLEDB.1;Data Source=SELAB106;User Source=SELAB106;User ID=sa;Initial Catalog=pubs"ID=sa;Initial Catalog=pubs"

cn.Opencn.Open

Page 18: Giới thiệu về Visual Basic và ADO

Connection ObjectConnection Object

Ví duï : Thöïc hieän caâu leänh SQLVí duï : Thöïc hieän caâu leänh SQL

‘ ‘ insert statementinsert statement

Dim strSQL as StringDim strSQL as String

strSQL = strSQL = "insert into employee values"insert into employee values('ARD25437A','John','P','Baxter',7, 100, ('ARD25437A','John','P','Baxter',7, 100, 0877, '1989-11-11T00:00:00 ')"0877, '1989-11-11T00:00:00 ')"

cn. Execute strSQLcn. Execute strSQL

Page 19: Giới thiệu về Visual Basic và ADO

Connection ObjectConnection Object

Ví duï : Thöïc hieän caâu leänh SQLVí duï : Thöïc hieän caâu leänh SQL

‘ ‘ update statementupdate statement

Dim strSQL as StringDim strSQL as String

strSQL = “strSQL = “UPDATE UPDATE employee SET employee SET job_id=11 WHERE fname='Pedro’ "job_id=11 WHERE fname='Pedro’ "

cn. Execute strSQLcn. Execute strSQL

Page 20: Giới thiệu về Visual Basic và ADO

Connection ObjectConnection Object

Ví duï : Thöïc hieän caâu leänh SQLVí duï : Thöïc hieän caâu leänh SQL

‘ ‘ delete statementdelete statement

Dim strSQL as StringDim strSQL as String

strSQL = “DELETEstrSQL = “DELETE from employee from employee WHERE fname='Pedro’ "WHERE fname='Pedro’ "

cn. Execute strSQLcn. Execute strSQL

Page 21: Giới thiệu về Visual Basic và ADO

Recordset ObjectRecordset Object

RecordsetRecordset object provides methods object provides methods for manipulating result sets .for manipulating result sets .

RecordsetRecordset object allows you to add, object allows you to add, update, delete, and scroll through update, delete, and scroll through rows in the recordset. rows in the recordset.

Page 22: Giới thiệu về Visual Basic và ADO

Recordset ObjectRecordset Object

Caùc caùch ñeå laáy ñöôïc moät Caùc caùch ñeå laáy ñöôïc moät RecordsetRecordset Execute connectionExecute connection Execute commandExecute command Open Recordset.Open Recordset.

Page 23: Giới thiệu về Visual Basic và ADO

Recordset ObjectRecordset Object

Open recordsetOpen recordset

Open strSQL, connection, opentype, Open strSQL, connection, opentype, locktypelocktype

Page 24: Giới thiệu về Visual Basic và ADO

Recordset ObjectRecordset Object Open TypeOpen Type

adOpenForwardOnlyadOpenForwardOnly adOpenStaticadOpenStatic adOpenKeysetadOpenKeyset adOpenDynamicadOpenDynamic

Lock typeLock type adLockReadOnlyadLockReadOnly adLockOptimisticadLockOptimistic adLockPessimisticadLockPessimistic adLockBatchOptimisticadLockBatchOptimistic

Page 25: Giới thiệu về Visual Basic và ADO

Recordset ObjectRecordset Object

VDVDDim rs as ADODB.RecordsetDim rs as ADODB.Recordset

Set rs = New ADODB.RecordsetSet rs = New ADODB.Recordset

rs.Open “Select * from employee”, cn, adOpenStatic, rs.Open “Select * from employee”, cn, adOpenStatic, adLockOptimisticadLockOptimistic

……

Set rs = NothingSet rs = Nothing

Page 26: Giới thiệu về Visual Basic và ADO

Recordset ObjectRecordset Object

Di chuyeån treân RecordsetDi chuyeån treân Recordset MoveFirstMoveFirst MoveNextMoveNext MovePreviousMovePrevious MoveLastMoveLast MoveMove

Page 27: Giới thiệu về Visual Basic và ADO

Recordset ObjectRecordset Object

Duyeät qua RecordsetDuyeät qua RecordsetDim rs as ADODB.RecordsetDim rs as ADODB.RecordsetSet rs = New ADODB.RecordsetSet rs = New ADODB.Recordsetrs.Open “Select * from employee”, cn, adOpenStatic, rs.Open “Select * from employee”, cn, adOpenStatic,

adLockOptimisticadLockOptimisticIf rs.RecordCount>0 thenIf rs.RecordCount>0 then

rs.MoveFirstrs.MoveFirstWhile not rs.EOFWhile not rs.EOF

……rs.MoveNextrs.MoveNext

WEndWEndEnd ifEnd ifSet rs = NothingSet rs = Nothing

Page 28: Giới thiệu về Visual Basic và ADO

VB & ADO : Code VB & ADO : Code exampleexample

Database : Microsoft Access 2000Database : Microsoft Access 2000 Data Source : hs.mdbData Source : hs.mdb Table : HOCSINHTable : HOCSINH

Page 29: Giới thiệu về Visual Basic và ADO

Ví duï 1Ví duï 1

Nhaäp thoâng tin Nhaäp thoâng tin hoïc sinh.hoïc sinh.

Duøng phöông Duøng phöông thöùc AddNew thöùc AddNew cuûa Recordsetcuûa Recordset

Page 30: Giới thiệu về Visual Basic và ADO

Ví duï 1Ví duï 1 Xöû lyù nuùt GhiXöû lyù nuùt Ghi Dim cn As New ADODB.ConnectionDim cn As New ADODB.Connection cn.ConnectionString = "Provider = Microsoft.Jet.OLEDB.4.0; Data Source =" & cn.ConnectionString = "Provider = Microsoft.Jet.OLEDB.4.0; Data Source =" &

App.Path & "\hs.mdb"App.Path & "\hs.mdb" cn.Opencn.Open Dim rs As New ADODB.RecordsetDim rs As New ADODB.Recordset rs.Open "Select * from HOCSINH", cn, adOpenStatic, adLockOptimisticrs.Open "Select * from HOCSINH", cn, adOpenStatic, adLockOptimistic rs.AddNewrs.AddNew rs!TenHS = txtTenHS.Textrs!TenHS = txtTenHS.Text rs!NgaySinh = txtNgaySinh.Textrs!NgaySinh = txtNgaySinh.Text rs("Noisinh") = txtNoiSinh.Textrs("Noisinh") = txtNoiSinh.Text rs("DiaChi") = txtDiaChi.Textrs("DiaChi") = txtDiaChi.Text rs.Fields("GhiChu") = txtGhiChu.Textrs.Fields("GhiChu") = txtGhiChu.Text rs.Updaters.Update Set rs = NothingSet rs = Nothing Set cn = NothingSet cn = Nothing

Page 31: Giới thiệu về Visual Basic và ADO

Ví duï 2Ví duï 2

Nhaäp thoâng tin Nhaäp thoâng tin hoïc sinh.hoïc sinh.

Duøng phöông Duøng phöông thöùc Execute thöùc Execute cuûa Connection.cuûa Connection.

Page 32: Giới thiệu về Visual Basic và ADO

Ví duï 2Ví duï 2 Xöû lyù nuùt GhiXöû lyù nuùt Ghi

Dim cn As New ADODB.ConnectionDim cn As New ADODB.Connection

cn.ConnectionString = "Provider = Microsoft.Jet.OLEDB.4.0; Data Source =" & cn.ConnectionString = "Provider = Microsoft.Jet.OLEDB.4.0; Data Source =" & App.Path & "\hs.mdb"App.Path & "\hs.mdb"

cn.Opencn.Open

Dim strSQL As StringDim strSQL As String

strSQL = "Insert into HOCSINH(TenHS,NgaySinh,NoiSinh,DiaChi,GhiChu) strSQL = "Insert into HOCSINH(TenHS,NgaySinh,NoiSinh,DiaChi,GhiChu) values ('" & txtTenHS.Text & "','" & txtNgaySinh.Text & "','" & values ('" & txtTenHS.Text & "','" & txtNgaySinh.Text & "','" & txtNoiSinh.Text & "','" & txtDiaChi.Text & "','" & txtGhiChu.Text & "')"txtNoiSinh.Text & "','" & txtDiaChi.Text & "','" & txtGhiChu.Text & "')"

cn.Execute strSQLcn.Execute strSQL

Set cn = NothingSet cn = Nothing

Page 33: Giới thiệu về Visual Basic và ADO

Ví duï 3Ví duï 3

Laáy danh saùch Laáy danh saùch hoïc sinh.hoïc sinh.

Duøng Duøng MSHFlexGrid ñeå MSHFlexGrid ñeå hieån thòhieån thò

Page 34: Giới thiệu về Visual Basic và ADO

Ví duï 3Ví duï 3 Choïn söû duïng Microsoft Hierrachical FlexGrid Choïn söû duïng Microsoft Hierrachical FlexGrid

Control.Control. Choïn Project | Components Choïn Project | Components

Page 35: Giới thiệu về Visual Basic và ADO

Ví duï 3Ví duï 3

Khôûi taïo ConnectionKhôûi taïo Connection

Public Sub KhoiTaoKetNoi()Public Sub KhoiTaoKetNoi()

cn.ConnectionString = "Provider = cn.ConnectionString = "Provider = Microsoft.Jet.OLEDB.4.0; Data Source Microsoft.Jet.OLEDB.4.0; Data Source =" & App.Path & "\hs.mdb"=" & App.Path & "\hs.mdb"

cn.Opencn.Open

End SubEnd Sub

Page 36: Giới thiệu về Visual Basic và ADO

Ví duï 3Ví duï 3 Hieån thò tieâu ñeàHieån thò tieâu ñeà

Public Sub HienThiTieuDe()Public Sub HienThiTieuDe() gridHS.Cols = 7gridHS.Cols = 7 gridHS.Rows = 2gridHS.Rows = 2 gridHS.TextMatrix(0, 0) = "STT"gridHS.TextMatrix(0, 0) = "STT" gridHS.TextMatrix(0, 1) = "MaHS"gridHS.TextMatrix(0, 1) = "MaHS" gridHS.TextMatrix(0, 2) = "Teân HS"gridHS.TextMatrix(0, 2) = "Teân HS" gridHS.TextMatrix(0, 3) = "Ngaøy sinh"gridHS.TextMatrix(0, 3) = "Ngaøy sinh" gridHS.TextMatrix(0, 4) = "Noi sinh"gridHS.TextMatrix(0, 4) = "Noi sinh" gridHS.TextMatrix(0, 5) = "Ñòa chæ"gridHS.TextMatrix(0, 5) = "Ñòa chæ" gridHS.TextMatrix(0, 6) = "Ghi chuù"gridHS.TextMatrix(0, 6) = "Ghi chuù" gridHS.AllowUserResizing = flexResizeBothgridHS.AllowUserResizing = flexResizeBothEnd SubEnd Sub

Page 37: Giới thiệu về Visual Basic và ADO

Ví duï 3Ví duï 3 Laáy döõ lieäuLaáy döõ lieäuPublic Sub LayDuLieu()Public Sub LayDuLieu() Dim rs As New ADODB.RecordsetDim rs As New ADODB.Recordset rs.Open "Select * from HOCSINH", cn, adOpenStatic, adLockOptimisticrs.Open "Select * from HOCSINH", cn, adOpenStatic, adLockOptimistic If rs.RecordCount > 0 ThenIf rs.RecordCount > 0 Then gridHS.Rows = rs.RecordCount + 1gridHS.Rows = rs.RecordCount + 1 rs.MoveFirstrs.MoveFirst Dim i As IntegerDim i As Integer For i = 1 To rs.RecordCountFor i = 1 To rs.RecordCount gridHS.TextMatrix(i, 0) = igridHS.TextMatrix(i, 0) = i gridHS.TextMatrix(i, 1) = rs!MaHSgridHS.TextMatrix(i, 1) = rs!MaHS gridHS.TextMatrix(i, 2) = rs!TenHSgridHS.TextMatrix(i, 2) = rs!TenHS gridHS.TextMatrix(i, 3) = rs!NgaySinhgridHS.TextMatrix(i, 3) = rs!NgaySinh gridHS.TextMatrix(i, 4) = rs!NoiSinhgridHS.TextMatrix(i, 4) = rs!NoiSinh gridHS.TextMatrix(i, 5) = rs!DiaChigridHS.TextMatrix(i, 5) = rs!DiaChi gridHS.TextMatrix(i, 6) = rs!GhiChugridHS.TextMatrix(i, 6) = rs!GhiChu rs.MoveNextrs.MoveNext NextNext End IfEnd If

Set rs = NothingSet rs = NothingEnd SubEnd Sub

Page 38: Giới thiệu về Visual Basic và ADO

Ví duï 3Ví duï 3

Goïi 3 haøm treân:Goïi 3 haøm treân:Private Sub Form_Load()Private Sub Form_Load()

KhoiTaoKetNoiKhoiTaoKetNoi

HienThiTieuDeHienThiTieuDe

LayDuLieuLayDuLieu

End SubEnd Sub

Page 39: Giới thiệu về Visual Basic và ADO

Ví duï 4Ví duï 4

Laáy danh Laáy danh saùch hoïc sinh.saùch hoïc sinh.

Duøng ListView Duøng ListView ñeå hieån thòñeå hieån thò

Page 40: Giới thiệu về Visual Basic và ADO

Ví duï 4Ví duï 4 Choïn söû duïng Microsoft Windows Common Control Choïn söû duïng Microsoft Windows Common Control

6.0.6.0. Choïn Project | Components Choïn Project | Components

Page 41: Giới thiệu về Visual Basic và ADO

Ví duï 4Ví duï 4

Khôûi taïo ConnectionKhôûi taïo Connection

Public Sub KhoiTaoKetNoi()Public Sub KhoiTaoKetNoi()

cn.ConnectionString = "Provider = cn.ConnectionString = "Provider = Microsoft.Jet.OLEDB.4.0; Data Source Microsoft.Jet.OLEDB.4.0; Data Source =" & App.Path & "\hs.mdb"=" & App.Path & "\hs.mdb"

cn.Opencn.Open

End SubEnd Sub

Page 42: Giới thiệu về Visual Basic và ADO

Ví duï 4Ví duï 4 Hieån thò tieâu ñeàHieån thò tieâu ñeà

Public Sub HienThiTieuDe()Public Sub HienThiTieuDe()

lvHS.View = lvwReportlvHS.View = lvwReport lvHS.ColumnHeaders.Add , , "STT"lvHS.ColumnHeaders.Add , , "STT" lvHS.ColumnHeaders.Add , , "MaHS"lvHS.ColumnHeaders.Add , , "MaHS" lvHS.ColumnHeaders.Add , , "Teân HS"lvHS.ColumnHeaders.Add , , "Teân HS" lvHS.ColumnHeaders.Add , , "Ngaøy sinh"lvHS.ColumnHeaders.Add , , "Ngaøy sinh" lvHS.ColumnHeaders.Add , , "Nôi sinh"lvHS.ColumnHeaders.Add , , "Nôi sinh" lvHS.ColumnHeaders.Add , , "Ñòa chæ"lvHS.ColumnHeaders.Add , , "Ñòa chæ" lvHS.ColumnHeaders.Add , , "Ghi chuù"lvHS.ColumnHeaders.Add , , "Ghi chuù"End SubEnd Sub

Page 43: Giới thiệu về Visual Basic và ADO

Ví duï 4Ví duï 4 Laáy döõ lieäuLaáy döõ lieäu

Public Sub LayDuLieu()Public Sub LayDuLieu() Dim rs As New ADODB.RecordsetDim rs As New ADODB.Recordset rs.Open "Select * from HOCSINH", cn, adOpenStatic, adLockOptimisticrs.Open "Select * from HOCSINH", cn, adOpenStatic, adLockOptimistic If rs.RecordCount > 0 ThenIf rs.RecordCount > 0 Then rs.MoveFirstrs.MoveFirst Dim i As IntegerDim i As Integer Dim li As ListItemDim li As ListItem For i = 1 To rs.RecordCountFor i = 1 To rs.RecordCount Set li = lvHS.ListItems.Add(, , i)Set li = lvHS.ListItems.Add(, , i) li.SubItems(1) = rs!MaHSli.SubItems(1) = rs!MaHS li.SubItems(2) = rs!TenHSli.SubItems(2) = rs!TenHS li.SubItems(3) = rs!NgaySinhli.SubItems(3) = rs!NgaySinh li.SubItems(4) = rs("NoiSinh")li.SubItems(4) = rs("NoiSinh") li.SubItems(5) = rs("DiaChi")li.SubItems(5) = rs("DiaChi") li.SubItems(6) = rs.Fields("Ghichu")li.SubItems(6) = rs.Fields("Ghichu") rs.MoveNextrs.MoveNext NextNext End IfEnd If Set rs = NothingSet rs = NothingEnd SubEnd Sub

Page 44: Giới thiệu về Visual Basic và ADO

Ví duï 4Ví duï 4

Goïi 3 haøm treân:Goïi 3 haøm treân:Private Sub Form_Load()Private Sub Form_Load()

KhoiTaoKetNoiKhoiTaoKetNoi

HienThiTieuDeHienThiTieuDe

LayDuLieuLayDuLieu

End SubEnd Sub

Page 45: Giới thiệu về Visual Basic và ADO

Ví duï 5Ví duï 5

Xoùa moät hoïc Xoùa moät hoïc sinh töø danh sinh töø danh saùchsaùch

Page 46: Giới thiệu về Visual Basic và ADO

Ví duï 5Ví duï 5 Xöû lyù nuùt XoùaXöû lyù nuùt XoùaPrivate Sub cmdXoa_Click()Private Sub cmdXoa_Click() Dim li As ListItemDim li As ListItem Set li = lvHS.SelectedItemSet li = lvHS.SelectedItem If Not IsNull(li) ThenIf Not IsNull(li) Then Dim sql As StringDim sql As String Dim mahs As IntegerDim mahs As Integer mahs = li.SubItems(1)mahs = li.SubItems(1) sql = "Delete from HOCSINH where MAHS=" & mahssql = "Delete from HOCSINH where MAHS=" & mahs cn.Execute sqlcn.Execute sql lvHS.ListItems.Remove li.indexlvHS.ListItems.Remove li.index End IfEnd IfEnd SubEnd Sub