版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
狀況,適合作為數(shù)據(jù)庫課程的配套和實(shí)驗(yàn)使用。3111、觸發(fā)器過程、SQLSERVER2000安全性管理、數(shù)據(jù)庫應(yīng)用系統(tǒng)設(shè)計(jì)實(shí)例;23、mail為: 編2007Transact-SQL創(chuàng)建數(shù)據(jù)庫的使用方法Transact-SQLstudentTransact-SQLstudent單擊“開始”→“程序”→“SQLSERVER”→“服務(wù)管理2-1單擊“開始”→“程序”→“SQLSERVER”→“企業(yè)管理器”命令菜單,單擊左端“+2-2界面:2-22-32-3單擊“新建數(shù)據(jù)庫,彈出圖2-4的“數(shù)據(jù)庫屬性”框。在圖2-student2-42-5所示??梢孕薷臄?shù)據(jù)庫文件名、文件存放路徑、初始大小等,圖2-中為SQLSERVER2000安裝的默認(rèn)路徑:“C:\ProgramFiles\SQLServer\MSSQL\data\student_Data.MDF。選擇2-5“控制臺(tái) 2-6說明:圖2-6右邊顯示了數(shù)據(jù)庫中的對(duì)象:關(guān)系圖,表,視圖,過程,student7所示的“刪除數(shù)據(jù)庫”框。單擊“是,則刪除student數(shù)據(jù)庫。2-7student”命令菜單打“服務(wù)管理器框啟動(dòng)SQLSERVER2000“SQL”命令菜單,打開如圖2-8所示的框。2-8SQLSERVER選擇“Windows驗(yàn)證”或“SQLSERVER驗(yàn)證”方式登錄。這里選擇“Windows驗(yàn)證”登錄。單擊“確定”按鈕,進(jìn)入圖2-9所示畫面。圖2- SQL查詢分析SQLstudent數(shù)據(jù)“d:\database”1MB1MB,文件大100MB2-10所示?!癲:\database(可以保存在其他中)SQLF5SQL語句一般不能重復(fù)執(zhí)行,否則容易出SQLSQL語句來執(zhí)行查詢。圖2- 創(chuàng)建數(shù)據(jù)student_data2.ndf1MB10%2-11所示。2-11student2-12名為.MDF和.LDF2-12SQLSERVERTransact-SQL語句兩種方法,StudentCourseScores3-13-23-33-43-53-6所示。表3- Student表結(jié)8823-2Course53-3Scores850100(SNCNSN,CNCourseCN表3- Student表中學(xué)生記男02女02女04女04男4男04表3- Course表中課程記Linux3-6Scores”前面的“+3-13-23-2studentSN3-3圖3- 設(shè)置主建立CHECK約束。右擊“,單擊“CHECK約束…”快捷菜單,束表達(dá)式下邊的文本框中輸“IN('男','女)然后修改約束名“CK_”圖3- 創(chuàng)建約SNameSNameIX_SName3-5,單擊“關(guān)閉”按鈕,完成了索引的創(chuàng)建。3-5student3-63-73-8。圖3- 輸入數(shù)3-9圖3- 刪除StudentCourse、Scores創(chuàng)建兩表的聯(lián)系。ScoresSN(學(xué)號(hào))StudentSN(學(xué)SNSNScoresSNStudentScores3-10所示。圖3- 兩表之間的聯(lián)釋為應(yīng)將當(dāng)前的Transact-SQL批處理語句發(fā)送給SQLServer的信號(hào)?;蛘呦冗x擇數(shù)據(jù)庫,再創(chuàng)建表。結(jié)果如圖3-11所示。StudentAddressStudent3-12DROPTABLE語句刪除基本表,其表結(jié)構(gòu)和表中數(shù)3-13所示。3-14所示。3-11SQL3-12Student3-13Scores3-14SQL查詢語句獲取數(shù)據(jù)庫中滿足要求的數(shù)據(jù)。查詢是數(shù)據(jù)庫管理人員SQL語句對(duì)編寫數(shù)據(jù)庫應(yīng)用程序意義重大。通過本次實(shí)驗(yàn)應(yīng):SELECTGROUPBY本實(shí)驗(yàn)主要針對(duì)Student數(shù)據(jù)庫中Student(SN,SName,,Age,Dept,Class)、Course(CN,CName,Teacher)、Scores(SN,CNGrade)三張表進(jìn)行查詢。所有操作SELECT語句的語法結(jié)構(gòu)。SELECT[ALL|DISTINCT]目標(biāo)列組>[INTO<新表名>]FROM表名或視圖名>[WHERE<查詢條件>][GROUPBY分列組[HAVING組選擇條件>]][ORDERBY<排序列>[ASC|DESC]]SQL語句的含義,以便運(yùn)用自如。表4- Student表中學(xué)生記男02女02女04女04男4男04表4- Course表中課程記Linux4-3Scores1Student表的部分屬性:SN、SName4-14-12Student4-24-24-3SELECTASAS,SName,,AgeDeptClass4-4所示。4-4SQLSELECTDISTINCT避免重復(fù)數(shù)據(jù)。4Student4-54-5DISTINCTWHERE子句可以指定搜索條件,從而限制返回結(jié)果集的結(jié)果。54-6圖4-6查詢計(jì)算機(jī)學(xué)院的學(xué)生信息“=LIKE上“%_[]4-7所示。4-7“%例7 查詢結(jié)果如圖4-8所示。4-8“_0480”或“94-94-9“[]4-10“[^]ORDERBY10c0001課程的學(xué)生的全部信息,查詢結(jié)果按成績降序4-11所示。4-11SQL4-44-4名求某一列值的總和(此列必須是數(shù)值型求某一列值的平均值(此列必須是數(shù)值型11c00014-124-12C0001SQLGROUPBYHAVINGGROUPBY124-134-13GroupBY1324-4-14GroupBYHAVING214SN、SNameCN、Grade。查詢結(jié)果如圖4-15 名.(即別名)XY4-16。4-16外連接的兩個(gè)表有主次之分,可以分為左連接(LEFTOUTERJOIN)和右JOIN例16以Student表為主體列出每個(gè)學(xué)生的 、及Grade。查詢結(jié)果如圖4-17。4-17例17以Scores表為主體列出每個(gè)學(xué)生的 結(jié)果如圖4-18。4-1818CN為C0001Grade75SNSName、DeptGrade4-19。4-1919SN、SNameCNameGrade4-204-203例20查詢與“”在同一個(gè)Dept的學(xué)生的SN和SName。查詢結(jié)果如4-21。4-21IN例21查詢與“”在同一個(gè)Dept的學(xué)生的SN和SName。由于一個(gè)生(如果不同名)只可能在一個(gè)Dept學(xué)習(xí),也就是說查詢“”所在的的結(jié)果是唯一的,因此可以用比較運(yùn)算符“=4-22ANYALL!=ANY或!=ANY或!=ALL或例22查詢其他Dept中“計(jì)算機(jī)學(xué)院任一學(xué)生小的學(xué)生SNSName、Age4-23。4-23ANY例23查詢其他Dept中“計(jì)算機(jī)學(xué)院所有學(xué)生小的學(xué)生SNSName、Age4-24。4-24ALLEXISTS24CNC0001SN、SName4- 4-25EXISTSINEXISTSIN查詢結(jié)果是一樣的。在有的例子中就只能使EXISTSIN。例25查詢至少選修了SN為 學(xué)生選修的全部課程的學(xué)生SN、SName。查詢結(jié)果如圖4-26。①選修了 的嵌套查詢,只能用NOTEXISTS謂詞查詢。②(x)pq
p學(xué)生選修的任意一門課程(即:(xpq一門課程((xp選修了,而q沒選修(p4-26EXISTS(UNION(MINUS26Age20歲的學(xué)生的并集。查詢結(jié)果4-27。4-2727Age21歲的學(xué)生記錄的交集。查詢結(jié)4-28。4-2828C0001C0002的學(xué)生的差集。查4-29。C0001C00024-29SQLTransact-SQLTransact-SQLstudentstudentCourseTransact-SQLstudentstudentCourse、Scores表中進(jìn)行數(shù)據(jù)增加、數(shù)據(jù)刪除和數(shù)據(jù)修改操作。(1)5-15-15-25-35-25-3Transact-SQL;:;; :女:;:;;20;所在系部:計(jì)算機(jī)學(xué)院;班級(jí):041)Student5-4student數(shù)據(jù)Student表中插入如下數(shù)據(jù)。5-45-5所示。5-5例2對(duì)每個(gè)Dept求學(xué)生的平均,并將結(jié)果存入數(shù)據(jù)庫中。實(shí)驗(yàn)結(jié)果5-65-6SQL語言中,使UPDATE命令完成。例3:將SN為 圖5-7所示。5-7例4:將所有學(xué)生的增加1歲。實(shí)驗(yàn)操作結(jié)果如圖5-8所示5-815-9所示。5-925-105-10修改滿足子查詢條件記錄例6:刪除SN 的學(xué)生記錄。實(shí)驗(yàn)操作結(jié)果如圖5-11所示5-1175-125-1215-13所示。5-1325-145-146-3中數(shù)據(jù)來練習(xí)建立、修改和刪除視圖以及視圖的應(yīng)用等。6-1Student男02女02女04女04男04男04表6- Course表中課程記Linux
6-3Scores1student…打開如圖6-1所示的框。圖6- 新建視圖界6-2所示。圖6-2“添加表”C0001課程的學(xué)生的視圖。這里需6-3所示的結(jié)果。6-3Scores1_iew6-46-46-56-5WITHCHECKOPTION的用法。建立所有計(jì)算機(jī)學(xué)院學(xué)生的視圖,666WITHCHECKOPTION注意WITHCHECKOPTION用法,它將檢查視圖定義中的條件。對(duì)6-7Computer2_ViewWITH6-8但是,更新其他學(xué)院學(xué)生數(shù)據(jù),如更 學(xué)生的,并不改Student6-96-96-10。6-106-11SQLSERVERCREATETRIGGER理解可以使用觸發(fā)器來數(shù)據(jù)完整性Transact-SQL7-17-1執(zhí)行“管理觸發(fā)器”命令。系統(tǒng)將彈出如圖7-2所示的框??梢詣?chuàng)USEIFEXISTS(SELECTNAMEFROMSYSOBJECTSWHERENAME='StuInsert_Tr'ANDTYPE='TR')DROPTRIGGERStuInsert_Tr7-27-3Student行“管理觸發(fā)器”菜單,打開“觸發(fā)器框,選擇下拉列表,可以查看已創(chuàng)7-47-4行“管理觸發(fā)器”菜單,打開“觸發(fā)器框,選擇下拉列表中要?jiǎng)h除的觸發(fā)7-57-57-6SQL7-6StudentStuInsert_Tr7-77-7執(zhí)行“SP_HELPTRIGGERStudent,[INSERT]7-87-8Student7-9SQL語句。7-9實(shí)驗(yàn)八過理解過程的原理和特掌握過程定義的方理解如何通過過程來數(shù)據(jù)完整性本實(shí)驗(yàn)將使用企業(yè)管理器和Transact-SQL語句兩種方式創(chuàng)建過程。主創(chuàng)建過點(diǎn)。右擊,從快捷菜單中選擇“新建過程”。如圖8-1所示。圖8-1打開“新建過程單擊“新建過程”菜單,打開如圖8-2所示的框圖8-2“新建過程”輸入按照SN進(jìn)行查詢的相關(guān)過程語句,如圖8-3所示圖8-3查詢過刪除過選中數(shù)據(jù)庫student,展開該節(jié)點(diǎn)。單擊該數(shù)據(jù)庫節(jié)點(diǎn)下的[過程]節(jié)將彈出如圖8-4所示的框。單擊“全部除去”按鈕,將刪除所選中的8-4Transact-SQL創(chuàng)建過在查詢分析器中,輸入根據(jù)SN進(jìn)行查詢的過程語句,如圖8-5所示圖8-5創(chuàng)建按SN進(jìn)行查詢的過StuQuery_Proc的USEStudentIFEXISTS(SELECTNAMEFROMSYSOBJECTSWHERENAME='StuQuery_Proc'ANDTYPE='P')DROPPROCEDUREStuQuery_ProcUSE炒飯的IFEXISTS(SELECTNAMEFROMSYSOBJECTSWHERENAME='StuQuery_Proc'ANDTYPE='P')DROPPROCEDUREStuQuery_ProcCREATEPROCEDUREStuQuery_Proc@SNOVARCHAR(8)=NULLIF@SNOISSELECT'PleaseInputSN!'SELECTSN,SName, FROMstudentWHERESN=@SNO執(zhí)行過8-6use炒飯的8-68-7
8-7修改過將按SN進(jìn)行查詢的過程改為按SName進(jìn)行查詢的過程,結(jié)果如8-8。圖8-8創(chuàng)建按SName進(jìn)行查詢的過程輸入“,過程執(zhí)行結(jié)果如圖8-9。圖8-9參數(shù)為“”的執(zhí)行結(jié)查看過使用SP_HELPTEXT命令查看過程文本信息,結(jié)果如圖8-10使用SP_HELP命令查看過程的一般信息,結(jié)果如圖8-118-10SP_HELPTEXT8-11SP_HELP刪除過執(zhí)行如圖8-12所示語句,即可刪除過程圖8-12刪除過實(shí)驗(yàn)九SQLSERVER2000要。SQLServer2000提供了內(nèi)置的安全性和數(shù)據(jù)保護(hù),并且這種管理有效而容是以“賬號(hào)”為的一系列管理。通過本實(shí)驗(yàn),應(yīng)能夠:主要通過實(shí)驗(yàn)熟悉SQLSERVER2000中安全控制、登錄標(biāo)識(shí)管理、角SQLServer的服務(wù)器安全性建立在控務(wù)器登錄賬號(hào)和口令的基礎(chǔ)上。SQLServer采用了標(biāo)準(zhǔn)的SQLServer登錄和集成Windows2000/NT登錄兩種方獲得SQLServer的權(quán)`,以及在獲得權(quán)后用戶在SQLServer進(jìn)程時(shí)可以擁有的權(quán)利設(shè)計(jì)和管理合理的登錄方式是SQLServer DBA的重要任務(wù),在SQLServer安全體系中,DBA可以發(fā)揮主動(dòng)性的第一道防線。Local(WindowsT選中“Local(Windows9-19-1,”9-2所示。圖9-2SQLServer屬性Windows(S,9-3所示。9-3indow(Windows(SSQLSERVERstudent9-49-5所示的界面,在其中輸入登錄“student,“student,9-6所示的界面,選擇“SystemAdministrators”服務(wù)器角色。9-49-5student9-6圖9-7設(shè)置所的數(shù)據(jù)庫和數(shù)據(jù)庫角9-8設(shè)置,可以以賬號(hào)student ,Transact-SQL例1:為用戶student123創(chuàng)建一個(gè)SQLSERVER登錄名,為123,默student。9-9SQL9-9T-SQL單擊上的按鈕,執(zhí)行該T-SQL語句,則系統(tǒng)給出“已創(chuàng)建新登 ,按F5鍵刷新之后,會(huì)看到用戶已經(jīng)被創(chuàng)9-10student9-11所示。9-11打開如圖9-12所示的新建數(shù)據(jù)庫用戶框SQL圖9- 新建數(shù)據(jù)庫用戶2studentSQLSERVERYstudent123添加數(shù)據(jù)123。以SA或具有的用戶賬號(hào)來使用查詢分析器,選擇student數(shù)據(jù)庫,9-13所示的語句。9-13單擊上的按鈕執(zhí)行該T-SQL語句則系統(tǒng)給“已向授予數(shù)據(jù)庫權(quán)”的提示SQLServer2000SQLServerSQLSERVER9-149-149-149-159-159-16所示。9-16現(xiàn)圖9-17所示的數(shù)據(jù)庫角色屬性框,單擊“添加”按鈕,則會(huì)出現(xiàn)該角色圖9-17數(shù)據(jù)庫角色屬性 9-18所示。9-18準(zhǔn)角色(StandardRole),單擊“確定“按鈕。db_Learning9-19db_Learning9-209-20SQLServerSQLServer2000常包括表、視圖、過程。、對(duì)象權(quán)限是針對(duì)數(shù)據(jù)庫對(duì)象設(shè)置的,它由數(shù)據(jù)庫對(duì)象所有者授予或撤Transact-SQL9-1、9-1EXECUTE(調(diào)用過程DRI(參照完整性Transact-SQL語句和功能如9-2所示。9-2Transact-SQLSASQL創(chuàng)建過BACKUPBACKUP隱含權(quán)限指系統(tǒng)預(yù)定義而不需要就有的權(quán)限包括固定服務(wù)器角色成員、例如,sysadmin固定服務(wù)器角色成員可以在服務(wù)器范圍內(nèi)做任何操作,dbo命令,此時(shí)會(huì)出現(xiàn)一個(gè)對(duì)象權(quán)限框,如圖9-21所示。9-21/Public(2)通過用戶或角色授予、撤消或?qū)ο髾?quán)例4要對(duì)數(shù)據(jù)庫student中的“db_Learning”角色進(jìn)行操作。SQLstudentstudent,單擊令后,出現(xiàn)如圖9-22所示數(shù)據(jù)庫角色屬性框。圖9-22數(shù)據(jù)庫屬性角色 圖9-23數(shù)據(jù)庫角色權(quán)限屬性在框的權(quán)限列表中,對(duì)每個(gè)對(duì)象進(jìn)行授予、撤消或權(quán)限操作。完成后,單擊“確定”按鈕。返回?cái)?shù)據(jù)庫角色屬性框后,再單擊“SQLServerSQLstudent數(shù)據(jù)庫并在彈出菜單中選“屬性命令會(huì)出現(xiàn)數(shù)據(jù)庫屬性框②在數(shù)據(jù)庫屬性框中,選擇“權(quán)限”選項(xiàng)卡,出現(xiàn)數(shù)據(jù)庫用戶及角色的語句權(quán)限框,如圖9-24所示。在圖9-24中設(shè)置用戶和角色的各種權(quán)限圖9-24數(shù)據(jù)庫用戶和角色的語句權(quán)限“×”Transact-SQLSQLServer2000SQLServer的企業(yè)管理器的Transact-SQL語句實(shí)現(xiàn)。僅介紹用Transact-SQL語句實(shí)現(xiàn)權(quán)限管理。5student123。SASQL9-259-25語句權(quán)限student123studentstudent123用戶。如果用戶名為數(shù)字,輸入時(shí)寫成“[123]Courseinsert和delete的權(quán)限。SASQL9-269-26對(duì)象權(quán)限public和用戶[123]注意:SQLServerSQL的不同是省去了對(duì)象類型,直接寫對(duì)象名稱7Scores的屬性“Gradestudent。SASQL9-279-279-28單擊“列”按鈕,彈出如圖9-29所示的“列權(quán)限”框9-29例8用戶123的CREATETABLE語句權(quán)限。SASQL9-30圖9-30語句權(quán)限操庫的創(chuàng)建表的語句權(quán)限被。例9用戶123對(duì)表Course的DELETE權(quán)限。SASQL9-31圖9-31對(duì)象權(quán)限操123Course的權(quán)限被DENY語句限制用戶或角色的某些權(quán)限。這樣不僅刪除了以前授予用戶或角色的某些權(quán)限而且還這些用戶或角色從其他角色繼承禁10123CREATETABLE語句權(quán)限。SASQL9-329-32student8123所做的創(chuàng)建表的語句權(quán)限操作被撤消用戶123現(xiàn)在可以創(chuàng)建表了。11123CourseDELETE權(quán)限。SASQL9-339-33123CourseSQLServer數(shù)據(jù)庫管理和使用過程中的一項(xiàng)非常關(guān)鍵的操作。SQLServerBACKUPDATABASERESTOREDATABASE兩個(gè)命令的方法。10-1所示。10-2所示的“SQLSERVER備份”student-完全10-3所示的界面。10-1圖10-2“SQLSERVER備份”10-3選擇“文件名單擊右邊“…”按鈕,出現(xiàn)如圖10-4所示的框,E:\data\studentbak10-4在圖10-3的框中單擊“確定”按鈕,在圖10-2的框中單擊“確定”按鈕,SQLSERVER開始備份工作,完畢后出現(xiàn)如圖10-5所示的框10-5Transact-SQL1)SASQL10-610-6student圖10-7所示。10-7單擊“還原數(shù)據(jù)庫”菜單,打開如圖10-8所示的框圖10-8還原數(shù)據(jù)庫student現(xiàn)如圖10-9所示的框。10-9在圖10-9框中單擊“選擇設(shè)備”按鈕,打開如圖10-10所示的10-10選擇“磁盤,單擊“添加”按鈕,出現(xiàn)如圖10-11所示的框10-11在圖10-11框中單擊“…”按鈕,出現(xiàn)如圖10-12所示界面圖10-12選擇備份設(shè)備位置E:\data\studentbak8)一直單擊“確定”按鈕,直到出現(xiàn)如圖10-13所示的還原提示框10-139)Transact-SQL2利用“D:\databasebakstudent數(shù)據(jù)庫。SASQL10-1410-14。3)在企業(yè)管理器中關(guān)閉“student”數(shù)據(jù)庫或使當(dāng)前數(shù)據(jù)庫不為“studentstudent4)10-14SQL10-1510-15通過一個(gè)簡(jiǎn)單的完整的數(shù)據(jù)庫應(yīng)用系統(tǒng)示例剖析,應(yīng)C#ADO.NET相結(jié)合開發(fā)的一個(gè)簡(jiǎn)易的完整的學(xué)生管理信息系統(tǒng)。11-2E-Rusertable為用戶賬號(hào)表,Student為學(xué)生基本信息表,Course為課程表,Scores為學(xué)生的成績表。StudentSQL語句來完成表的設(shè)計(jì)。登數(shù)數(shù)報(bào)退錄據(jù)據(jù)表出系統(tǒng)學(xué)課生程學(xué)課生程信信息息維維護(hù)護(hù)成學(xué)課績生程信信信息息息維查查護(hù)詢?cè)兂纱虼蚩冇∮≌n學(xué)課程生程查信信詢息息圖11-1 創(chuàng)建學(xué)生表的SQL如下:[SN][char](8)COLLATE_PRC_CI_ASNOTNULL,[SName][char](10)COLLATE_PRC_CI_ASNOTNULL,[][char](2)COLLATE_PRC_CI_ASNULL,[Age][smallint]NULL[Dept][char](20)COLLATE_PRC_CI_ASNULL,[Class][char](20)COLLATE_PRC_CI_ASNULL)ON[PRIMARY]創(chuàng)建課程表的SQL如下[CN][char](5)COLLATE_PRC_CI_ASNOTNULL,[CName][char](20)COLLATE_PRC_CI_ASNULL[Teacher][char](20)COLLATE_PRC_CI_AS)ON[PRIMARY]創(chuàng)建成績表的SQL如下[SN][char](8)COLLATE_PRC_CI_ASNOTNULL,[CN][char](5)COLLATE_PRC_CI_ASNOTNULL[Grade][smallint])ON[PRIMARY]創(chuàng)建用戶表的SQL如下[username][char](10)COLLATE_PRC_CI_ASNOTNULL,[password][char](10)COLLATE_PRC_CI_ASNULL)ON[PRIMARY] 系統(tǒng)E-R運(yùn)行程序后,首先出現(xiàn)的是用戶登錄窗口。用戶通過輸入用戶帳號(hào)、,11-311-4。 圖11-4 對(duì)象(控件)取值(說明帳號(hào),對(duì)象(控件)取值(說明導(dǎo)入如下兩個(gè)命名空間usingSystem.Data;usingSystem.Data.Sql;,主要用于連接數(shù)據(jù)庫。在變量的地方定義如下幾個(gè)變量:publicstaticstringstrUser="publicstaticboolblCanLogin=false記錄能否成功登錄privateDataTablemyTable;privateDataRowprivatevoidbutton1_Click(objectsender,System.EventArgs{stringmyConnectionString="";if(myConnectionString==""){myConnectionString="initialcatalog=student;DataSource=USER-C9GR5600WB;IntegratedSecurity=SSPI";“USER-C9GR5600WB”SQLServer//在不同機(jī)器上運(yùn)行時(shí),注意修改此實(shí)例名稱//DataSource}SqlConnectionmyConn=newSqlConnection();myConn.ConnectionString=myConnectionString;{myConn.Open}catch(SqlException{}stringmyQuery="select*frommand mandSqlDataAdaptermyDA=newmandDataSetmyDS=newDataSet();//創(chuàng)建數(shù)據(jù)集對(duì)象for(inti=0;i<myTable.Rows{//只有當(dāng)輸入的用戶名和同時(shí)滿足記錄要求時(shí),才能通過驗(yàn)&&myRow[1].ToString().Trim()=={}}MessageBox.Show("您輸入的用戶號(hào)或不正確!");}privatevoidtextBox1_KeyUp(objectsender,System.Windows.Forms.KeyEventArgse){if(e.KeyValue==13)}privatevoidtextBox2_KeyUp(objectsender,System.Windows.Forms.KeyEventArgse){if(e.KeyValue==13)}privatevoidbutton2_Click(objectsender,System.EventArgs{this.Close();}統(tǒng)的所有菜單。在主窗體中放置一個(gè)StatusBar控件和一個(gè)Main控件。主窗主界面上各控件的屬性設(shè)置如表11-211-2主窗體控件對(duì)象(控件名取值(說明 菜單設(shè)置如圖11-5所示,數(shù)據(jù)處理包含學(xué)生信息、課程信息、成 圖11-5 學(xué)生信息學(xué)生信息staticvoid{LoginFrmlogin=newLoginFrm();Application.Run(newMainFrm());}在裝載窗體Load程序中,添加如下代碼,顯示狀態(tài)欄的第2個(gè)面板“privatevoidMainFrm_Load(objectsender,System.EventArgs{=";}privateboolcheckChildFrmExist(string{foreach(FormchildFrminthis.MdiChildren{{if(childFrm.WindowState==FormWindowState.Minimized)childFrm.WindowState=FormWindowState.Normal;returntrue;}}return}分別實(shí)現(xiàn)學(xué)生信息、學(xué)生信息查詢、打印學(xué)生成績等功能的程序,//顯示學(xué)生信息窗privatevoidmnu_StudentMagage_Click(objectsender,System.EventArgs{AppendStudentInfonewFrm=newAppendStudentInfo();newFrm.MdiParent=this;}privatevoidmnu_Exit_Click(objectsender,System.EventArgs{Application.Exit}privatevoidmnu_StudentQuery_Click(objectsender,System.EventArgs{StudentQuerynewFrm=newStudentQuery();newFrm.MdiParent=this;}privatevoidmnu_ScoresPrint_Click(objectsender,System.EventArgs{newFrm.MdiParent=this;}學(xué)生信息窗體設(shè)學(xué)生信息窗體如圖11-7所示圖11-7學(xué)生信息窗體表11-4學(xué)生信息窗體控件對(duì)象(控件)[學(xué)生信息99Label1-名““男,0在學(xué)生信息窗體上,放置一個(gè)sqlDataAdapter控件,在sqlDataAdapter設(shè)置的第4步[生成SQL語句]窗口中輸入select*fromstudent。11-8Image 導(dǎo)入命名空間usingSystem.Data;usingSystem.Data.Sql;,在變量的地方如下變量。privateDataTablemyTable=newDataTable();privateCurrencyManagermyCM; catalog=student;DataSource=USER-C9GR5600WB;IntegratedprivateSqlDataAdapterprivatevoidDataBindingsFunction(){}privatevoidTextReadOnly()//{textBox1.ReadOnly=true;textBox2.ReadOnly=true;textBox3.ReadOnly=true;comboBox1.Enabled=false;comboBox2.Enabled=false;numericUpDown1.Enabled=false;}{textBox1.ReadOnly=false;textBox2.ReadOnly=false;textBox3.ReadOnly=false;comboBox1.Enabled=true;comboBox2.Enabled=true;numericUpDown1.Enabled=true;}privatevoidAppendStudentInfo_Load(objectsender,System.EventArgs{myDA=newSqlDataAdapter("Select*fromstudent",myConn);dataGrid1.ReadOnly=true;}privatevoidtoolBar1_ButtonClick(objectsender,{{this.dataGrid1.UnSelect(myCM.Position);myCM.Position=0;this.dataGrid1.Select(myCM.Position);this.dataGrid1.CurrentRowIndex=myCM.Position;}if(e.ButtonText上一記錄{if(myCM.Position{this.dataGrid1.UnSelect(myCM.Position);this.dataGrid1.Select(myCM.Position);this.dataGrid1.CurrentRowIndex=myCM.Position;}}=="{if(myCM.Position<myCM.Count-{this.dataGrid1.UnSelect(myCM.Position);this.dataGrid1.Select(myCM.Position);this.dataGrid1.CurrentRowIndex=myCM.Position;}}=="{this.dataGrid1.UnSelect(myCM.Position);myCM.Position=myCM.Count-1;this.dataGrid1.Select(myCM.Position);this.dataGrid1.CurrentRowIndex=myCM.Position;}=="{dataGrid1.ReadOnly=false;myCM.AddNew();}=="{if(MessageBox.Show確定要?jiǎng)h除這條記錄嗎?","提示",MessageBoxButtons.YesNo)==DialogResult.Yes){{if(myCM.Count>0)myCM.RemoveAt(myCM.Position);MessageBox.Show沒有可以刪除的數(shù)據(jù)","",MessageBoxButtons.OK,MessageBoxIcon.Error}catch(Exception{}}}if(e.ButtonText保存記錄{{MessageBox.Show學(xué)號(hào)不能為空!","提示}{MessageBox.Show("不能為空","提}{{}
dataGrid1.ReadOnly=true;this.dataGrid1.UnSelect(myCM.Position);myCM.Position=myCM.Count-1;this.dataGrid1.Select(myCM.Position);this.dataGrid1.CurrentRowIndex=myCM.Positioncatch(Exception{}}}if(e.ButtonText取消修改{{}
myCM.CancelCurrentEditcatch(Exception{}}=="{this.Close}}說明:本程序?qū)崿F(xiàn)的添加、刪除功能采用的是this.sqlDataAdapter1.11-1011-1011-5表11-5學(xué)生信息查詢窗體控件對(duì)象(控件)[學(xué)生信息查詢Label1-名““男,學(xué)院,財(cái)經(jīng)學(xué)院,機(jī)械0在學(xué)生信息查詢窗體(Name屬性為StudentQuery)上,放置一個(gè)sqlDataAdapter4SQL語句為“select*fromstudent”。導(dǎo)入命名空間usingSystem.Data;,usingSystem.Data.Sql;,在聲明變量的地方如下變量。privateDataTablemyTable=newDataTable();在裝載窗體Load程序中添加如下代碼privatevoidStudentQuery_Load(objectsender,System.EventArgs{}編寫查詢程序,主要是如何組織WHEREprivatevoidbtn_Search_Click(objectsender,System.EventArgs{string strFilter+="SNlike'%"+this.textBox1.Text.Trim()+"%'and";strFilter+="SNamelike'%"+this.textBox2.Text.Trim()+"%'and"; strFilter+="like'%" boBox1+"%'and";strFilter+="Age+"and strFilter+="Deptlike boBox2+"' strFilter+="Classlike'%"+this.textBox3.Text.Trim()+"%'and";myTable.DefaultView.RowFilter=strFilter;}明而美觀報(bào)表并打印出來。在VisualStudio.Net2003中有現(xiàn)成的控件可以很好地完成這能,它就是水晶報(bào)表CrystalRep
溫馨提示
- 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. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 【初中生物】真菌-2024-2025學(xué)年七年級(jí)生物上冊(cè)同步教學(xué)課件(人教版2024)
- 【初中生物】微生物的分布-2024-2025學(xué)年七年級(jí)生物上冊(cè)同步備課課件(人教版2024)
- 2024就智能工廠建設(shè)與運(yùn)營的合資合同
- 2024年度清雪業(yè)務(wù)承包合同
- 2024年度特許經(jīng)營與加盟合同
- 2024建設(shè)工程的項(xiàng)目合作協(xié)議合同范本
- 2024個(gè)人小額貸款合同
- 2024股份合伙人合同范本
- 2024年工程設(shè)計(jì)合作伙伴協(xié)議
- 2024年度原材料采購擔(dān)保合同
- 工業(yè)自動(dòng)化系統(tǒng)集成項(xiàng)目驗(yàn)收方案
- 新教科版科學(xué)六年級(jí)上冊(cè)全冊(cè)實(shí)驗(yàn)匯總 (超全)
- 王洪圖黃帝內(nèi)經(jīng)80課時(shí)講稿
- 攤鋪機(jī)司機(jī)班組級(jí)安全教育試卷
- 重癥肌無力指南
- 限制被執(zhí)行人駕駛令申請(qǐng)書
- 項(xiàng)目主要施工管理人員情況
- 個(gè)人借條電子版模板
- 關(guān)于學(xué)習(xí)“國語普通話”發(fā)聲亮劍【三篇】
- 玻璃廠應(yīng)急預(yù)案
- 嬰幼兒游戲照料(嬰幼兒回應(yīng)性照護(hù)課件)
評(píng)論
0/150
提交評(píng)論