




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第9章數(shù)據(jù)庫(kù)應(yīng)用程序設(shè)計(jì),學(xué)習(xí)目的,您可以使用VS2008創(chuàng)建數(shù)據(jù)庫(kù)。您可以創(chuàng)建連接數(shù)據(jù)庫(kù)應(yīng)用程序。通過數(shù)據(jù)綁定,可以完成與數(shù)據(jù)庫(kù)相關(guān)的軟件的設(shè)計(jì)。9.1創(chuàng)建兩種類型的數(shù)據(jù)庫(kù)應(yīng)用程序9.2 VS2008數(shù)據(jù)庫(kù)9.3結(jié)構(gòu)化查詢語言SQL 9.4連接數(shù)據(jù)庫(kù)9.5連接數(shù)據(jù)庫(kù)應(yīng)用程序9.6連接渡邊杏數(shù)據(jù)庫(kù)應(yīng)用程序和數(shù)據(jù)綁定9.7學(xué)生信息管理系統(tǒng)設(shè)計(jì)9.8 ComboBox數(shù)據(jù)庫(kù)表9.9存儲(chǔ)過程9.10 LINQ to ADO。Net,數(shù)據(jù)庫(kù)提供了將信息組合在一起的方法。數(shù)據(jù)庫(kù)應(yīng)用程序系統(tǒng)主要包括數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)的三個(gè)部分,適用于所有應(yīng)用程序,如ACCESS。數(shù)據(jù)庫(kù)本身是由特定結(jié)構(gòu)組成的相關(guān)數(shù)
2、據(jù)。數(shù)據(jù)庫(kù)應(yīng)用程序,為特定數(shù)據(jù)庫(kù)應(yīng)用程序編寫的程序,用于收集、顯示和更新存儲(chǔ)在數(shù)據(jù)庫(kù)中的數(shù)據(jù),以便用戶輕松使用。本主題介紹如何構(gòu)建數(shù)據(jù)庫(kù)應(yīng)用程序。典型的數(shù)據(jù)庫(kù)管理系統(tǒng)包括FoxPro、Access、Oracle、SQLserver和Sybase。數(shù)據(jù)庫(kù)管理系統(tǒng)主要基于三種數(shù)據(jù)模型:層次模型、網(wǎng)格模型和關(guān)系模型。目前最廣泛使用的是基于關(guān)系模型的關(guān)系數(shù)據(jù)庫(kù)。上面列出的數(shù)據(jù)庫(kù)管理系統(tǒng)是關(guān)系數(shù)據(jù)庫(kù)。數(shù)據(jù)庫(kù)分為本地?cái)?shù)據(jù)庫(kù)和遠(yuǎn)程數(shù)據(jù)庫(kù),本地?cái)?shù)據(jù)庫(kù)通常不通過網(wǎng)絡(luò)訪問,數(shù)據(jù)庫(kù)和數(shù)據(jù)庫(kù)應(yīng)用程序在同一臺(tái)計(jì)算機(jī)上也稱為單層數(shù)據(jù)庫(kù)。遠(yuǎn)程數(shù)據(jù)庫(kù)通常位于遠(yuǎn)程計(jì)算機(jī)上,用戶通過網(wǎng)絡(luò)訪問遠(yuǎn)程數(shù)據(jù)庫(kù)中的數(shù)據(jù)。遠(yuǎn)程數(shù)據(jù)庫(kù)可以使用
3、兩層、三層或四層結(jié)構(gòu),兩層結(jié)構(gòu)通常使用C/S模式,即客戶端和服務(wù)器模式。三層模式通常使用B/S模式;用戶使用瀏覽器訪問web服務(wù)器;web服務(wù)器使用CGI、ASP、PHP和JSP等技術(shù)訪問數(shù)據(jù)庫(kù)服務(wù)器;生成動(dòng)態(tài)web頁并將其返回給用戶。四層模式是將應(yīng)用程序邏輯與web服務(wù)器分離,然后在web服務(wù)器和數(shù)據(jù)庫(kù)服務(wù)器之間添加應(yīng)用程序服務(wù)器。9.1可以設(shè)計(jì)兩種類型的數(shù)據(jù)庫(kù)應(yīng)用程序、數(shù)據(jù)庫(kù)應(yīng)用程序,以使用連接和連接渡邊杏。連接是數(shù)據(jù)庫(kù)應(yīng)用程序通過SQL語句直接對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作(例如,查找記錄、刪除記錄、修改記錄)。連接渡邊杏是指數(shù)據(jù)庫(kù)應(yīng)用程序從數(shù)據(jù)庫(kù)中讀取感興趣的數(shù)據(jù),在內(nèi)存中創(chuàng)建副本,數(shù)據(jù)庫(kù)應(yīng)用程序操
4、縱副本,必要時(shí)將修改后的副本存儲(chǔ)回?cái)?shù)據(jù)庫(kù)中。設(shè)計(jì)連接數(shù)據(jù)庫(kù)應(yīng)用程序通常包括設(shè)置數(shù)據(jù)庫(kù)、包含多個(gè)表和向表中添加數(shù)據(jù)(多個(gè)記錄)等基本步驟。使用SqlConnection或OleDbConnection類設(shè)置數(shù)據(jù)庫(kù)應(yīng)用程序和數(shù)據(jù)庫(kù)連接對(duì)象。使用OleDbCommand或SQLCommand類對(duì)象訪問數(shù)據(jù)庫(kù)中的數(shù)據(jù),直接在數(shù)據(jù)庫(kù)中的表中查詢指定的記錄,添加記錄,刪除記錄,以及修改記錄中的數(shù)據(jù)。ADO。使用Net設(shè)計(jì)未連接的數(shù)據(jù)庫(kù)應(yīng)用程序通常包含創(chuàng)建數(shù)據(jù)庫(kù)、包含多個(gè)表和向表中添加數(shù)據(jù)等基本步驟。使用SqlConnection或OleDbConnection類設(shè)置數(shù)據(jù)庫(kù)應(yīng)用程序和數(shù)據(jù)庫(kù)連接對(duì)象。使用Ol
5、eDbAdapter或SqlDataAdapter類對(duì)象從數(shù)據(jù)庫(kù)分配表中刪除感興趣的記錄。從數(shù)據(jù)庫(kù)分配表中提取的興趣記錄將創(chuàng)建為新表,并填充到DataSet類對(duì)象中,可以填充多個(gè)表,還可以指定DataSet類對(duì)象中表和表之間的關(guān)系。DataSet對(duì)象構(gòu)建在內(nèi)存中,可以視為內(nèi)存中數(shù)據(jù)庫(kù)的子集。取出所有感興趣的數(shù)據(jù),然后斷開與數(shù)據(jù)庫(kù)的連接。將DataSet類對(duì)象中的數(shù)據(jù)用作數(shù)據(jù)源,并將支持?jǐn)?shù)據(jù)綁定的控件(如ListView、TextBox等)的屬性綁定到DataSet數(shù)據(jù)源中的表或表字段,以便用戶瀏覽、查詢和修改。及時(shí)更新DataSet的內(nèi)容,并將修改后的數(shù)據(jù)保存回源數(shù)據(jù)庫(kù)。、9.2 VS2008
6、構(gòu)建數(shù)據(jù)庫(kù)、可使用完整版VS2008訪問的數(shù)據(jù)庫(kù)及其命名空間如下:VS2008 express edition僅支持OLE DB和SQL Server文件系統(tǒng)數(shù)據(jù)庫(kù)。SQL server:system . data . SQL client。Oracle:system . data . Oracle client。OLE DB數(shù)據(jù)庫(kù)(例如ACCESS):System。支持Data.OleDb。ODBC數(shù)據(jù)庫(kù),例如FoxPro:System。支持Data.Odbc。示例9.1使用SQL Server Express創(chuàng)建學(xué)生信息管理系統(tǒng)數(shù)據(jù)庫(kù)。包含三個(gè)表。表1包含學(xué)生編號(hào)、名字、性別、照片和密碼字
7、段。表2記錄了記錄編號(hào)、課程名稱、分?jǐn)?shù)、具有相應(yīng)課程成績(jī)的學(xué)生的學(xué)號(hào)、表3記錄了教師的基本情況,包括工作編號(hào)、名字和密碼字段。因?yàn)橐涗浫K袑W(xué)生的成績(jī),所以把學(xué)習(xí)成績(jī)單字段定義為學(xué)號(hào)、語文成績(jī)、數(shù)學(xué)成績(jī)、物理成績(jī)等字段是不恰當(dāng)?shù)摹_@樣,如果想增加一門課程,就必須增加領(lǐng)域,必須動(dòng)態(tài)增加領(lǐng)域,每個(gè)專業(yè)開設(shè)的課程也不同。部分課程領(lǐng)域只是個(gè)別專業(yè),顯然不是。建立資料庫(kù)的步驟如下:(1)運(yùn)行VS2008程序,選擇菜單(V)|其他窗口(E)|數(shù)據(jù)管理器(d)菜單項(xiàng),打開數(shù)據(jù)管理器表單,右鍵單擊字符數(shù)據(jù)連接,然后從快捷菜單中選擇“添加連接(a)”,繼續(xù)單擊按鈕以打開對(duì)話框,如圖9.2所示。單擊瀏覽(b)
8、按鈕,在打開的對(duì)話框中,選擇保存數(shù)據(jù)庫(kù)文件的路徑,然后輸入文件名StudentMis.mdf。單擊確定按鈕打開詢問您是否要?jiǎng)?chuàng)建數(shù)據(jù)庫(kù)的對(duì)話框,然后單擊是(y)按鈕創(chuàng)建數(shù)據(jù)庫(kù)。在選定路徑下,將顯示兩個(gè)數(shù)據(jù)庫(kù)文件StudentMis.mdf和StudentMis_log.ldf??梢栽跀?shù)據(jù)管理器表單中查看此數(shù)據(jù)庫(kù)。(2)在數(shù)據(jù)管理器表單中,展開StudentI.mdf,右鍵單擊文字表,從快捷菜單中選擇“添加新表(t)”菜單項(xiàng),然后打開該表單(如圖9.3中所示),將字段添加到新表中。學(xué)號(hào)字段StudentNum,創(chuàng)建int類型,允許空渡邊杏,默認(rèn)值0,主鍵;名稱字段StudentName,nvarc
9、har(20)類型:性別字段StudentSex,nchar(1)類型、中文字符或英文字符長(zhǎng)度均為1。字段StudenTphoto、image類型、允許空值;密碼字段StudenPassword,nvarchar(10)類型,必填字段,默認(rèn)值為123。每個(gè)學(xué)生的學(xué)號(hào)必須不同,方法是右鍵單擊字段“StudentNum”,單擊彈出快捷菜單中的“設(shè)置主鍵(y)”菜單項(xiàng),然后設(shè)置字段“StudentNum主鍵”??梢允褂脤W(xué)號(hào)字段徐璐區(qū)分其他記錄,便于查詢。結(jié)果如圖9.3所示。單擊工具欄“保存”按鈕,保存名為Student的表。您可以、(3)在資料總管表單中的Student文字上按一下右鍵,然后從快顯功
10、能表中選取顯示表格資料(s)功能表項(xiàng)目,以開啟新表單,并輸入Student表格中每個(gè)欄位的資料(例如,第1章、第3章;2、李4、女人;3、王奧,男人;4、路裕,女人。(4)用同樣的方法制作表計(jì)分,記錄所有學(xué)生的學(xué)習(xí)成績(jī)。包含記錄編號(hào)字段ScoreID,int類型,(標(biāo)志示例)=是;旗標(biāo)增量=1;旗標(biāo)種子=1,將欄位ID設(shè)定為自動(dòng)增量欄位,設(shè)定為主鍵課程名稱欄位ClassName,nvarchar(30)類型評(píng)分欄位Score,int類型;具有此課程成績(jī)的學(xué)生的學(xué)號(hào)字段StudentNum,int類型,必填字段。增加一些數(shù)據(jù)。教師工作編號(hào)字段填寫教師狀況表,包括TecherNum、int類型、必
11、填字段、默認(rèn)值0和主鍵。名稱字段TeacherName,nvarchar(20)類型:密碼字段TeacherPassword,nvarchar(10)類型,必填字段,默認(rèn)值為123。添加一些數(shù)據(jù),1,joung,123。2,關(guān)羽,123,這里關(guān)羽是管理者。,9.3結(jié)構(gòu)化查詢語言SQL,數(shù)據(jù)庫(kù)應(yīng)用程序可以通過結(jié)構(gòu)化查詢語言(SQL)訪問數(shù)據(jù)庫(kù)中的數(shù)據(jù),使用SQL語句查詢數(shù)據(jù)庫(kù)表中的指定記錄,添加記錄,刪除記錄,以及修改記錄中的數(shù)據(jù)。幾乎所有數(shù)據(jù)庫(kù)都支持SQL語言,因此要構(gòu)建數(shù)據(jù)庫(kù)應(yīng)用程序,必須學(xué)習(xí)SQL語言。這里只介紹最基本的SQL語句,讀者應(yīng)該更深入地學(xué)習(xí)SQL語言。Select語句是最常用的
12、SQL語句,通過該語句可以從數(shù)據(jù)庫(kù)中的表中獲取符合某些條件的記錄集。典型的SQL語句如下:select * from student:選取student表格中所有欄位的所有記錄。Select Student num,StudentName from student:在Student表中,選擇Student num字段和StudentName字段中的所有記錄。select * from score where student num Insert into student(student num,studentname,studentsex) value (5,7,男性學(xué)編號(hào)字段為5,從Stud
13、ent where student num=1中刪除:刪除Student表中學(xué)編號(hào)為1的學(xué)生。update Student Set Student name=Chen 7 Where Student num=1:將數(shù)據(jù)庫(kù)中Student表中學(xué)1號(hào)的學(xué)生名稱修改為Chen 7:9.4連接數(shù)據(jù)庫(kù),并且必須先連接到數(shù)據(jù)庫(kù),然后才能創(chuàng)建數(shù)據(jù)庫(kù)應(yīng)用程序。要徐璐連接到其他數(shù)據(jù)庫(kù),必須徐璐使用其他連接類對(duì)象。連接到Microsoft Sql Server7.0或更高版本的數(shù)據(jù)庫(kù)時(shí),使用SqlConnection類建立連接會(huì)更有效。要使用SqlConnection類,請(qǐng)使用using System。Data
14、.必須引用SqlClient命名空間。Using System。Data使用SqlConnection類設(shè)置連接對(duì)象的示例為String s=DATABASE=Northwind。SERVER=localhostUID=saPWD=;Sqlconnectionconn=new SQL connection(s);conn . Open();conn . Close();連接到其他數(shù)據(jù)庫(kù)。要使用其他連接字符串,連接字符串將用作連接類對(duì)象屬性ConnectionString的值。在此示例連接字符串中,數(shù)據(jù)庫(kù)為數(shù)據(jù)庫(kù)名稱,其中Northwind。必須安裝Microsoft Sql Server數(shù)據(jù)庫(kù)
15、系統(tǒng),然后安裝默認(rèn)數(shù)據(jù)庫(kù)示例Northwind,才能使用它。SERVER是數(shù)據(jù)庫(kù)服務(wù)器IP。例如,如果數(shù)據(jù)庫(kù)服務(wù)器和數(shù)據(jù)庫(kù)應(yīng)用程序位于同一臺(tái)計(jì)算機(jī)上,則可以使用localhost。安全身份驗(yàn)證是數(shù)據(jù)庫(kù)用戶密碼,UID是用戶名,PWD是密碼,Northwind數(shù)據(jù)庫(kù)是名為sa的用戶名,密碼是空的。您還可以使用Windows身份驗(yàn)證將UID=sa替換為Integrated Security=True。PWD=是。如果使用SQL Server文件系統(tǒng)數(shù)據(jù)庫(kù),請(qǐng)按如下方式修改連接字符串:其中D:d.mdf是數(shù)據(jù)庫(kù)文件的絕對(duì)路徑,Connect Timeout=30如果在30秒內(nèi)連接失敗,則會(huì)拋出異常。
16、Data Source=。SQLEXPRESSattach dbfilename=d :d . MDF;Integrated Security=TrueConnect Timeout=30User Instance=連接到支持True、ACCESS或OleDb接口的數(shù)據(jù)庫(kù)時(shí),請(qǐng)使用OleDbConnection類using System .必須設(shè)置引用Data命名空間的連接。Using System。Data . OleDb其中Provider是正在使用的數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序,DataSource是數(shù)據(jù)庫(kù)位置,studentI.mdb是ACCESS數(shù)據(jù)庫(kù)。例如,string s=provider=M
17、icrosoft . jet . oledb . 4.0。data source=d : VC # studenti . MDB;oledb connection conn=new oledb connection(s);conn . Open();conn . Close();創(chuàng)建9.5連接數(shù)據(jù)庫(kù)應(yīng)用程序,連接應(yīng)用程序使用OleDbCommand或SQLCommand類對(duì)象記錄SQL語句,通過這兩個(gè)類的方法直接在數(shù)據(jù)庫(kù)的表中查詢指定的記錄,添加記錄,刪除記錄,以及修改記錄的數(shù)據(jù)。9.5.1 OleDbCommand和SQLCommand類設(shè)置使用ACCESS數(shù)據(jù)庫(kù)中的OleDbCommand
18、類對(duì)象的SQLCommand類查詢對(duì)象方法,如下所示:使用這兩個(gè)類的方法ExecuteNonQuery、ExecuteReader執(zhí)行的SQL語句。String s=SELECT * FROM studentsqlcommandcommand 1=new SQL command(s,conn);示例9.2用戶的屬性必須立即存儲(chǔ)在數(shù)據(jù)庫(kù)表中。以下示例用于學(xué)生信息管理系統(tǒng)中的教師注冊(cè)。教師輸入個(gè)人信息,單擊注冊(cè)按鈕,然后使用SQL語句將數(shù)據(jù)存儲(chǔ)在9.1中創(chuàng)建的StudentMis.mdf數(shù)據(jù)庫(kù)的Teacher表中。具體步驟如下:(1)創(chuàng)建新項(xiàng)目StudentMis。在表單中添加兩個(gè)Texbox控件,textBox1輸入學(xué)號(hào)或工作編號(hào),textBox2輸入名稱。添加一個(gè)PasswordBox控件以輸入密碼。添加三個(gè)TextBlock控件以說明textBox或PasswordBox控件的用途。添加標(biāo)題為“選擇角色”的GroupBox控件,添加標(biāo)題為“學(xué)生”、“教師”和“管理員”的三個(gè)RadioButto
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 化工用地租賃合同
- 國(guó)際空運(yùn)運(yùn)輸代理合同
- 裝潢施工方案
- 設(shè)備高溫防護(hù)施工方案
- 2025年碾磨谷物及谷物加工品合作協(xié)議書
- 荔枝水泥地板硬化施工方案
- 咸陽百葉聲屏障施工方案
- 鞍山海城初三數(shù)學(xué)試卷
- 四川活動(dòng)板房框架施工方案
- 江門空調(diào)維修改造施工方案
- 2023年高考真題全國(guó)乙卷物理試卷
- 新疆省新疆生產(chǎn)建設(shè)兵團(tuán)2025屆小升初數(shù)學(xué)高頻考點(diǎn)檢測(cè)卷含解析
- 專題46:地理意義類綜合題之產(chǎn)業(yè)集聚的意義(原卷版)-備戰(zhàn)2021屆高考地理二輪復(fù)習(xí)題型專練
- 節(jié)后復(fù)工復(fù)產(chǎn)安全教育培訓(xùn)資料
- 2025年安徽省合肥熱電集團(tuán)招聘50人歷年高頻重點(diǎn)模擬試卷提升(共500題附帶答案詳解)
- 煤礦監(jiān)測(cè)監(jiān)控培訓(xùn)
- 柔性電路板自動(dòng)化制造-深度研究
- 軸承基礎(chǔ)知識(shí)測(cè)試
- 2024年河南建筑職業(yè)技術(shù)學(xué)院高職單招職業(yè)技能測(cè)驗(yàn)歷年參考題庫(kù)(頻考版)含答案解析
- 《體驗(yàn)微視頻拍攝樂趣》第一課時(shí)初中七年級(jí)勞動(dòng)教育課件
- 電纜故障知識(shí)培訓(xùn)課件
評(píng)論
0/150
提交評(píng)論