giới thiệu về visual basic và ado
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 PresentationTRANSCRIPT
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
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.
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
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
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
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
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
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
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
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
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
ADOADO
Browser / Application
ADO
OLE DB
ODBC
Relational Data
Non-Relational
Data
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 . .
ADO Object ModelADO Object Model
ConnectionConnection RecordsetRecordset CommandCommand ParameterParameter FieldField ……
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ôû.
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
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
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
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
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
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.
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.
Recordset ObjectRecordset Object
Open recordsetOpen recordset
Open strSQL, connection, opentype, Open strSQL, connection, opentype, locktypelocktype
Recordset ObjectRecordset Object Open TypeOpen Type
adOpenForwardOnlyadOpenForwardOnly adOpenStaticadOpenStatic adOpenKeysetadOpenKeyset adOpenDynamicadOpenDynamic
Lock typeLock type adLockReadOnlyadLockReadOnly adLockOptimisticadLockOptimistic adLockPessimisticadLockPessimistic adLockBatchOptimisticadLockBatchOptimistic
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
Recordset ObjectRecordset Object
Di chuyeån treân RecordsetDi chuyeån treân Recordset MoveFirstMoveFirst MoveNextMoveNext MovePreviousMovePrevious MoveLastMoveLast MoveMove
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
VB & ADO : Code VB & ADO : Code exampleexample
Database : Microsoft Access 2000Database : Microsoft Access 2000 Data Source : hs.mdbData Source : hs.mdb Table : HOCSINHTable : HOCSINH
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
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
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.
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
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ò
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
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
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
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
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
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ò
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
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
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
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
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
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
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