數(shù)據(jù)庫原理及應(yīng)用部分_第1頁
數(shù)據(jù)庫原理及應(yīng)用部分_第2頁
數(shù)據(jù)庫原理及應(yīng)用部分_第3頁
數(shù)據(jù)庫原理及應(yīng)用部分_第4頁
數(shù)據(jù)庫原理及應(yīng)用部分_第5頁
已閱讀5頁,還剩75頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

數(shù)據(jù)庫原理及應(yīng)用部分第1頁,共81頁,2023年,2月20日,星期六VisualBasic編程入門工具箱窗體設(shè)計器窗口代碼編輯器窗口標題欄工具欄菜單欄工程資源編輯器窗口窗體布局窗口屬性窗口第2頁,共81頁,2023年,2月20日,星期六VisualBasic編程入門屬性窗口對象下拉列表框選項卡屬性說明屬性列表框?qū)傩灾档?頁,共81頁,2023年,2月20日,星期六VisualBasic編程入門代碼編輯器窗口對象下拉列表框事件過程下拉列表框自動列出成員特性代碼窗口第4頁,共81頁,2023年,2月20日,星期六VisualBasic編程入門傳統(tǒng)過程化應(yīng)用程序從第一行開始執(zhí)行,并按照預(yù)定的路徑執(zhí)行,用戶無法改變程序的流程事件驅(qū)動的應(yīng)用程序代碼不是按預(yù)定的路徑執(zhí)行,而是在響應(yīng)不同事件時執(zhí)行不同的代碼段事件觸發(fā)由用戶觸發(fā)由操作系統(tǒng)觸發(fā)由其它應(yīng)用程序的消息觸發(fā)面向?qū)ο蟪绦蛟O(shè)計第5頁,共81頁,2023年,2月20日,星期六VisualBasic編程入門對象是系統(tǒng)中的基本運行實體,是代碼和數(shù)據(jù)的集合。VB中,對象分為系統(tǒng)定義,如窗體、菜單等用戶定義類是封裝數(shù)據(jù)和隱藏數(shù)據(jù)的工具,是一組用來定義對象的相關(guān)過程和數(shù)據(jù)的集合。一個對象就是類的一個實例類具有封裝性、繼承性和多態(tài)性特征第6頁,共81頁,2023年,2月20日,星期六VisualBasic編程入門屬性是一個對象的特性,不同的對象有不同的屬性。常見的屬性:標題(Caption)名稱(Name)顏色(Color)字體(Font)是否可見(Visible)格式:<對象名>.<屬性名>=<屬性值>第7頁,共81頁,2023年,2月20日,星期六VisualBasic編程入門事件是指發(fā)生在對象上的事情。在VB中,系統(tǒng)為每一對象預(yù)先定義好一系列的事件,如:單擊(Click)雙擊(DblClick)裝入事件(Load)改變事件(Change)鼠標移動事件(MouseMove)獲取焦點事件(GotFocus)事件過程的一般格式:PrivateSub<對象名>_<事件名>([<參數(shù)表>])<程序代碼>EndSub例:PrivateSubCommand1_Click()Form1.BackColor=vbRedEndSub第8頁,共81頁,2023年,2月20日,星期六VisualBasic編程入門方法是指對象要執(zhí)行的動作。方法是面向?qū)ο蟪绦蛟O(shè)計中所特有的,是一種特殊的過程和函數(shù),可供用戶直接調(diào)用。如:打印(Print)方法顯示窗體(Show)方法清除(Cls)方法移動(Move)方法格式:[<對象名>.]<方法名>[<參數(shù)名>]第9頁,共81頁,2023年,2月20日,星期六VisualBasic語言基礎(chǔ)數(shù)據(jù)類型類型類型名后綴存儲空間整型Integer%2長整型Long&4單精度實型Single!4雙精度實型Double#8字節(jié)型Byte1貨幣型Currency@8字符串型:變長定長StringString*Size$1/每個字符Size邏輯型Boolean2日期型Date8可變類型(數(shù)值)Variant16可變類型(字符)變長第10頁,共81頁,2023年,2月20日,星期六VisualBasic語言基礎(chǔ)常量在程序運行期間值不發(fā)生變化的量。在VB中,有兩種形式的常量直接常量符號常量。符號常量又分為:用戶自定義符號常量系統(tǒng)定義符號常量例如:”歡迎使用VisualBasic” 字符串常量,長度為2012345 數(shù)值型常量True 布爾型常量#11/10/2001# 日期型常量聲明的格式如下:

[Public|Private]Const<常量名>[As<類型>]=<表達式>例如:

ConstPi=3.14159可以從“對象瀏覽器”中獲得。第11頁,共81頁,2023年,2月20日,星期六VisualBasic語言基礎(chǔ)變量VB變量的命名規(guī)則:.不區(qū)分字母的大小寫,第一個字符必須是字母.長度不超過255個字符。.不可以包含小數(shù)點或者內(nèi)嵌的類型聲明字符。.不能使用關(guān)鍵字。.不能與過程名或符號常量同名。Dim|Private|Static|Public<變量名>[As<類型>]第12頁,共81頁,2023年,2月20日,星期六VisualBasic語言基礎(chǔ)自定義數(shù)據(jù)類型定義:

[Public|Private]Type<自定義類型名><元素名1>As<類型名1>

[<元素名2>As<類型名2>]...EndType說明:1)必須為定長字符串 2)定義自定義數(shù)據(jù)類型變量用: Dim<變量名>As<自定義類型名> 3)元素名引用: <變量名>.<元素名>第13頁,共81頁,2023年,2月20日,星期六VisualBasic語言基礎(chǔ)運算符與表達式優(yōu)先級運算符運算1^乘方2-取負3*乘法/浮點除法4\整數(shù)除法5Mod取模6+加法-減法第14頁,共81頁,2023年,2月20日,星期六VisualBasic語言基礎(chǔ)運算符與表達式字符串運算符:“&”、“+”,作用:將兩個字符串連接合并成一個新的字符串?!?”運算符兩邊的操作數(shù)應(yīng)均為字符串,如果都為數(shù)值型,則進行算術(shù)運算,如果有一個為字符串,另一個為數(shù)值型,則出錯;“&’’運算符兩邊的操作數(shù)不論是數(shù)值型的還是字符串型,都進行字符串的連接運算,系統(tǒng)先將數(shù)值型操作數(shù)轉(zhuǎn)換為字符串,然后再進行連接運算。例如:“Hello”&“World” 結(jié)果為“HelloWorld”“Check”&123 結(jié)果為“Checkl23”“Check”+123 錯誤第15頁,共81頁,2023年,2月20日,星期六VisualBasic語言基礎(chǔ)常用內(nèi)部函數(shù)內(nèi)部函數(shù)分5類:數(shù)學(xué)函數(shù)字符串函數(shù)隨機函數(shù)、格式輸出函數(shù)轉(zhuǎn)換函數(shù)日期和時間函數(shù)見教材P273~275第16頁,共81頁,2023年,2月20日,星期六VisualBasic語言基礎(chǔ)順序結(jié)構(gòu)VB采用事件驅(qū)動方法,但仍需要結(jié)構(gòu)化程序設(shè)計方法,用控制結(jié)構(gòu)控制程序執(zhí)行的流程。程序流程有三種最基本的結(jié)構(gòu):順序、選擇、循環(huán)。例:使用文本框輸入圓的半徑,計算圓的面積并用標簽輸出。運行界面如下圖所示:PrivateSubCommand1_Click()DimrAsDouble,sAsDoubleConstpi=3.1415926r=Val(Text1.Text)s=pi*r*rLabel1.Caption="圓的面積:"&sEndSub第17頁,共81頁,2023年,2月20日,星期六VisualBasic語言基礎(chǔ)選擇結(jié)構(gòu)If…Then語句格式1:If條件Then語句序列格式2:If條件Then語句序列EndIf

If…Then…Else語句格式:If…Then 語句序列1Else 語句序列2EndIf

第18頁,共81頁,2023年,2月20日,星期六VisualBasic語言基礎(chǔ)選擇結(jié)構(gòu)嵌套的If語句If條件1Then 語句序列1ElseIf條件2Then 語句序列2ElseIf條件3Then 語句序列3…[ElseIf條件n 語句序列n]EndIf

多分支選擇控制語句SelectCase表達式Case值1,值2[,…] 語句序列1Case值3to值4 語句序列2CaseIs比較表達式 語句序列3…[CaseElse 語句序列n]EndSelect第19頁,共81頁,2023年,2月20日,星期六VisualBasic語言基礎(chǔ)循環(huán)結(jié)構(gòu)For…Next循環(huán)語句For<循環(huán)變量>=<初值>To<終值>[Step<步長>] <語句組1> [ExitFor] <語句組2>Next[<循環(huán)變量>]第20頁,共81頁,2023年,2月20日,星期六VisualBasic語言基礎(chǔ)循環(huán)結(jié)構(gòu)Do…Loop循環(huán)語句格式一:前測式當型循環(huán) 格式二:前測式直到型循環(huán)DoWhile<條件> DoUntil<條件>[<語句組1>] [<語句組1>][ExitDo] [ExitDo][<語句組2>] [<語句組2>]Loop Loop格式三:后測式當型循環(huán) 格式四:后測式直到型循環(huán)Do Do[<語句組1>] [<語句組1>][ExitDo] [ExitDo][<語句組2>] [<語句組2>]LoopWhile<條件> LoopUntil<條件>第21頁,共81頁,2023年,2月20日,星期六VisualBasic語言基礎(chǔ)循環(huán)結(jié)構(gòu)While…Wend循環(huán)語句While<條件><語句組>Wend第22頁,共81頁,2023年,2月20日,星期六VisualBasic語言基礎(chǔ)循環(huán)結(jié)構(gòu)例:打印九九乘法口訣表PrivateSubForm_Click()DimiAsInteger,jAsIntegerFori=1To9Forj=1ToiPrinti;"*";j;"=";Format(i*j,"@@");NextjPrintNextiEndSub第23頁,共81頁,2023年,2月20日,星期六VisualBasic語言基礎(chǔ)輸入框函數(shù)(InputBox)InputBox函數(shù)產(chǎn)生一個對話框,作為輸入數(shù)據(jù)的界面,等待用戶輸入正文或按下按鈕,并返回所輸入的內(nèi)容。格式:InputBox(<提示信息>[,<對話框標題>][,<默認值>])例如:MyStr=InputBox("提示"&vbCrLf&"信息","對話框標題","aaaaaa")第24頁,共81頁,2023年,2月20日,星期六VisualBasic語言基礎(chǔ)消息框函數(shù)(MsgBox)MsgBox函數(shù)產(chǎn)生一個消息框,提示用戶進行選擇,系統(tǒng)根據(jù)選擇確定其后的操作。格式:MsgBox(<提示信息>[,<按鈕類型>][,<對話框標題>])<提示信息>:用于指定顯示在對話框中的信息。<按鈕類型>:用來指定對話框中出現(xiàn)的按鈕和圖標的種類及數(shù)量。<對話框標題>:用來顯示在對話框的標題。第25頁,共81頁,2023年,2月20日,星期六VisualBasic語言基礎(chǔ)消息框函數(shù)(MsgBox)分類按鈕值系統(tǒng)定義符號常量含義按鈕類型0vbOKOnly只顯示“確定”按鈕1vbOKCancel顯示“確定”、“取消”按鈕2vbAbortRetryIgnore顯示“終止”、“重試”、“忽略”按鈕3vbYesNoCancel顯示“是”、“否”、“取消”按鈕4vbYesNo顯示“是”、“否”按鈕5vbRetryCancel顯示“重試”、“取消”按鈕圖標類型16vbCritical顯示停止圖標x32vbQuestion顯示詢問圖標?48vbExclamation顯示警告圖標!64vbInformation顯示信息圖標i默認按鈕0vbDefaultButton1第一個按鈕是默認按鈕256vbDefaultButton2第二個按鈕是默認按鈕512vbDefaultButton3第三個按鈕是默認按鈕第26頁,共81頁,2023年,2月20日,星期六VisualBasic語言基礎(chǔ)消息框函數(shù)(MsgBox)系統(tǒng)符號常量返回值按鍵vbOK1確定vbCancel2取消vbAbort3終止vbRetry4重試vbIgnore5忽略vbYes6是vbNo7否第27頁,共81頁,2023年,2月20日,星期六VisualBasic語言基礎(chǔ)消息框函數(shù)(MsgBox)PrivateSubForm_Click()a=MsgBox("提示信息")EndSubPrivateSubForm_Click()a=MsgBox("提示信息"&Chr(13)&"換行顯示")EndSub只顯示“提示信息”提示信息換行第28頁,共81頁,2023年,2月20日,星期六VisualBasic語言基礎(chǔ)消息框函數(shù)(MsgBox)PrivateSubForm_Click()a=MsgBox("提示信息",,"標題")EndSub省略第二個參數(shù)“按鈕類型”,但逗號不能省略PrivateSubForm_Click()a=MsgBox("提示信息",1,"標題")EndSub顯示“確定”、“取消”按鈕第29頁,共81頁,2023年,2月20日,星期六VisualBasic語言基礎(chǔ)消息框函數(shù)(MsgBox)PrivateSubCommand1_Click()a=MsgBox("提示信息",1+16,"標題")EndSubPrivateSubCommand1_Click()a=MsgBox("提示信息",2+32+0,"標題")EndSub顯示停止圖標設(shè)第一按鈕是默認按鈕第30頁,共81頁,2023年,2月20日,星期六VisualBasic窗體及控件常用的窗體屬性Name 窗體名稱BackColor 窗體的背景顏色BorderStyle 窗體邊框樣式Caption 標題欄顯示的內(nèi)容ControlBox 決定窗體是否具有控制菜單Font 輸出字符的字體、大小、顏色等Icon 決定窗體運行時處于最小化時所顯示的圖標MaxButton 決定窗體標題欄中是否具有最大化按鈕Moveable 決定窗體是否能移動Picture 設(shè)置在窗體上顯示的圖片WindowState 決定運行時窗體是正常、最小化還是最大化Height 窗體高度Width 窗體的寬度Left 窗體的最左端與包含它的容器的最左端之間的距離Top 窗體的最上端與包含它的容器的最上端之間的距離第31頁,共81頁,2023年,2月20日,星期六VisualBasic窗體及控件常用的窗體事件Click(單擊)事件 —單擊窗體的空白區(qū)DblClick(雙擊)事件 —雙擊窗體的空白區(qū)Load(裝入)事件 —當窗體被裝入工作區(qū)時Activate(活動)事件 —當窗體變?yōu)榛顒哟翱跁rUnload(卸載)事件 —當從內(nèi)存中卸載窗體時QueryUnload事件 —當從內(nèi)存中卸載窗體之前時Resize事件 —當窗體首次顯示在屏幕上或窗體大小改變KeyPressKeyDownKeyUp第32頁,共81頁,2023年,2月20日,星期六VisualBasic窗體及控件常用的窗體方法Load 裝載窗體到內(nèi)存,但不顯示窗體Show 顯示窗體Hide 隱藏窗體Print 在窗體上顯示信息Cls 清除窗體上的信息和用繪圖方法生成的圖形Move 移動并改變窗體的位置和大小第33頁,共81頁,2023年,2月20日,星期六VisualBasic窗體及控件控件的公共屬性Name屬性Name屬性在代碼中用于標識窗體、控件或數(shù)據(jù)訪問對象的名稱。當建立一個新控件時,VB為其建立一個缺省名稱,用戶可更改缺省名,但必須以字母開始,包括字母、數(shù)字和下劃線,不能包括標點符號或空格,最長40個字符。如果為同類型的控件取相同的Name屬性,可以創(chuàng)建控件數(shù)組。第34頁,共81頁,2023年,2月20日,星期六VisualBasic窗體及控件控件的公共屬性Caption屬性Caption屬性用于確定對象的標題。對于窗體,該屬性表示要顯示在標題欄中的文本。當創(chuàng)建一個新的對象時,缺省標題與缺省的Name屬性值相同。在設(shè)置Caption屬性時,可在要指定為訪問鍵的字符前加一個“&”符號。運行時,同時按下Alt鍵和帶下劃線的字符相當于單擊相應(yīng)的控件。第35頁,共81頁,2023年,2月20日,星期六VisualBasic窗體及控件控件的公共屬性Enabled屬性用來確定一個窗體或控件是否能夠?qū)τ脩舢a(chǎn)生的事件作出響應(yīng)。若設(shè)置為True(缺省值),則控件有效,允許控件對事件作出響應(yīng);若設(shè)置為False,則控件無效,阻止控件對事件作出響應(yīng)。運行時,可以根據(jù)應(yīng)用程序的當前狀態(tài),決定使某些控件無效或有效??丶腅nabled屬性設(shè)置為False時,控件呈暗灰色顯示。第36頁,共81頁,2023年,2月20日,星期六VisualBasic窗體及控件控件的公共屬性Visible屬性用來確定一個窗體或控件是否可見。若將控件的Visible屬性設(shè)置為True(缺值),則控件在運行時可見;若將控件的Visible屬性設(shè)置為False,則控件在運行時不可見。對窗體用Show或Hide方法,分別和在代碼中將窗體的Visible屬性設(shè)置為True或False的果是一樣的。第37頁,共81頁,2023年,2月20日,星期六VisualBasic窗體及控件控件的公共屬性Left、Top、Height、Width屬性Left、Top、Height和Width屬性用于設(shè)置或返回控件的位置或尺寸。其中Left屬性表示控件內(nèi)部的左邊與它的容器的左邊之間的距離,Top屬性表示控件的內(nèi)頂部和它的容器的頂邊之間的距離,Height屬性表示控件高度,Width屬性表示控件寬度。BackColor、ForeColor屬性BackColor屬性用來返回或設(shè)置控件的背景顏色。ForeColor屬性用來返回或設(shè)置在控件里顯示圖片和文本時的前景顏色。第38頁,共81頁,2023年,2月20日,星期六VisualBasic窗體及控件控件的公共屬性FontName、FontSize、FontBold、FontItalic、FontStrikethru、FontUnderline屬性FontName:在控件中顯示的文本所用的字體。FontSize:在控件中顯示的文本所用的字體大小。FontBold:在控件中顯示的文本是否為粗體樣式。Fontltalic:在控件中顯示的文本是否為斜體樣式。FontStrikethru:在控件中顯示的文本是否帶有刪除線。FontUndedine:在控件中顯示的文本是否帶有下劃線。第39頁,共81頁,2023年,2月20日,星期六VisualBasic窗體及控件命令按鈕CommandButton第40頁,共81頁,2023年,2月20日,星期六VisualBasic窗體及控件標簽LabelCaption屬性:字符型。標簽的標題。Alignment屬性:數(shù)值型。確定標簽中標題的對齊方式,有以下設(shè)置值:0-LeftJustify缺省值,標題從標簽的左邊開始顯示。1-RightJustif標題靠右顯示。2-Center標題居中顯示。AutoSize屬性:布爾型。設(shè)置為True時,可根據(jù)標題自動調(diào)整標簽的大小;設(shè)置為False(缺省值)時,標簽保持設(shè)計時定義的大小,太長的標題內(nèi)容將不能顯示出來。BackStyle屬性:數(shù)值型。缺省值為1,標簽不透明;設(shè)置為0時,標簽透明。第41頁,共81頁,2023年,2月20日,星期六VisualBasic窗體及控件文本框TextBoxText屬性:字符串類型。返回或設(shè)置文本框中顯示的內(nèi)容。例如:Text1.Text=“歡迎使用VisualBasic”MultiLine屬性:布爾型。當MultiLine屬性為True時,文本框可以輸入或顯示多行文本,且會在輸入的內(nèi)容超出文本框時自動換行。默認值為False。PasswordChar屬性:用于口令輸入。如果將PasswordChar屬性設(shè)置為一個字符,如星號(*),則在文本框中鍵人字符時,只顯示星號,不顯示鍵人的字符。ScrollBars屬性:用于確定文本框是否帶滾動條。第42頁,共81頁,2023年,2月20日,星期六VisualBasic窗體及控件文本框TextBoxChange事件:當用戶向文本框輸人新的內(nèi)容,或在程序代碼中對文本框的Text屬性進行賦值從而改變了文本框的Text屬性時,將觸發(fā)Change事件。GotFOCUS事件:當運行時用Tab鍵或用鼠標選擇對象,或用SetFOCUS方法使光標落在對象上時,觸發(fā)該事件,稱之為“獲得焦點”。該事件適用于窗體和大部分可接受鍵盤輸入的控件。LostFOCUS事件:當按下Tab鍵使光標離開當前文本框,或者用鼠標選擇窗體的其他對象時觸發(fā)該事件,稱之為“失去焦點”。第43頁,共81頁,2023年,2月20日,星期六VisualBasic窗體及控件定時器TimerEnabled是否可用。為False時不發(fā)生Timer事件Interval定時間隔單位為ms,取值范圍為0~65535。PrivateSubTimer1_Timer()IfImage1.VisibleThenImage1.Visible=FalseImage2.Visible=TrueElseImage1.Visible=TrueImage2.Visible=FalseEndIfEndSub第44頁,共81頁,2023年,2月20日,星期六VisualBasic窗體及控件Value屬性:表示選項按鈕的狀態(tài)。Value屬性為True時,表示選擇了該按鈕;Value屬性為False時,表示沒有選擇該按鈕。Alignment屬性:決定選項按鈕中的文本的對齊方式。Alignment屬性為0-LeftJustify時表示左對齊;1—RightJustify的表示右對齊。Style屬性:用于控制選項按鈕的外觀。Click事件:運行時單擊選項按鈕,使選項按鈕從未選擇狀態(tài)變成選擇狀態(tài)時,或在代碼中將一個選項按鈕的Value屬性從False改為True時,產(chǎn)生Click事件。選項按鈕OptionButton第45頁,共81頁,2023年,2月20日,星期六VisualBasic窗體及控件Value屬性:用來確定其狀態(tài).即選擇、取消選擇或灰度狀態(tài)。Value值為0表示取消選擇狀態(tài);Value值為1表示選擇狀態(tài);而Value值為2使復(fù)選框處于灰度狀態(tài)Alignment屬性:決定復(fù)選框中的文本的對齊方式。Alignment屬性為0-LeftJustify時表示左對齊;1—RightJustify的表示右對齊。Style屬性:用于控制復(fù)選框的外觀。Click事件:運行時單擊復(fù)選框時,或在代碼中改變復(fù)選框的Value屬性值時,產(chǎn)生Click事件。復(fù)選框CheckBox第46頁,共81頁,2023年,2月20日,星期六VisualBasic窗體及控件List屬性:返回或設(shè)置列表框的列部分的項目。Style屬性:返回或設(shè)置列表框的顯示樣式。Text屬性:返回列表框中被選擇的項目。ListIndex屬性:返回或設(shè)置列表框中當前選擇項目的索引,在設(shè)計時不可用。列表框的索引從0開始。ListCount屬性:返回列表框中列表部分項目的總個數(shù)。Sorted屬性:指定列表項目是否自動按字母表順序排序。AddItem方法:向列表框中添加新的項目,使用格式為: <對象名>.AddItem<項目>[,<索引>]RemoveItem方法:從列表框中移除項目,使用格式為: <對象名>.RemoveItem<索引>Clear方法:清除列表框中的所有項目。列表框ListBox第47頁,共81頁,2023年,2月20日,星期六VisualBasic窗體及控件List屬性:返回或設(shè)置組合框的列表部分的項目。Style屬性:返回或設(shè)置組合框的顯示樣式。Text屬性:返回返回或設(shè)置編輯域中的文本。ListIndex屬性:返回或設(shè)置組合框下拉列表中當前選擇項目的索引,在設(shè)計時不可用。ListCount屬性:返回組合框中列表部分項目的總個數(shù)。Sorted屬性:指定列表項目是否自動按字母表順序排序。AddItem方法:向組合框中添加新的項目,使用格式為: <對象名>.AddItem<項目>[,<索引>]RemoveItem方法:從組合框列表中移除項目,使用格式為: <對象名>.RemoveItem<索引>Clear方法:清除列表框中的所有項目。組合框ComboBox第48頁,共81頁,2023年,2月20日,星期六VisualBasic窗體及控件圖片框(PictureBox)和圖像框(Image)PrivateSubForm_click()Dimi,x,y,x0,y0,r,pi,paceAsSingler=ScaleHeight/4x0=ScaleWidth/2y0=ScaleHeight/2pi=3.1415926pace=pi/15Fori=0Topi*2Steppacex=x0+r*Cos(i)y=y0-r*Sin(i)Circle(x,y),r*0.8NextiEndSub第49頁,共81頁,2023年,2月20日,星期六VisualBasic窗體及控件圖片框(PictureBox)和圖像框(Image)PrivateSubForm_Click()Dimi,j,x,y,r,cForm1.ClsFori=1To10000x=(Form1.ScaleWidth*Rnd)y=Form1.ScaleHeight*Rndr=1000*Rndc=RGB(256*Rnd,256*Rnd,256*Rnd)Circle(x,y),r,cForj=1To5000NextjNextiEndSub第50頁,共81頁,2023年,2月20日,星期六VisualBasic窗體及控件圖片框(PictureBox)和圖像框(Image)PrivateSubForm_MouseMove(ButtonAsInteger,ShiftAsInteger,xAsSingle,yAsSingle)Dimcc=Int(Rnd*16)Circle(x,y),100,QBColor(c)EndSub第51頁,共81頁,2023年,2月20日,星期六使用VisualBasic開發(fā)數(shù)據(jù)庫系統(tǒng)VisualBasic開發(fā)數(shù)據(jù)庫概述ODBC連接SQLServer第52頁,共81頁,2023年,2月20日,星期六VisualBasic開發(fā)數(shù)據(jù)庫概述VB開發(fā)數(shù)據(jù)庫優(yōu)點簡單:VB提供了數(shù)據(jù)控件,利用該控件,用戶只要編寫少量的代碼甚至不編寫任何代碼就可以訪問數(shù)據(jù)庫,對數(shù)據(jù)庫進行瀏覽。靈活:VB不像一般的數(shù)據(jù)庫那樣局限于特定的應(yīng)用程序結(jié)構(gòu),也不需要用某些指令對當前打開的數(shù)據(jù)庫進行操作,因而比較靈活。可擴充:在VB中可以使用ActiveX控件,這些控件可以由Microsoft公司提供,也可以由第三方開發(fā)者提供,有了這些控件,可以很容易地在VB中增加新功能。第53頁,共81頁,2023年,2月20日,星期六VisualBasic開發(fā)數(shù)據(jù)庫概述VB支持的數(shù)據(jù)庫系統(tǒng)Access數(shù)據(jù)庫:VB內(nèi)置了Access的數(shù)據(jù)庫引擎,因此可以直接訪問這種格式的數(shù)據(jù)庫。外部數(shù)據(jù)庫:指非Access的數(shù)據(jù)庫,包括dBase,MicrosoftFoxPro等。ODBC數(shù)據(jù)庫:如SQLServer和Oracle等數(shù)據(jù)庫管理系統(tǒng)。ODBC(OpenDatabaseConnectivity,開放數(shù)據(jù)庫互連)是Microsoft提出的解決方案,用于訪問不同的數(shù)據(jù)庫產(chǎn)品,得到了眾多廠家的支持,現(xiàn)在常見的DBMS都提供了ODBC接口。第54頁,共81頁,2023年,2月20日,星期六VisualBasic開發(fā)數(shù)據(jù)庫概述VB支持的數(shù)據(jù)庫開發(fā)技術(shù)DAO技術(shù):Microsoft公司推出的第一個基于面向?qū)ο箝_發(fā)技術(shù)基礎(chǔ)的數(shù)據(jù)庫訪問接口。使用DAO編程,可以訪問并操作數(shù)據(jù)庫、管理數(shù)據(jù)庫的對象和定義數(shù)據(jù)庫的結(jié)構(gòu)等。RDO技術(shù):對于網(wǎng)絡(luò)應(yīng)用程序來說,其數(shù)據(jù)訪問端與數(shù)據(jù)庫之間有比較遠的距離,使用DAO技術(shù)已經(jīng)不能滿足數(shù)據(jù)訪問的要求,因此應(yīng)使用遠程數(shù)據(jù)對象RDO(RemoteDataObject)來訪問數(shù)據(jù)庫。ADO技術(shù):ActiveX數(shù)據(jù)對象(ADO,ActiveXDataObjects)是RDO的后繼產(chǎn)物。ADO在功能上與RDO相似,但擴展了RDO所有使用的對象模型,也就是說ADO包含較少的對象,更多的屬性、事件和方法。第55頁,共81頁,2023年,2月20日,星期六ODBC連接SQLServerODBC出現(xiàn)的背景各種數(shù)據(jù)庫管理系統(tǒng)都有自己的數(shù)據(jù)庫格式和嵌入式SQL語言,只要DBMS選取不同,則編寫的程序?qū)耆煌3绦騿T為了能夠訪問不同的數(shù)據(jù)庫而不得不學(xué)習多種DBMS的內(nèi)容,因此希望擺脫專用數(shù)據(jù)庫本身的約束。對于不同的DBMS,采用統(tǒng)一的編程界面,從而使數(shù)據(jù)庫應(yīng)用程序在訪問另外一種數(shù)據(jù)庫格式時,不需要對程序進行修改。ODBC開發(fā)的最初目的就是為程序員提供一套訪問數(shù)據(jù)庫的SQL函數(shù)調(diào)用,而這些函數(shù)的調(diào)用采用相同的用戶界面。

第56頁,共81頁,2023年,2月20日,星期六ODBC連接SQLServer配置ODBC數(shù)據(jù)源名DSN“控制面板”→“管理工具”→“數(shù)據(jù)源(ODBC)”,打開“ODBC數(shù)據(jù)源管理器”。用戶DSN:只能被建立它的用戶使用系統(tǒng)DSN:能被登錄到系統(tǒng)中的所有用戶使用。文件DSN:將信息存儲在后綴名為.dsn的文件中,如果文件放在網(wǎng)絡(luò)共享的驅(qū)動器中,就可以被所有安裝了相同驅(qū)動程序的用戶共享。第57頁,共81頁,2023年,2月20日,星期六ADO控件及數(shù)據(jù)綁定控件ADO控件概述RecordSet對象的使用數(shù)據(jù)綁定控件的使用應(yīng)用實例第58頁,共81頁,2023年,2月20日,星期六ADO控件概述ADO控件及數(shù)據(jù)綁定控件ADO控件:通過MicrosoftActiveX數(shù)據(jù)對象(ADO)快速建立數(shù)據(jù)源連接的一種數(shù)據(jù)綁定控件,應(yīng)用程序通過ADO控件實現(xiàn)對數(shù)據(jù)源的連接。數(shù)據(jù)綁定控件:用來顯示數(shù)據(jù)表中的數(shù)據(jù)。DataSource:指定需要綁定的ADO控件的名稱。DataField:指定要綁定的字段。第59頁,共81頁,2023年,2月20日,星期六ADO控件概述ADO控件的屬性和方法Name:控件名,默認名稱為Adodc1、Adodc2等。Caption:設(shè)置控件的顯示標題。ConnectionString:連接字符串,主要用來建立與數(shù)據(jù)源連接的信息。包括驅(qū)動程序、提供者、默認的數(shù)據(jù)庫、服務(wù)器、用戶名及密碼等。UserName:指定用戶名,當數(shù)據(jù)庫受密碼保護時,需要指定該屬性。Password:指定訪問密碼。RecordSource:通常包含一條語句,用于決定從數(shù)據(jù)庫中檢索什么信息。例如,要查詢一個數(shù)據(jù)表,表名為login。Adodc1.RecordSource="select*fromlogin"Recordset:記錄集對象。第60頁,共81頁,2023年,2月20日,星期六ADO控件概述ADO控件的屬性和方法CommandType:數(shù)據(jù)提供者RecordSource屬性是一條SQL語句、一個表的名稱、一個存儲過程、還是一個未知的類型。設(shè)置值說明1-adCmdText文本類型,可在“命令文本”列表框中輸入SQL語句。表示返回的記錄集是執(zhí)行SQL語句的結(jié)果2-adCmdTable表類型,可在“表或存儲過程名”下拉列表框中選擇一個表名稱(相當于選擇表的所有字段)。表示返回的記錄集類型是一個數(shù)據(jù)表。4-adCmdStoreProc存儲過程類型。8-adCmdUnknown默認值,“命令文本”列表框中的內(nèi)容為未知類型。第61頁,共81頁,2023年,2月20日,星期六ADO控件概述ADO控件的屬性和方法Refresh方法:Refresh方法用來重新建立或顯示與ADO控件相連的數(shù)據(jù)庫記錄集。如果在程序代碼中改變了ConncetionString、RecordSource、CommandType的屬性值,就必須使用Refresh方法來刷新記錄集。

語法: object.Refresh object:代表一個對象表達式。

第62頁,共81頁,2023年,2月20日,星期六RecordSet對象的使用RecordSet對象的常用屬性 Recordset即記錄集對象,存放當前數(shù)據(jù)庫中的記錄。? BOF和EOF屬性 BOF指示當前記錄位置位于Recordset對象的第一個記錄之前。EOF指示當前記錄位置位于Recordset對象的最后一個記錄之后。如果BOF和EOF屬性均為True,則當前記錄集為空。? RecordCount屬性 反映記錄集中的記錄數(shù)。如Adodc1.Recordset.RecordCount? AbsolutePosition屬性 反映當前記錄的位置。若當前顯示的是第一條記錄,則Adodc1.Recordset.AbsolutePosition值為1。第63頁,共81頁,2023年,2月20日,星期六RecordSet對象的使用RecordSet對象的常用方法? Move方法

實現(xiàn)在記錄集之間移動記錄指針,常用的有MoveFirst、MoveLast、MoveNext和MovePrevious。

? AddNew方法

用于向數(shù)據(jù)表中增加一條空記錄,需結(jié)合Update方法一起使用。

? Update方法

用于將添加的新記錄或修改的記錄保存到數(shù)據(jù)表中。

? Delete方法

刪除當前記錄。第64頁,共81頁,2023年,2月20日,星期六數(shù)據(jù)綁定控件的使用DataList控件和DataCombo控件? RowSource和ListField屬性:用來顯示數(shù)據(jù)庫表的某個字段的所有值。其中RowSource屬性指定ADO控件名稱,ListField屬性指定ADO控件所連接表中的字段名稱。? DataSource和DataField屬性:用于返回或設(shè)置被綁定的數(shù)據(jù)表中的某個字段名。控件的值隨數(shù)據(jù)庫記錄指針的移動而改變。? BoundColumn和BoundText屬性:用BoundText屬性顯示由BoundColumn屬性指定的字段的值。? Click事件:當用戶按下并釋放鼠標鍵時觸發(fā),也可通過在鍵盤上按下↑、↓鍵時觸發(fā)。? Change事件:DataCombo控件列表中的內(nèi)容改變時觸發(fā)。第65頁,共81頁,2023年,2月20日,星期六數(shù)據(jù)綁定控件的使用DataGrid控件? DataSource屬性:返回或設(shè)置數(shù)據(jù)源。通過兩種方法設(shè)置:一種是在屬性窗口設(shè)置,另一種是通過代碼設(shè)置,例如:SetDataGrid1.DataSource=Adodc1? Col和Row屬性:用于返回或者是指定DataGrid控件中的活動單元。? ColumnHeaders屬性:用于確定是否顯示每一列的表頭。? AllowAddNew屬性:指出是否允許向DataGrid控件所連接的記錄集中增加新記錄。? AllowDelete屬性:指出是否允許在DataGrid控件所連接的記錄集中刪除記錄。? AllowUpdate屬性:指出是否允許在DataGrid控件所連接的記錄集中修改記錄。第66頁,共81頁,2023年,2月20日,星期六數(shù)據(jù)綁定控件應(yīng)用實例第67頁,共81頁,2023年,2月20日,星期六ADO對象和ADO編程理解ADO對象使用ADO對象ADO對象編程應(yīng)用舉例第68頁,共81頁,2023年,2月20日,星期六理解ADO對象ADO簡介ADO,即ActiveX數(shù)據(jù)對象(ActiveXDataObjects),實際是一種提供訪問各種數(shù)據(jù)類型的連接機制。ADO是基于OLEDB的技術(shù),通過其內(nèi)部的屬性和方法提供統(tǒng)一的數(shù)據(jù)訪問接口方法。ADO是獨立于開發(fā)工具和開發(fā)語言的簡單、易實現(xiàn)的數(shù)據(jù)接口。ADO具有非常簡單的對象模型,包括七種對象,核心是Connection,Command,Recordset和Field對象。第69頁,共81頁,2023年,2月20日,星期六理解ADO對象Connection對象

用于建立與數(shù)據(jù)源的連接。? ConnectionString屬性:連接字符串,用于要建立和數(shù)據(jù)庫的連接? ConnectionTimeout屬性:用于設(shè)置連接的最長時間。? CursorLocation屬性:這個屬性允許用戶選擇不同的游標位置。只有在結(jié)果集建立之前,設(shè)置該屬性才有效。? Open方法:建立數(shù)據(jù)源的連接。? Close方法:關(guān)閉數(shù)據(jù)源的連接。? Execute方法:用于執(zhí)行一個SQL語句、查詢和存儲過程等。? Cancel方法:取消Open方法或Execute方法的調(diào)用。第70頁,共81頁,2023年,2月20日,星期六理解ADO對象Command對象

在建立連接后,如果基于數(shù)據(jù)源執(zhí)行查詢,可以使用Command對象,在數(shù)據(jù)源中添加、刪除、修改、查詢和數(shù)據(jù)庫定義等工作。? ActiveConnection屬性:在創(chuàng)建Command對象時,指明對象屬于哪一個Connection。? CommandText屬性:用于存儲希望完成的命令內(nèi)容,具體來講,就是要執(zhí)行的SQL語句。? CommandType屬性:用來指明Command對象的類型,其缺省值是adCmdUnknow。? CommandTimeout屬性:用于確定執(zhí)行命令的最長等待時間。? Prepared屬性:用于確定是否需要預(yù)編譯。? Execute方法:用于執(zhí)行Command對象中的命令內(nèi)容。DimcnAsNewADODB.ConnectionDimcmdAsNewADODB.Commandcn.ConnectionString="DSN=VBTEST;UID=sa;PWD=;"cn.OpenSetcmd.ActiveConnection=cncmd.CommandText="select*fromstudent"cmd.CommandType=adCmdTextcmd.CommandTimeout=20cmd.Prepared=Truecmd.Execute()第71頁,共81頁,2023年,2月20日,星期六理解ADO對象RecordSet對象

表示一個記錄集,該記錄集是基于某一特定連接的特定表或Command對象的執(zhí)行結(jié)果。? RecordCount屬性:返回記錄集中的記錄總數(shù)。? AbsolutePosition屬性:記錄指針位置。? BOF、EOF屬性:用于標志當前記錄指針是否位于首記錄之前、末記錄之后。? Open方法:打開代表數(shù)據(jù)表、查詢結(jié)果等記錄集。? MoveFirst、MoveLast、MoveNext、MovePrevious方法:移動記錄指針。? AddNew方法:添加一條新記錄。? Update方法:保存當前記錄的更改。? Delete方法:刪除當前記錄。DimcnAsNewADODB.ConnectionDimcmdAsNewADODB.CommandDimrstAsNewADODB.Recordsetcn.ConnectionString="DSN=VBTEST;UID=sa;PWD=;"cn.OpenSetcmd.ActiveConnection=cncmd.CommandText="student"cmd.CommandType=adCmdTableSetrst=cmd.Execute()cmd.CommandText=“deletefromstudent”cmd.CommandType=adCmdTextcmd.Execute()第72頁,共81頁,2023年,2月20日,星期六理解ADO對象Field對象

代表記錄中的一列,F(xiàn)ields是Field對象的集合,描述記錄中字段的集合。? Name屬性:代表字段的名。? Value屬性:代表字段的值。? Count屬性:Fields集合中包含F(xiàn)ield對象的數(shù)量。? ActualSize屬性:用于返回字段的數(shù)據(jù)的實際長度值。? DefinedSize屬性:用于返回已經(jīng)聲明的字段的大小(字節(jié)數(shù))。? Type屬性:用于返回Field對象的操作類型或數(shù)據(jù)類型。? Append方法:用于向Fields集合添加一個Field對象。 格式如下:Fields.AppendName,Type,DefinedSize,Attrib? Delete方法:用于從Fields集合中刪除一個Field對象。 格式如下:Fields.DeleteFieldName第73頁,共81頁,2023年,2月20日,星期六使用ADO對象使用ADO對象編程,一般有以下幾個步驟:在VB工程中引用ADO對象庫;建立與數(shù)據(jù)庫的連接;創(chuàng)建命令;運行命令;使用記錄集的屬性和方法操作數(shù)據(jù)庫中的數(shù)據(jù)。第74頁,共81頁,2023年,2月20日,星期六使用ADO對象建立與數(shù)據(jù)庫的連接使用DSN進行連接(1)用Connection對象的ConnectionString屬性。DimcnAsNewADODB.Connetion '定義連接對象變量cncn.ConnectionString="DSN=VBTEST;UID=sa;PWD=;" '用戶名為sa,密碼為空cn.ConnectionTimeout=10 '設(shè)置連接的最長時間cn.Open '打開連接… '其他操作數(shù)據(jù)庫代碼cn.Close '關(guān)閉連接DimcnnAsNewADODB.Connetion '定義連接對象變量cnncnn.Open"DSN=VBTEST;UID=sa;PWD=;"… '其他代碼cnn.Close '關(guān)閉連接(2)用Connection對象的帶參數(shù)的Open方法。第75頁,共81頁,2023年,2月20日,星期六使用ADO對象建立與數(shù)據(jù)庫的連接使用無DSN進行連接(1)用Connection對象的ConnectionString屬

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論