Server應用程序開發課件_第1頁
Server應用程序開發課件_第2頁
Server應用程序開發課件_第3頁
Server應用程序開發課件_第4頁
Server應用程序開發課件_第5頁
已閱讀5頁,還剩112頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第12章

SQLServer應用程序開發12.1使用Access開發

SQLServer應用程序在Access2000或更高版本中,可以使用Access項目對SQLServer數據庫高效、方便的訪問。使用Access項目可以輕松地創建客戶/服務器應用程序。操作Access項目與操作Access數據庫非常相似。除了要連接到SQLServer數據庫外,在Access項目中創建和應用窗體、報表、數據訪問頁、宏和模塊的方法,與在Access數據庫中所用的方法是相同的。下面以Access2000為例來介紹如何使用Access來開發SQLServer應用程序。12.1.1創建Access項目Access項目是一種Access數據文件,它能通過OLEDB組件結構有效地以本地模式訪問SQLServer數據庫。OLEDB是一種組件數據庫體系,它對多種類型數據源實現有效的網絡和Internet訪問。使用Access項目可以輕松地創建一個客戶/服務器應用程序,既可以是基于窗體、報表的傳統解決方案,也可以是通過數據訪問頁實現的基于Web的解決方案,或是兩者的結合。1.創建Access項目并將其與現有SQLServer數據庫連接啟動Access2002,然后從“文件”選單中選擇“新建”命令。在“新建文件”任務窗格中,單擊“項目(現有數據)”,在“文件新建數據庫”對話框中,單擊“保存位置”框中的一個地址,并在“文件名”框中鍵入項目文件名,確保“MicrosoftAccess項目”出現在“保存類型”框中,之后,單擊“創建”按鈕。當出現“數據鏈接屬性”對話框時,選擇“連接”選項卡,然后選擇或輸入要登錄的服務器名稱。提供登錄到服務器上所需的信息,為此應執行下列操作之一:若要使用Windows賬戶登錄到SQLServer服務器,請單擊“使用WindowsNT集成安全設置”選項。若要使用指定的登錄ID和密碼登錄到SQLServer服務器,請單擊“使用指定的用戶名稱和密碼”選項,并輸入相應的用戶名稱和密碼。選中“在服務器上選擇數據庫”選項,然后在該選項下面的下拉式列表中選擇要連接的SQLServer數據庫(如示例數據庫Northwind)。單擊“確定”按鈕,完成到指定數據庫的連接,此時該數據庫中包含的各個對象將顯示在“項目”窗口中,如圖12.4所示。在如圖12.6所示的“MicrosoftSQLServer數據庫向導”對話框中,鍵入要使用的服務器的名稱、在服務器上具有CREATEDATABASE權限的賬戶的登錄ID和密碼以及新SQLServer數據庫的名稱,然后單擊“下一步”按鈕。注意如果正在創建一個SQLServer6.5數據庫,請輸入數據庫設備和大小、事務處理日志設備和大小、數據庫的大小和日志的大小。無需為SQLServer7.0或更高版本指定設備和大小。在Access2000中,可以使用MicrosoftSQLServer數據庫向導創建SQLServer6.5或SQLServer7.0數據庫。若要MicrosoftSQLServer數據庫向導創建SQLServer2000數據庫,則應使用Access2002。在如圖12.7所示的對話框中,單擊“完成”按鈕。12.1.2打開Access項目步驟(1)在“文件”選單中選擇“打開”命令。(2)單擊“打開”對話框左側的快捷方式,或者在“查找范圍”框中單擊包含要打開的Access項目的驅動器或文件夾。若要查看以前打開過的Access項目的快捷方式列表,請單擊“打開”對話框左側的“歷史”。(3)在文件夾列表中雙擊文件夾,直到打開包含Access項目的文件夾。如果找不到想要打開的Access對象,請單擊“打開”對話框右上角的“工具”,然后單擊“查找”,并在“查找”對話框中輸入搜索條件。(4)單擊打開的Access項目文件,然后執行下列操作之一:若要打開Access項目,請單擊“打開”按鈕。若要以只讀訪問方式打開Access項目,請單擊“打開”箭頭,然后選擇“以只讀方式打開”命令。在Access2002中,可以只以獨占模式打開Access項目。如果試圖打開一個其他用戶已經打開的Access項目,則Access會提示用戶打開了該文件的一個只讀副本。需要說明的是,當以只讀模式打開Access項目時,仍然可以添加或修改數據,創建或修改表、視圖、數據庫圖表或存儲過程,因為數據和這些對象是駐留在SQLServer數據庫中。然而,不能創建或修改窗體、報表、宏或模塊,因為這些對象是駐留在Access項目中的。12.1.3連接到SQLServer數據庫下面介紹將Access項目連接到SQLServer數據庫,或者更改Access項目與SQLServer數據庫的連接方法。在Access2002在,打開要連接到SQLServer數據庫的Access項目。(1)從“文件”選單中選擇“連接”命令。(2)在如圖12.8所示的“數據鏈接屬性”對話框中,選擇“連接”選項卡。從下拉列表中選擇一個服務器名,或鍵入想要訪問數據庫所在的服務器位置。單擊“刷新”按鈕,可以刷新服務器列表。(4)輸入登錄到服務器所需的信息,可以使用WindowsNT集成安全機制,也可以使用指定的用戶名和密碼。(5)從所選服務器上,選擇要連接的SQLServer數據庫。若要測試所做的設置是否正確,請單擊“測試連接”按鈕。此時,將嘗試連接到指定的SQLServer數據庫。如果連接失敗,請確保設置是正確的。(6)單擊“確定”按鈕。12.1.4使用數據庫表在Access2002中,既可以創建一個Access項目并將其與現有SQLServer數據庫連接,也可以創建一個SQLServer數據庫并將其與Access項目連接。無論是哪一種情況,只要打開了Access數據庫中使用表設計器一樣。所不同的是,對于Access項目來說,表存儲在SQLServer數據庫中;對于Access數據庫來說,表即存儲在該數據庫中。下面介紹通過Access項目在SQLServer數據庫創建表的方法。步驟啟動Access2002,然后從“文件”選單中選擇“新建”命令。在“新建文件”窗格中,單擊“項目(新數據)”。在“文件新建數據庫”對話框中,單擊“保存位置”框中的一個地址,并在“文件名”框中鍵入一個名稱(例中為Students),然后單擊“創建”按鈕。當出現“MicrosoftSQLServer數據庫向導”對話框時,鍵入要使用的服務器的名稱、在服務器上具有CREATEDATABASE權限的賬戶的登錄ID和密碼以及新SQLServer數據庫的名稱(例中為StudentsSQL),然后單擊“下一步”按鈕.單擊項目窗口工具欄上的“新建”按鈕。在項目窗口中雙擊“使用設計器創建表”。此時出現如圖12.11所示的表設計器窗口,該窗口與SQLServer2000的表設計器基本相同。表設計器上部網格中的每一行對應表中的一列。

創建表時,需要對表中的每一列進行定義:在上部網格中指定列名稱、選擇數據類型并鍵入列說明文本,然后在窗口下部的“列”選項卡中對列的各種屬性進行設置。按照要求,完成Students表結構的定義,并將student_id列設置為表的主鍵,然后單擊工具欄中的“保存”按鈕。當出現如圖12.12所示的“選擇名稱”對話框時,在“輸入表名稱”框中輸入Students,然后單擊“確定”按鈕。按照要求,完成Courses表結構的定義。按照要求,完成Scores表結構的定義。完成數據庫表結構定義后,若要向表中輸入數據或查看表中的數據,請單擊該表,然后單擊項目窗口工具欄上的“打開”按鈕;若要修改表結構,請單擊項目窗口工具欄上的“設計”按鈕;若要刪除一個表,請在項目窗口中單擊該表,然后單擊項目窗口工具欄上的“刪除”按鈕。步驟(1)在Access2002中打開項目Students.adp。在如圖12.13所示的項目窗口中,單擊對象欄下方的“數據庫圖表”,然后執行下列操作之一:(2)單擊項目窗口工具欄上的“新建”按鈕。在項目窗口中雙擊“使用設計器創建數據庫圖表”。(3)當出現如圖12.14所示的“添加表”對話框時,按住Ctrl鍵依次單擊要添加到數據庫圖表中的表,然后單擊“添加”按鈕,再單擊“關閉”按鈕。在本例中向圖表中添加了三個表,即Students表、Courses表和Scores表。(6)重復步驟(4)和(5),通過course_id列在Scores表和courses表之間建立關系。(7)單擊工具欄上的“保存”按鈕,并在“另存為”對話框中指定圖表名稱,然后關閉數據庫圖表設計器窗口。創建數據庫圖表后,若要修改該圖表的設置,請單擊該圖表,然后單擊項目窗口工具欄上的“設計”按鈕;若要刪除該圖表,請單擊該圖表,然后單擊項目窗口工具欄上的“刪除”按鈕。12.1.6使用查詢項目中的查詢對應于SQLServer數據庫中的視圖,這種數據庫對象存儲在SQLServer數據庫中,可以使用與表相同的方式在SQL查詢語句中引用。在Access2002中,可以使用查詢設計器來創建視圖。[例12.3]本例說明如何使用查詢設計器創建視圖對象。在項目文件Students.adp中創建一個名為“學生成績”的視圖,其結果集內的數據分別來自Students表、Courses表和Scores表,所顯示的輸出列包括Students表中的student_num列、student_name列、Courses表中的course_name列以及Scores表中的score,要求按student_name列升序排列記錄。步驟在Access2002中打開項目文件Students.adp。在如圖12.17所示的項目窗口中單擊對象欄下方的“查詢”,然后單擊項目窗口工具欄上的“新建”按鈕,或者在項目窗口中雙擊“使用設計器創建視圖”,以打開查詢設計器窗口。向視圖中添加所需表。當出現“添加表”對話框時,將Students表、Courses表和Scores表添加視圖中,然后關閉“添加表”對話框,并進入查詢設計器窗口.向視圖中添加所需表列。在查詢設計器窗口上部的“圖表”窗格中,單擊要輸出的表列左側的輸出復選框,使這些列出現在下方的設計網格中。在本例中,通過視圖輸出的列包括Students表中的student_num列和student_name列、Courses表中的course_name列以及Scores表中的score列。指定輸出列的別名。在設計網格中,分別在student_num,student_name,course_name和score列的“別名”框中鍵入中文名稱,即“學號”、“姓名”、“課程名稱”和“成績”。

設置排序選項。在設計網格中,單擊student_name列的“排序”單元格,然后選擇“升序”選項,如圖12.19所示。單擊工具欄上的“保存”按鈕,并在“另存為”對話框中將視圖名稱指定為“學生成績”,然后單擊“確定”按鈕。從“視圖”選單中選擇“數據表視圖”命令,或者單擊工具欄上的“視圖”按鈕,或者單擊工具欄的“運行”按鈕,以瀏覽視圖的運行結果,如圖12.20所示。若要查看視圖中的SQL語句,單擊工具欄的“SQL”按鈕即可。此時將在SQL窗格中看到以下SELECT查詢語句:SELECTTOP100PERCENTdbo.Students.student_numAS學號,dbo.Students.student_numAS姓名,dbo.Courses.course_nameAS課程名稱,dbo.Score.scoreAS成績FROMdbo.CoursesINNERJOINdbo.ScoreONdbo.Courses.course_idINNERJOINdbo.StudentsONdbo.Scores.student_id=dbo.Students.student_idORDERBYdbo.Students.student_name由于事先已經使用圖表設計器分別在Students表和Scores表以及Courses表和Scores表之間建立了關系,故在上述語句的FROM子句中自動出現了INNERJOIN運算符,通過內連接返回到在連接列中具有相等值的行。此外,在上述語句中還自動出現了TOP100PERCENT選項,如果不想使用該選項,可以單擊工具欄上的“屬性”按鈕,然后在“屬性”對話框的“視圖”選項卡中清除“頂端”復選框。在Access項目中創建一個視圖之后,若要在數據表視圖中查看結果集的內容,請單擊該視圖,然后單擊項目窗口工具欄上的“打開”按鈕;若要在設計視圖中修改該視圖的定義,請單擊該視圖,然后單擊項目窗口工具欄上的“設計”按鈕;若從項目中要刪除該視圖,請單擊該視圖,然后單擊項目窗口工具欄上的“刪除”按鈕。12.1.7使用窗體通過Access項目中的窗體可以輸入和顯示數據,這種窗體存儲在Access項目中,數據本身則存儲在SQLServer數據庫中。在Access2002中,既可以在設計視圖中創建窗體,也可以使用向導創建窗體。[例12.4]本例說明如何使用向導創建窗體。在項目文件Student.adp中創建一個名為“學生資料”的窗體,通過該窗體可以查看或修改Student表中的數據。步驟在Access2002中打開項目文件Student.adp。啟動窗體向導。在如圖12.21所示的項目窗口中單擊對象欄下方的“窗體”,然后雙擊“使用向導創建窗體”。確定在窗體上使用哪些字段。當出現如圖12.22所示的對話框時,首先從“表/查詢”列表框中選擇將要作用窗體數據源的表或視圖,然后在“可用字段”列表框中依次雙擊所需要的每個字段,將它們添加到“選定的字段”列表框中。也可以從多個表或視圖中選擇字段。若要刪除某個已經選定的字段,請在“選定的字段”列表框中雙擊該字段。在本例中,為窗體選擇的字段均來自Student表,包括student_num,student_name,student_sex,birthdate,department,speciality,grade以及class字段。確定窗體上所需字段后,單擊“下一步”按鈕。確定窗體布局。當出現如圖12.23所示的“窗體向導”對話框時,為窗體選擇一種適當的布局方式。

每當選擇一種布局方式時,可以在該對話框的左半部分查看相應的布局效果。例如,若要使每個表列都顯示在一個獨立的行上,并且左邊帶有一個標簽,請選擇“縱欄式”選項;若要使每一行的所有表列都顯示在一行,標簽顯示在窗體的頂端,請選擇“表格”選項。在本例中選擇了“縱欄式”布局,單擊“下一步”按鈕。確定窗體樣式。當出現如圖12.24所示的“窗體向導”對話框時,選擇窗體所用的樣式,可供選擇的樣式有“Sumi畫”、“國際”、“宣紙”、“工業”、“標準”、“沙巖”、“混合”、“石頭”、“藍圖”和“遠征”。在本例中選擇了“標準”樣式,然后單擊“下一步”按鈕。在如圖12.25所示的“窗體向導”對話框中,將窗體的標題指定為“學生資料”,并選取“修改窗體設計”選項,然后單擊“完成”按鈕。在窗體設計器窗口中打開窗體之后,在窗體頁眉區中添加一個標簽,其文本內容為“學生資料”,并設置字體和字號;將每個文本框左側的標簽內容改為中文,例如將student_num改為“學號”,將student_name改為“姓名”,等等。經過修改后的窗體布局如圖12.26所示。

從“視圖”選單中選擇“窗體視圖”命令,或者單擊工具欄上的“視圖”按鈕,以查看窗體的運行效果,如圖12.27所示。在“窗體”視圖中查看學生資料的情形如圖12.27所示,此時可以通過單擊窗體底部的瀏覽按鈕在不同學生記錄之間移動。在項目中創建一個窗體之后,若要在窗體視圖中查看該窗體,請單擊該窗體,然后單擊項目窗口工具欄上的“打開”按鈕;若要修改該窗體的布局,請單擊該窗體,然后單擊項目窗口工具欄上的“設計”按鈕;若要刪除該窗體,請單擊該窗體,然后單擊項目窗口工具欄上的“刪除”按鈕。12.1.8使用報表使用Access項目中的報表可以對數據進行計算、分組、匯總和打印,報表存儲在Access項目中,數據本身則存儲在SQLServer數據庫中。在Access2002中,既可以使用報表設計器創建報表,也可以使用向導創建報表。[例12.5]本例說明如何使用向導創建報表。在項目Student.adp中創建一個名為“學生資料”的報表,按照學號升序顯示所有學生的部分信息,并要求按照班級分組顯示。步驟在Access2002中打開項目文件Student.adp。啟動報表向導。在如圖12.28所示的項目窗口中單擊對象欄下方的“報表”,然后雙擊使用向導創建報表。確定報表上使用哪些字段。當出現如圖12.29所示的“報表向導”對話框時,從“表/查詢”列表框中選擇“表:Students”,然后在“可用字段”列表框中依次雙擊所需字段,將它們添加到“選定的字段”列表框中.在本例中選定student_num,student_name,student_sex,birthdate,department,speciality,grade以及class字段。然后單擊“下一步”按鈕。確定分組級別。當出現如圖12.30所示的“報表向導”對話框時,在左邊的列表框中雙擊要作為分組依據的字段。在本例中選擇class字段作為分組依據,然后單擊“下一步”按鈕確定排序次序。當出現如圖12.31所示的“報表向導”對話框時,確定明細信息使用的排序次序,最多可以選擇四個字段對記錄排序,既可以是升序也可以是降序。單擊“升序”按鈕,則它變為“降序”,反之亦然。在本例中選擇student_num字段作為排序依據,然后單擊“下一步”按鈕。

確定報表的布局方式和打印方向。在如圖12.32所示的“報表向導”對話框中,為報表選擇一種適當的布局方式,可供選擇的布局方式有“遞階”、“塊”、“分級顯示1”、“分級顯示2”、“左對齊1”以及“左對齊2”,每當選擇一種布局方式時,都可以在對話框左邊查看相應的布局效果;選擇報表的打印方向,根據表中使用字段的多少可以選擇“縱向”或者“橫向”。在本例中,為報表選擇的布局方式為“左對齊1”,打印方式為“縱向”,并選定“調整字段寬度使所有字段都能顯示在一頁中”復選框,然后單擊“下一步”按扭.確定報表所用樣式。在如圖12.33所示的“報表向導”對話框中,為報表選擇一種樣式,可供選擇的樣式有“大膽”、“正式”、“淡灰”、“緊湊”、“組織”和“隨意”。在本例中為報表選擇“組織”樣式,然后單擊“下一步”按鈕。指定報表標題。在如圖12.34所示的“報表向導”對話框中,為報表指定標題(本例中為“學生資料”)。并選擇“修改報表設計”選項,然后單擊“下一步”按鈕。在報表設計器窗口中打開報表之后,將報表中所有標簽中的字段名改為中文,例如將“student_num”改為“學號”等,如圖12.35所示。從“視圖”選單中選擇“打印預覽”命令,或者單擊工具欄上的“打印預覽”按鈕,以查看報表的布局效果。在項目中創建一個報表之后,若要在打印預覽視圖中查看該報表,請單擊該報表,然后單擊項目窗口工具欄上的“打印預覽”按鈕;若要修改該報表的布局,請單擊該報表,然后單擊項目窗口工具欄上的“設計”按鈕;若要刪除該報表,請單擊該報表,然后單擊項目窗口工具欄上的“刪除”按鈕。12.1.9通過項目管理SQLServer數據庫通過Access項目中不僅可以管理存儲在項目中的數據庫對象(例如窗體和報表等),也可以管理存儲在SQLServer數據庫中的數據庫對象(例如表、視圖和數據庫圖表等),還可以對SQLServer數據庫本身進行管理。1.顯示SQLServer服務器屬性步驟在Access2002中打開一個已與SQLServer建立連接的Access項目。在“視圖”選單中選擇“服務器屬性”命令。此時出現如圖12.37所示的“服務器屬性”對話框,包含了以下信息:數據庫產品(MicrosoftSQLServer);數據庫版本號(8.0即為SQLServer2000版);數據庫服務器的名稱;Access項目連接到的當前SQLServer數據庫的名稱。

注意當前SQLServer數據庫名稱以及其文件格式(Access2000或Access2002)也顯示在“項目”窗口的標題欄中,出現在Access項目文件名稱的右側。2.備份和還原數據庫使用Access項目可以對SQLServer2000數據庫進行備份和還原。應該經常定期備份數據庫,以保護在硬件故障或意外損失時數據的安全。利用創建數據時制作的備份,可以還原這些數據。若要備份并還原SQLServer數據庫,請使用SQLServer企業管理器。下面介紹通過Access項目來備份SQLServer數據庫的方法。步驟打開一個連接到SQLServer2000的Access項目。選擇“工具→數據庫實用工具→備份SQL數據庫”命令。當出現如圖12.38所示的“備份”對話框時,在“文件名”框中輸入備份文件的名稱(.dat),或使用Access輸入的默認名稱。單擊“確定”按鈕。需要注意的是,上述操作不備份Access項目(.adp),該項目文件獨立于所連接的SQLServer數據庫。若要制作Access項目文件的備份,請使用Windows資源管理器,將該文件復制到安全的位置。若要還原數據庫,必須斷開所有用戶與該數據庫的連接,并關閉除“數據庫”窗口外的所有窗口,然后執行以下操作。步驟打開一個連接到SQLServer2000的Access項目。選擇“工具→數據庫實用工具→還原SQL數據庫”命令,當出現如圖12.39所示的對話框時,單擊“是”按鈕。當出現如圖12.40所示的“恢復”對話框時,在“查找范圍”框中選擇一個地址,然后找到所需要數據庫備份文件(.dat)。單擊數據庫備份文件,然后單擊“確定”按鈕。3.刪除數據庫下面介紹從Access項目中刪除SQLServer2000數據庫的方法。

步驟斷開所有用戶與該數據庫的連接,并關閉除“數據庫”窗口外的全部窗口。打開連接到SQLServer2000的Access項目。選擇“工具→數據庫實用工具→刪除SQL數據庫”命令。單擊“是”按鈕,確認數據庫刪除操作。12.2使用VisualBasic開發

SQLServer應用程序VisualBasic是目前流行的可視化開發工具之一,它以簡單易用而著稱,不僅可以用于開發各種類型的桌面應用程序,也可以用于開發數據庫應用程序。下面介紹如何使用VisualBasic6.0開發SQLServer應用程序,主要講述通過數據控件、ADO數據控件以及數據環境訪問SQLServer數據庫的方法和步驟。12.21使用數據控件數據控件是VisualBasic的標準控件之一。在應用程序中,可以使用數據控件和各種數據綁定控件來顯示和更新數據庫中的信息。使用數據控件時,不用編寫代碼就能夠創建簡單的數據庫應用程序。如果將數據控件與VisualBasic代碼結合起來,則可以為數據處理提供高級的編程控件,從而設計出功能完備的數據庫應用程序。1.數據控件概述

在VisualBasic中,使用數據控件能夠將窗體與數據庫連接起來,只需要編寫少量代碼甚至不用編寫代碼就能夠完成下列任務。與本地數據庫或遠程數據庫連接。基于SQL查詢打開指定的數據庫表或定義記錄集。將數據字段傳送到各種綁定控件,并在這些控件中顯示或更新字段值。根據綁定控件中顯示的數據變化來添加新記錄或更新數據庫。捕獲訪問數據時出現的錯誤。關閉數據庫。2.在窗體上添加數據控件用數據控件訪問數據庫時,首先要在工具箱中單擊數據控件按鈕,并在窗體上添加一個數據控件。數據控件的大小和位置都可以重新設置,不過,習慣上是把該控件放在窗體的底部,并使其寬度與窗體的ScaleWidth

屬性值相等。為此,請在屬性窗口中把數據控件的Align屬性設置為2,使數據控件大小將與窗體的尺寸同步變化,如圖12.42所示。從圖中可以看到,數據控件中間的空折區域中顯示著Data1字樣,這是數據控件的Caption屬性所指定的文本。在運行時可以用該屬性來顯示當前記錄號。3.設置數據控件連接的數據庫使用數據控件時,首先指定要連接的數據類型,這可以通過在屬性窗口中設置數據控件的Connect屬性來實現。Connect屬性的默認值是Access。如果要連接的不是Access數據庫,而是其他類型的數據庫,就必須對Connect屬性進行設置,操作方法如下:在屬性窗口中選定數據控件,然后單擊Connect屬性框并選擇要連接的數據庫類型。若要使用數據控件連接到指定的SQLServer數據庫,則應當用手工方式在Connect屬性框中輸入以下字符串:ODBC;Driver={SQLserver};Server=ServerName;UID=UserID;PWD=Password;Database=DatabaseName

在上述連接字符串中,ODBC表示通過ODBC驅動程序建立與數據庫的連接;Server指定要連接的SQLServer服務器;UID和PWD分別指定SQLServer登錄名和密碼;Database指定要連接的SQLServer數據庫。例如,設SQLServer實例運行在計算機ABC上,有一個用戶ID為hegels,相應的密碼為123456,若要連接的數據庫為StudentSQL,則連接字符串內容應為:ODBC;Driver={SQLserver};Server=ABC;UID=hegels;PWD=123456;Database=StudentSQL4.設置數據控件的記錄來源設置要通過數據控件連接的SQLServer數據庫之后,還需要設置該控件的RecordSource屬性,以指定在數據綁定控件中顯示的記錄來源。數據控件的RecordSource屬性的值是一個字符串表達式,其值可以是一個表名稱,也可以是一個合法的SQL查詢語句。一旦通過Connect屬性指定要連接的SQLServer數據庫文件,VisualBasic就會自動檢索該數據庫中的所有表和有效查詢的名稱,并將它們顯示在RecordSource屬性列表中.5.使用數據綁定控件數據綁定控件是數據識別控件,通過它來訪問數據庫中的信息。當一個控件被綁到數據控件時,VisualBasic將當前記錄中的字段值應用于該控件,在該控件中顯示數據,并允許進行修改。如果在綁定控件里改變了字段值,當移動到另一條記錄時,所做的修改會自動地寫入到數據庫。在VisualBasic6.0中,可用做綁定控件的標準控件包括復選框、圖像控件、標簽、圖片框、文本框、列表框以及組合框等;可用做綁定控件ActiveX控件包括DBList,DBCombo,DataList,DataCombo,MSFlexGrid,DBGrid以及MaskedEdit等。在使用任何ActiveX控件之前,都需要從“工程”選單中選擇“部件”命令,然后在“部件”對話框中添加該控件。此外,還必須從“工程”選單中選擇“引用”命令,然后在“引用”對話框中注冊數據訪問對象(DAO)庫。下面介紹在應用程序中使用綁定控件的方法。步驟在窗體上添加數據控件,并設置與數據訪問有關的一些基本屬性,例如Connect和RecordSource屬性等,以指定要訪問的SQLServer數據。在同一窗體上添加綁定控件,并將其DataSource屬性設置為數據控件的名稱,從而將該控件綁定到數據庫。將綁定控件的DataField屬性設置為一個字段名稱,從而將該控件綁定到當前記錄的一個字段。注意設置DataSource屬性后,VisualBasic會自動檢索所有可用字段并顯示在DataField屬性的下拉式列表框中,如果在設計時數據庫不可用,則在數據值從數據庫中發送給控件之前,需要在運行時用代碼提供一個有效的字段名稱。例如,若要將文本框Text1綁定到student_num字段上,可以通過下面的語句來實現:

Text1.DataField=“student_num”對于個別字段也可以有多個綁定控件,但不必為表中的每個字段都提供一個綁定控件。數據控件和綁定控件并不一定要設為可視的。如果把數據訪問的能力合并到設計的窗體中,便能夠利用程序代碼在后臺進行數據處理。在程序運行時,數據控件、綁定控件與數據庫一起工作,以訪問當前記錄集內的數據。使用數據控件的箭頭按鈕可以在不同的記錄之間移動,而用綁定控件則可以查看或編輯從每個字段里顯示出來的數據。無論何時,只要單擊數據控件的箭頭按鈕,VisualBasic就會自動地更新對記錄集所做的任何改變。6.用數據控件創建簡單

的數據庫應用程序[例12.6]本例演示如何使用數據控件和文本框創建一個數據庫瀏覽程序。

步驟在VisualBasic6.0中創建一個標準EXE工程。在窗體上添加一個數據控件、五個文本框控件和五個標簽控件,其中數據控件用于連接數據庫,文本框控件用于顯示字段值,標簽控件用于提示字段標題。按照表12.4中的數據對窗體和控件的屬性進行設置。在代碼窗口中,編寫數據控件Data1的Reposition事件過程:‘當移動記錄指針時觸發數據控件的Reposition事件PrivateSubData1_Reposition()‘因為記錄集的AbsolutePosition屬性總比記錄號小1Data1.Caption=“當前記錄號:”&Data1.Recordset.AbsolutePosition+1EndSub在上述代碼中,用到了記錄集對象的AbsolutePosition屬性,該屬性用于返回記錄集內記錄的相對記錄號,而且第一條記錄的記錄號為0。為了用數據控件的Caption屬性來顯示當前記錄號,應將數據控件Data1的RecordsetType屬性設置為1(動態集)或2(快照型記錄集)。按下F5鍵,運行程序。單擊數據控件上的箭頭按鈕,可以在不同的記錄之間移動,而且在數據控件中間顯示出當前的記錄號.12.2.2添加ADO數據控件ADO數據控件使用ActiveX數據對象(ADO)來快速建立數據綁定控件與數據源之間的聯系,使用該控件可以快速創建記錄集并通過數據綁定控件將數據提供給用戶。1.添加ADO數據控件步驟在“工程”選單中選擇“部件”。在“部件”對話框的“控件”選項卡中,選擇MicrosoftADODataControl6.0(OLEDB)復選框。單擊“確定”按鈕,將ADO數據控件添加到VisualBasic的工具箱中,如圖12.49所示。在工具箱中雙擊Adodc控件按鈕,在窗體上添加一個ADO數據控件,如圖12.50所示。2.設置ADO數據控件連接的數據庫在窗體上添加ADO數據控件后,通過設置該控件的ConnectionString屬性可以指定所要連接的SQLServer數據庫,這種連接可以通過OLEDB提供程序或ODBC驅動程序來實現。OLEDB(ObejctLinking&EmbeddingDatabase)是一種基于COM訪問數據的應用程序接口,它支持可以使用OLEDB提供程序的任意數據源的訪問。ODBC(OpenDatabaseConnectivity)是一種數據訪問應用程序接口,它支持可以使用ODBC驅動程序的任意數據源的訪問。ConnectionString屬性值是一個字符串,給出建立數據庫連接所需要的所有信息,因此也稱為連接字符串。該字符串的主要內容包括訪問數據所用的提供程序或驅動程序、服務器名稱、用戶標識和登錄密碼以及要連接的默認數據庫等。若要通過OLEDB提供程序來訪問SQLServer數據庫,應按照以下語法格式來設置ADO數據控件的ConnectionString屬性值:Adodc1.ConnectionString=”PROVIDER=SQLOLEDB;DATASOURCE=ServerName;”&_”UID=User;PWD=Password;DATABASE=DatabaseName”若要通過ODBC驅動程序來訪問SQLServer數據庫,應按照以下語法格式來設置ADO數據控件的ConnectionString屬性值:Adodc1.ConnectionString=”DRIVER={SQLServer};”&_”UID=UserID;PWD=Password;DATABASE=DatabaseName”3.設置ADO數據控件的記錄來源在設置ADO數據控件所要連接的SQLServer數據庫之后,還需要通過設置該控件的RecordSource屬性來指定來源。

步驟在屬性窗口中選擇ADO數據控件。單擊RecordSource屬性框右邊的對話按鈕。當出現如圖12.51所示的“屬性頁”對話框時,從“命令類型”列表框中選擇所需命令類型:若要通過執行一個SQL語句來生成記錄集,請選擇“1-adCmdText”。若要從一個數據庫表中檢索數據庫,請選擇“2-adCmdTable”。若要通過執行一個存儲過程來生成記錄集,請選擇“4-adCmdStoredPro根據步驟(3)完成的操作不同,執行下列操作之一:若在步驟(3)中選擇的命令類型為2或4,請在“表或存儲過程名稱”框中選擇所需的表名稱或存儲過程名稱。若在步驟(3)中選擇的命令類型為1,請在“命令文本(SQL)”框中輸入一個SQL查詢語句。單擊“確定”按鈕,完成RecordSource屬性的設置。4.設置ADO數據控件的其他屬性除了設置ConnectionString和RecordSource屬性之外,使用ADO數據控件時經常需要設置以下屬性。ConnectionTimeout屬性:設置在中止前等待打開連接的時間量(單位為秒)。CursorLocation屬性:指定所使用的游標引擎,其取值為2-adUseServer(服務器端游標)或3-adUseClient(客戶端游標)。CursorType屬性:設置用于下一級記錄集的游標類型,其取值為1-adOpenKeyset(鍵集游標)、2-adOpenDynamic(動態游標)或3-adOpenStatic(靜態游標)。5.使用ADO數據控件

開發數據庫應用程序下面給出通過ADO數據控件訪問數據庫的例子。[例12.8]使用ADO數據控件和列表框控件設計一個數據庫應用程序,其功能是根據學號查詢成績。在VisualBasic6.0中創建一個標準EXE工程。在工具箱中添加ADO數據控件,為此應在“部件”對話框的“控件”選項卡中選擇MicrosoftDataGridControl6.0(OLEDB)。在窗體上添加ADO數據控件Adodc1.在窗體上添加其他控件,包括標簽Label1和Label2、文本框Text1、命令按鈕Command1、線段Line1以及列表框List1。按照表12.6中的數據設置窗體和控件的屬性,設計好的窗體布局如圖12.52所示。在窗體上雙擊命令按鈕Command1,然后在代碼窗口中編寫該控件的Click事件過程,程序代碼如下:PrivateSubCommand1_Click()ConstREC_SRC=”SELECTStudents.student_numAS學號,”&_“Students.student_nameAS課程,”&_“Scores.scoreAS成績”&_“FROMCoursesINNERJOIN“&_“ScoresONCourses.course_id=Scores.course_idINNERJOIN“&_“StudentsONScores.student_id=Students.student_id“DimsNumAsString,Ssqlasstring,sfldnameasstring,sfldvalueasstringSnum=text1.text‘從文本框中取得輸入的學號并存入變量snumIfsnum=””thenMsgbox“請指定學號!”,vbokonly+vbinformation,”學生成績查詢系統”ExitsubElse‘動態生成查詢語句ssql=rec_src&”wherestudent_num=”&“‘“&snum&“‘“endifadodc1.recordsource=ssql‘動態設置ADO數據控件的記錄來源adodc1.refresh‘打開或重新打開數據庫內容‘recordset表示通過ADO數據控件打開的記錄集,EOF屬性為真表明記錄為空ifadodc1.recordset.EOFthenmsgbox“查無此人。請核實后重新輸入!”,vbokonly+vbinformation,”學生成績查詢系統”exitsubendifLabel2.Caption=adodc1.recordset.fields(“姓名”)&“同學的成績如下:”List1.Clear‘清空列表框Sfldname=adodc1.recordset.fields(2).name&vbtab&vbtab&vbtab&_Adodc1.recordset.fields(3).nameList1.additemsfldname‘

將字段名添加到列表框List1.additem““Whilenotadodc1.recordset.eofSfldvalue=adodc1.recordset.fields(2).valud&vbtab&vbtab&_Adodc1.recordset.fields(3).valueList1.additemsfldvalue‘將課程和成績添加到列表框Adodc1.receorset.movenext‘將記錄指針移到下一條記錄WendEndsub(7)按F5鍵,運行程序。在文本框中輸入一個學號,然后單擊“查看成績”,如果指定的學生存在于數據庫中,則會在列表框中顯示該生各門課程的成績.12.2.3使用數據環境設計器數據環境設計器為創建編程運行時數據訪問提供了一個交互的設計時環境。在設計時,可以對Connection和Command對象設置適當的值、編寫代碼響應ADO事件、執行命令、創建合計與層次結構,也可以拖動DataEnvironment對象到窗體來創建數據綁定的控件。使用數據環境設計器可以完成下面的工作:添加一個數據環境設計器到一個VisualBasic工程中:創建Connection對象;基于表、視圖、SQL語句或存儲過程等創建Command對象;基于Command對象的一個分組,或通過與一個或多個Command對象相關來創建命令對象的層次結構;為Connection和Recordset對象編寫和運行代碼;從數據環境設計器中拖動一個Command對象中的字段到一個VisualBasic窗體或數據報表設計器。1.添加數據環境設計器

若要添加一個數據環境設計器對象到一個新的VisualBasic工程,請執行以下操作。

步驟從“文件”選單中選擇“新建工程”命令。在“新建工程”對話框的“新建”選項卡中,選擇“標準EXE”工程,然后單擊“打開”按鈕。從“工程”選單中選擇“添加DataEnvironment”命令。一旦數據環境設計器被添加到VisualBasic工程中,數據環境設計器窗口出現,并且將一個Connection對象添加到數據環境,同時在工程窗口中出現一個DataEnvironment對象。2.創建Connection對象

若要通過數據環境訪問數據,就必須創建一個Connection對象。因此,每一個數據環境應當最少包括一個Connection對象。一個Connection對象表示一個到遠程數據庫的連接,該數據庫被用做一個數據源。一旦在VisualBasic工程中添加了一個數據環境,數據環境設計器就自動地包括一個新的連接,稱為Connection1。在設計時,數據環境打開連接并從該連接中獲得元數據,包括數據庫對象、表結構和過程參數。若要創建新的Connection對象,請執行下列操作之一:在數據環境設計器窗口工具欄上單擊“添加連接”按鈕。右擊數據環境設計器窗口,然后從快捷選單中選擇“添加連接”命令。在數據環境中創建Connection對象之后,還必須設置它的連接屬性,以指定所用的OLEDB提供程序以及要訪問的數據庫等。

步驟在數據環境設計器窗口中,單擊相應的Connection對象。單擊工具欄上的“屬性”按鈕,或者右擊數據環境設計器窗口,然后從快捷選單中選擇“屬性”命令。在“數據鏈接屬性”對話框的“提供者”選項卡中,選擇MicrosoftOLEDBProviderforSQLServer作為OLEDB提供程序.在“數據鏈接屬性”對話框的“連接”選項卡中,選擇或輸入運行SQLServer實例的服務器名稱,輸入登錄該服務器的信息,在該服務器上選擇所要訪問的數據庫,然后單擊“確定”按鈕,將所設置的屬性應用于Connection對象,并關閉對話框.3.創建Command對象Command對象定義了從一個數據庫連接中獲取何種數據的詳細信息。Command對象既可以基于一個數據庫對象(例如一個表、視圖或存儲過程),也可以基于一個SQL查詢。此外,還可以創建Command對象之間的關系來以層次結構的形式獲取一組相關的數據。但要注意的是,要想使一個Command對象有效,必須和一個Connection對象相關聯。如果一個Command對象返回數據,則它是“記錄集返回”,返回的結果可以通過使用DataEnvironment對象中的一個Recordset對象進行訪問。然而,如果一個Command對象不返回數據(例如執行一個更新的存儲過程或SQL文本),則它是“非記錄集返回”。數據環境設計器自動地識別Command是否是記錄集返回。可以通過使用“Command屬性”對話框中“高級”選項卡的“返回的記錄集”復選框覆蓋這個設置。在運行時如何訪問Command對象取決Command對象是否是記錄集返回。如果Command對象是記錄集返回,既可以將Command對象作為DataEnvironment對象的一個屬性,也可以作為它的一個方法來進行訪問。如果它是非記錄集返回,則Command對象只能作為一個方法來訪問。任何時候都可以使用AddCommand函數,并且它與其他對象的存在與否無關。然而,一個沒有與Connection對象關聯的Command對象是無效的。如果一個Connection對象在添加過程中可以被從當前焦點中標識出來,則Command對象的ActiveConnection屬性就被設置到這個Connection對象。如果一個Connection對象不能被標識,在將它與一個連接關聯之前,Command對象是無效的。若要添加一個Command對象,請執行下列操作之一:在數據環境設計器工具欄中單擊“添加命令”按鈕。鼠標右鍵單擊一個Connection對象或您的數據環境設計器,并從快捷方式選單中選擇“添加命令”。添加一個Command對象之后,數據環境的“概要型”視圖就顯示新的Command對象,該對象的默認名稱為“Command”和加在后面的一個數字,例如Command1。若要指定Command對象的屬性,請執行以下操作。步驟右擊Command對象,然后從快捷選單中選擇“屬性”命令,以訪問“Command屬性”對話框。選擇“通用”選項卡,然后進行如下設置:命令名稱:將數據庫對象的默認“命令名稱”改為一個更有意義的名字。例如,如果Command對象是基于一個叫做Customers的數據庫表,可能想將Command1改為Customers。連接:如果Command對象是從一個Connection對象的快捷方式選單中創建的,Connection名稱被自動地設置。但也可以更改這個Connection。數據庫對象:從下拉列表中選擇一個對象的名字。列出的對象來自連接,并且與選擇的“數據庫對象”類型匹配。SQL語句:如果選擇該項作為數據源,在“SQL語句”框中輸入一個對您數據庫有效的SQL查詢。若要建立此查詢,可以單擊“SQL生成器”按鈕,以啟動查詢設計器如果Command對象是基于一個參數化的查詢或一個存儲過程,它可能有一個參數集合。若要設置參數屬性,請在“Command屬性”對話框中選擇“參數”選項卡。(4)使用“關聯”、“分組”和“合計”選項卡定義關系,并組織Recordset中包含的數據。(5)在“Command屬性”對話框中選擇“高級”選項卡,在該選項卡中設置高級屬性,使數據環境可以對Command對象屬性和它產生的Recordset對象進行控制。(6)單擊“確定”按鈕,將此屬性應用于新的Command對象,并關閉對話框。12.3使用ASP開發

SQLServer應用程序ASP(ActiveServerPages)是一種服務器端腳本編寫環境,可以用來創建和運行動態網頁或Web應用程序。ASP頁可以包含HTML標記、普通文本、腳本命令以及COM組件等。為了擴展ASP應用程序的功能,必須通過數據庫訪問組件實現對數據庫的訪問。數據庫訪問組件提供ADO對象(ActiveDataObjects)對數據庫的訪問。下面主要介紹ADO對象模型中的三個主要對象,即Connection對象、Recordset對象和Command對象,使用這些對象可以在ASP頁面上實現對SQLServer數據庫的訪問。12.3.1使用Connection對象

Connection對象代表了打開的、與數據源的連接,該對象代表與數據源進行的惟一會話。如果是客戶端/服務器數據庫系統,該對象等價于到服務器的實際網絡連接。使用該對象可以實現與SQLServer數據庫的連接,也可以通過SQL語句對所連接的數據庫進行各種操作。1.創建數據庫連接

如果計劃在ASP應用程序中對Web服務器上的數據庫進行訪問,就要建立一個數據庫連接。沒有數據庫連接,應用程序就無法知道在哪里找到數據庫,也不知道如何連接到數據庫。下面介紹使用Connection對象建立數據庫連接時用到的一些屬性和方法。在使用Connection對象之前,應使用Server.CreateObject方法創建該對象的實例,語法格式如下:<%DimcnnSetcnn=Server.CreateObject(“ADODB.Connection”)%>2.使用Connection對象執行SQL查詢Connection對象主要用于打開與指定數據庫的連接。也可以使用該對象的execute方法還能夠執行指定的查詢、SQL語句、存儲過程或特定提供程序的文本等內容。Execute方法的語法格式有下列兩種形式。對于不按行返回的命令字符串:connection.executecommandtext,recordsaffected,options對于按行返回的命令字符串:setrec

溫馨提示

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

評論

0/150

提交評論