




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第9章
數據庫應用
9.1數據庫基礎9.2ADO.NET原理9.3DataSet應用9.4綜合應用9.1數據庫基礎Access2007(全名MicrosoftOfficeAccess2007)是由微軟發布的小型數據庫管理系統。它結合了
MicrosoftJetDatabaseEngine和
圖形用戶界面兩項特點,是
MicrosoftOffice的成員之一。Access在2000年的時候成為了計算機等級考試二級選考的一種數據庫語言,并且因它的易學易用,正逐步取代傳統的VFP成為二級中最受歡迎的數據庫語言。9.1.2創建數據庫(1)啟動Access2007,單擊左上角圓形按鈕,從彈出的菜單中選擇【新建】項,再在窗口右側設定新建數據庫的路徑和名稱,將此數據庫命名為“xscj.accdb”;單擊【創建】按鈕,如圖9.1所示。9.1.2創建數據庫(2)單擊工具欄選項頁【創建】→【表】,右擊表標簽,選擇【設計視圖】,如圖9.2所示,在【另存為】對話框中給表取名,確定后,系統將打開表的設計視圖,進入“數據表設計”窗口。9.1.2創建數據庫在該窗口中,有“字段名稱”、“數據類型”和“說明”3個選項,可根據需要創建表結構。本例要創建KC(課程)表、XS(學生)表和XS_KC(成績)3個表。創建XS_KC表結構之后的窗口如圖9.3所示,設計完成后關閉設計窗口。9.1.2創建數據庫在表設計窗口,按設定的字段名填入后,數據類型自動默認為“文本”,可根據需要從下拉列表(如圖9.4)中選定適當的類型;說明列可不填,僅供注釋用。9.1.2創建數據庫本實驗數據庫3個表的各字段名稱、含義、類型和數據屬性如表9.1所示。9.1.2創建數據庫(3)3個表的結構建好后,用鼠標雙擊“XS”表名,打開數據輸入界面,在每列中填入相應類型和格式的數據,即可完成該數據表的創建工作。數據輸入窗口如圖9.5所示。9.1.3SQL語言表9.2列出了常用的SQL命令及其相應的功能,表9.3列出了常用的一些SQL子句,這些命令和子句經過一定的組合,可以創建一個SQL語句,完成某項數據庫操作功能。9.1.3SQL語言1.SELECT命令(1)功能SELECT命令的功能是從給定的數據表或數據表的連接中找出滿足給定條件的記錄,并且返回這些記錄的內容。(2)語法SELECT[ALL|DISTINCT|DISTINCTROW]fields_listFROMtable_names[WHERE…][GROUPBY…][HAVING…][ORDERBY…]9.1.3SQL語言(3)參數說明[ALL|DISTINCT|DISTINCTROW]:ALL是選擇符合條件的全部記錄;DISTINCT是過濾掉包含返回字段內容的記錄;DISTINCTROW是過濾掉包含返回記錄內容的記錄。fields_list:字段名列表,可以來自同一個表或不同的表,字段名之間用逗號分隔。如果不同的表中有相同的字段名,在字段名列表中需要指明該字段來自哪一個表,即以table_name.fields_name方式指明。table_names:要查詢的數據表名,可以是一個表或多個表,表名之間用逗號分隔。FROM、WHERE、GROUPBY、HAVING、ORDERBY子句的說明見表9.3。9.1.3SQL語言(4)邏輯運算符、比較運算符、通配符要設置一個查詢條件,必然要用到比較運算符、邏輯運算符和一些通配符等,表9.4、表9.5和表9.6分別列出了這些內容。(5)聚合函數在SELECT語句中可使用的聚合函數如表9.7所示。9.1.3SQL語言(6)Select語句示例①查詢學生表中所有字段。SELECT*FROMXS②從學生表中查詢所有專業名稱,要求不重復顯示相同的專業名稱。SELECTDISTINCTZYMFROMXS③按學號升序、成績降序檢索學生成績。SELECT*FROMXS_KCORDERBYXHASC,CJDESC④查詢至少有一門課成績大于85的學生姓名。SELECTXMFROMXS,XS_KCWHEREXS_KC.CJ>85andXS.XH=XS_KC.XH⑤查詢與“李林”專業相同的學生姓名。SELECTXMFROMXSWHEREXS.ZYM=(SELECTZYMFROMXSWHEREXMIN('李林'))
9.1.3SQL語言⑥查詢所有成績在80~90之間的學生。SELECTXS.XMFROMXS,XS_KCWHERE
(XS_KC.CJBETWEEN80AND90)AND(XS.XH=XS_KC.XH)⑦計算英語課的平均成績、最高成績和最低成績。SELECTKCM, AVG(XS_KC.CJ)AS"平均成績", MAX(XS_KC.CJ)AS"最高成績", MIN(XS_KC.CJ)AS"最低成績"FROMXS_KC,KC;
WHEREKCM=
"英語"ANDXS_KC.KCH=KC.KCH⑧統計每門課程的名稱、平均成績。SELECTKC.KCM,AVG(XS_KC.CJ)AS"平均成績"FROMKC,XS_KC;
GROUPBYXS_KC.KCHWHEREXS_KC.KCH=KC.KCH⑨將成績表和課程表按內部連接,查詢每個學生的學號、課程名、該課程成績。SELECTXS_KC.XH,KC.KCM,XS_KC.CJFROMXS_KCINNERJOINKCON
XS_KC.KCH=KC.KCH9.1.3SQL語言2.INSERT命令(1)功能INSERT命令的功能是向一個表中加入一條記錄。(2)語法INSERTINTOtable[(field1[,field2[,…]])]VALUES(val1[,val2[,…]])使用該語句時,必須指定要加入的每個字段名和它對應的值。如果一個字段和對應的數值為空,那么系統自動加入一個相應的默認值,新加入的記錄排在表的尾部。例如:InsertintoXS_KC(CJ,KCH,XH)values(78,'01','060102')9.1.3SQL語言3.UPDATE命令(1)功能UPDATE命令的功能是把數據表中的某些字段值設置為一個新值。(2)語法UPDATEtableSETvalueWHEREcriteria其中,SET子句中的value是一個等式。它將改變指定的表中被選擇的那些記錄的當前值。例如:UPDATEXS_KCSETCJ=87,KCH='02'WHEREXKID=319.1.3SQL語言4.DELETE命令(1)功能DELETE命令的功能是一次刪除指定表中的記錄。該命令刪除的是整條記錄,而不是單個字段。(2)語法DELETE*FROMtableWHEREcriteria例如:DELETE*FROMXS_KCWHEREXH='060102'
9.2ADO.NET原理9.2.1ADO.NET模型ADO.NET(ActiveXDataObject.NET)是一個功能強大的數據訪問接口,通過ADO.NET可以方便地訪問數據庫,其編程接口如圖9.6所示。9.2.1ADO.NET模型SQLServer.NET和OLEDB.NET數據提供程序訪問物理數據庫模型如圖9.7所示。9.2.2ADO.NET結構ADO.NET對象模型的兩個核心組件是.NET數據提供程序和DataSet對象,其結構如圖9.8所示。9.2.3數據訪問控件在VB.NET集成開發環境工具箱的“數據”控件列表中,有DataSet、DataGridView、BindingSource、BindingNavigator等控件,如圖9.9所示。9.2.3數據訪問控件針對不同數據庫編程的時候還會用到幾組不同前綴的Connection、DataAdapter、Command等控件,如果控件不在工具箱中,可以用鼠標右擊工具箱,選擇【選擇項】菜單,進入【選擇工具箱項】對話框,將相應的控件添加到工具箱中,如圖9.10所示。9.2.4數據訪問步驟(1)用Connection建立與數據庫的連接。在ADO.NET中,一般用Connection對象建立與數據庫的連接,在工具箱中有幾種Connection對象,可以根據需要選擇。通過設置Connection對象的ConnectionString屬性,可以連接各種數據源,該屬性值是字符串類型,稱為數據庫連接串,不同的數據庫,它的連接串是不同的。例如,連接到D盤MyDocuments文件夾中的Access數據庫xscj.accdb的連接串如下:OleDbConnection1.ConnectionString="Provider=Microsoft.ACE.OLEDB.12.0;DataSource='D:\MyDocuments\xscj.accdb'" '定義連接OleDbConnection1.Open() '打開連接9.2.4數據訪問步驟①首先,通過單擊【數據】→【添加新數據源】菜單項,彈出對話框,如圖9.11(a)所示,單擊【下一步】按鈕,在對話框中單擊【新建連接】按鈕,顯示如圖9.11(b)所示。9.2.4數據訪問步驟選擇要連接的數據庫文件名,單擊【確定】按鈕,顯示如圖9.12所示,再單擊【完成】按鈕,系統即建立了一個數據源,新建的DataSet對象名為“xscjDataSet”。9.2.4數據訪問步驟②其次,在項目中添加一個OleDbConnection對象,在它的“ConnectionString”屬性下拉列表中將顯示系統已建立的連接,如圖9.13所示,選擇相應的連接即可完成數據庫的連接設置。③最后,在程序中調用OleDbConnection對象的Open方法打開數據庫連接。9.2.4數據訪問步驟(2)用Command對象執行SQL命令。連接數據庫后,通過Command對象或DataAdapter對象執行Select、Insert、Update或Delete等SQL命令,對數據庫進行查詢、插入、更新和刪除等操作。Command對象要執行的SQL命令是通過它的CommandText屬性定義的,CommandText屬性值也是字符串類型。執行SQL命令通過調用Command對象的幾個方法來完成,Command對象的常用方法見表9.8。9.2.4數據訪問步驟(3)用DataAdapter對象執行SQL命令。若不用Command對象執行SQL命令,也可用DataAdapter對象對數據庫進行操作。DataAdapter對象可用于在數據源和DataSet數據集之間交換數據,它向DataSet填充數據或把DataSet數據更新回原始數據源。DataAdapter對象包含4個Command對象,分別是SelectCommand、InsertCommand、UpdateCommand和DeleteCommand,它們分別執行Select、Insert、Update和Delete命令。9.2.4數據訪問步驟(4)顯示數據。從數據庫查詢得到的結果需要在窗體中顯示出來,可以利用數據顯示控件來實現。常用的數據顯示控件是DataGridView(圖標為
)。該控件的一個重要屬性是“DataSource”,用于設置綁定的數據源,它的值可以是一個數據集合,如DataSet對象等。9.2.5數據訪問簡單實例【例9.1】用DataAdapter、DataSet對象和DataGridView控件,讀取并顯示課程數據表。將xscj.accdb數據庫文件放到特定目錄下(本例為D:\MyDocuments)。項目建立后,在設計窗口,添加一個按鈕和一個DataGridView控件用來顯示查詢結果,適當調整該控件的大小及外觀,其他屬性都采用默認值。在按鈕的Click事件中,實現數據庫連接、打開、查詢、顯示,所有與數據庫訪問有關的對象都是在代碼中創建,具體程序代碼。9.2.5數據訪問簡單實例本例在程序中創建Connection、DataAdapter、Command和DataSet對象,而不是利用控件來創建。程序連接并打開xscj數據庫,讀取KC表填充到DataSet對象,再將KC表在DataGridView控件中顯示輸出,運行結果如圖9.14所示。9.3DataSet應用9.3.1DataSet及相關對象1.DataAdapter對象DataAdapter對象用來傳遞各種SQL命令,并將命令執行結果填入DataSet對象。并且它還可將DataSet更改過的數據寫回數據源。它是數據庫與DataSet對象之間溝通的橋梁。DataAdapter怎樣向DataSet填充數據呢?如圖9.15所示。9.3.1DataSet及相關對象使用DataAdapter對象前必須先創建,創建DataAdapter對象的語法格式有如下4種:①Dim對象名
AsNewOleDbDataAdapter()②Dim對象名
AsNewOleDbDataAdapter(OleDbCommand對象)③Dim對象名
AsNewOleDbDataAdapter(SQL命令串,OleDbConnection對象)④Dim對象名
AsNewOleDbDataAdapter(SQL命令串,連接字符串)
9.3.1DataSet及相關對象例如,以下代碼使用第1種格式創建DataAdapter對象:DimconnAsNewOleDbConnection()DimcmdAsNewOleDbCommand()conn.ConnectionString="Provider=Microsoft.ACE.OLEDB.12.0;DataSource= 'D:\MyDocuments\xscj.accdb'"conn.Open()cmd.Connection=conncmd.CommandText="Select*fromXS"DimAdptAsNewOleDbDataAdapter(cmd)再如,以下代碼使用第3種格式創建DataAdapter對象:DimconnAsNewOleDbConnection()conn.ConnectionString="Provider=Microsoft.ACE.OLEDB.12.0;DataSource= 'D:\MyDocuments\xscj.accdb'"conn.Open()DimAdptAsNewOleDbDataAdapter("Select*fromXS",conn)9.3.1DataSet及相關對象第1種格式是在創建DataAdapter對象后,再賦予其連接、SQL命令等對象屬性值,第4種格式則不需先建立OleDbConnection和OleDbCommand對象即直接創建,例如:DimAdptAsNewOleDbDataAdapter("Select*fromXS","Provider=Microsoft.ACE.OLEDB.12.0; DataSource='D:\MyDocuments\xscj.accdb'")9.3.1DataSet及相關對象DataAdapter對象的常用屬性和方法分別列于表9.9和表9.10中。9.3.1DataSet及相關對象2.DataSet對象DataSet對象包括3個常用的集合:DataTableCollection(數據表集合,包括多個DataTable對象)、DataRowCollection(行集合,包含多個DataRow對象)和DataColumnCollection(列集合,包含多個DataColumn對象)。DataSet對象的結構如圖9.16所示。9.3.1DataSet及相關對象必須先創建DataSet對象后才能使用它,創建的語法格式如下:Dim對象名
AsNewDataSet()Dim對象名
AsNewDataSet(數據集名)第1種格式未指出數據集名,可在創建DataSet對象后用DataSetName屬性來設置。例如,以下代碼定義數據集對象DS,其中包含數據表XS:DimconnAsString="Provider=Microsoft.ACE.OLEDB.12.0;DataSource= 'D:\MyDocuments\xscj.accdb'"DimObjAdptAsNewOleDbDataAdapter("Select*fromXS",conn)DimDSAsNewDataSet()'定義DataSet對象ObjAdpt.Fill(DS,"students")'填充數據集9.3.1DataSet及相關對象DataSet對象的常用屬性和方法分別列于表9.11和表9.12中。9.3.1DataSet及相關對象3.DataRelation對象創建DataRelation對象實例的語法格式如下:關系對象名
=NewDataRelation(關系名,DataColumn1,DataColumn2)例如,定義一個名為XS_XK的DataRelation對象,用名為tblXS和tblXK的DataTable對象中的學號字段,創建學生表和學生成績表之間的關系,代碼如下:XS_XK=NewDataRelation("XSXS_KC",tblXS.Columns("XH"),tblXK.Columns("XH"))
9.3.2用DataSet查詢數據庫1.簡單查詢【例9.2】分別用一個DataGridView、DataAdapter、DataSet、Connection控件和一個按鈕對象,查詢學生信息。本例題還要添加OleDbDataAdapter1控件對象,它充當數據庫和程序之間的數據搬運者。添加OleDbDataAdapter1時,會自動彈出【數據適配器配置向導】對話框;或在以后修改OleDbDataAdapter1時,在控件對象上單擊鼠標右鍵,在彈出的菜單中選擇【配置數據適配器】,再在對話框中選擇連接,選擇數據表,生成SQL語句,如圖9.17所示。9.3.2用DataSet查詢數據庫完成數據庫連接和數據表設定后,下一步要做的工作是建立應用程序的DataSet對象,如圖9.18所示,右擊OleDbDataAdapter1控件,選擇【生成數據集】,出現圖9.19的【生成數據集】對話框,勾選XS數據表前的復選框,單擊【確定】按鈕。
9.3.2用DataSet查詢數據庫然后在窗體上再添加一個DataGridView控件,作為表格的輸出,其DataSource屬性值設為XscjDataSet1,其DataMember屬性值設為XS表,如圖9.20所示,DataGridView1控件中就會出現XS表的各個字段。此時只有表結構,數據并沒有出現,具體的數據在運行時才能得到,如圖9.21所示。
9.3.2用DataSet查詢數據庫上述操作添加了4個控件并完成相應的屬性設置后,程序代碼只需簡單的一行就可以實現數據庫查詢了,程序代碼如下:PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs) HandlesButton1.ClickOleDbDataAdapter1.Fill(XscjDataSet1)EndSub9.3.2用DataSet查詢數據庫單擊【查詢】按鈕,輸出結果如圖9.22所示。9.3.2用DataSet查詢數據庫2.條件查詢【例9.3】按學號條件查詢學生信息,要求學號和姓名欄的標題用漢字顯示,不顯示備注字段。新建項目,在設計窗口添加一個GroupBox、一個標簽、一個文本框(TxtXH)、一個按鈕(Button1)和一個DataGridView控件,適當調整該控件的大小,其他屬性都采用默認值,如圖9.23所示。9.3.2用DataSet查詢數據庫在【查詢】按鈕的Click事件中,實現數據庫連接、打開、查詢和顯示。若用戶輸入了學號,則按該學號進行模糊查詢,否則輸出全部記錄,具體程序代碼。在學號中輸入“0601”,單擊【查詢】按鈕,運行結果如圖9.24所示。9.3.2用DataSet查詢數據庫3.關聯表查詢【例9.4】查詢并輸出“學生”與“成績”兩個關聯數據表,要求單擊學生表的記錄時,在成績表中自動顯示該學生的各科成績。新建項目,在設計窗口添加一個【查詢】按鈕(Button1)和兩個DataGridView控件(分別用來顯示“學生表”和“成績表”),適當調整控件大小,其他屬性采用默認值,如圖9.25所示。9.3.2用DataSet查詢數據庫要實現關聯查詢,首先要建立DataAdapter、Connection、DataSet對象,同時還要建立DataRelation對象“XS_XK”;在打開數據庫連接后,分別獲取“學生”、“成績”兩個關聯數據表,建立它們之間的關系;然后將關系添加到DataSet中。所有的操作都在【查詢】按鈕的Click事件代碼中完成,程序代碼。9.3.2用DataSet查詢數據庫4.XML數據查詢【例9.5】用DataSet查詢包含“成績”數據表的XML文件。XML文檔可以用一系列的標記,以文本方式描述數據,如Access的數據表,可以另存為XML格式的文件。右擊KC:表,從快捷菜單中選擇【導出】→【XML文件】,指定目標路徑,如圖9.26所示。9.3.2用DataSet查詢數據庫本例用到的文件“KC.xml”存放在D:\MyDocuments\目錄中,XML源文件。新建項目,在設計窗口添加一個【XML表格】按鈕(Button1)、一個【XML原文】按鈕(Button2)、一個多行文本框(Textbox1)和一個DataGridView控件,適當調整控件大小,其他屬性采用默認值,如圖9.27所示。9.3.2用DataSet查詢數據庫下面是【XML表格】和【XML原文】按鈕的單擊事件代碼:DimKCxmlAsNewDataSetPrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs) HandlesButton1.ClickKCxml.Clear()KCxml.ReadXml("D:\MyDocuments\KC.xml")WithDataGridView1.DataSource=KCxml.DataMember="KC"EndWithEndSub
PrivateSubButton2_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs) HandlesButton2.ClickDimswXMLAsNewSystem.IO.StringWriterKCxml.WriteXmlSchema(swXML)TextBox1.Text=swXML.ToStringEndSub9.3.3用DataAdapter對象更新數據庫【例9.6】通過DataAdapter對象維護“學生”表記錄。新建項目,在窗體上布置一個DataGridView控件作為學生數據表的輸出;若干標簽、文本框、組合框和一個DateTimePicker控件,用于顯示學生明細信息;3個Button分別實現添加、修改和刪除學生記錄操作。另外,數據操作的Connection、DataAdapter、Command和DataSet對象在程序中添加。窗體中主要控件及對象屬性見表9.13。9.3.3用DataAdapter對象更新數據庫設計效果見圖9.28。9.3.3用DataAdapter對象更新數據庫功能設計:當加載窗體后,將讀取學生表并添加到DataSet對象中,同時在DataGridView中顯示學生記錄。當選擇學生記錄時,在下面的各文本框、組合框中顯示相應學生的詳細數據,同時可在其中修改和添加記錄。【添加】按鈕的功能是將各文本框、組合框等對象中輸入的值作為一條新記錄添加到物理數據庫中;【修改】按鈕的功能是將各文本框、組合框等對象中輸入的值作為DataGridView中當前選擇的記錄寫入物理數據庫;【刪除】按鈕的功能是將DataGridView中當前選擇的記錄從物理數據庫中刪除。當進行添加、修改、刪除操作時,均彈出“確認”對話框提示用戶。9.3.3用DataAdapter對象更新數據庫為便于所有過程對數據庫的訪問,在窗體層定義3個全局變量,分別是一個數據集DataSet對象、一個學生表DataTable對象、一個OleDbDataAdapter對象。同時還定義兩個全局過程,其中refreshdata過程用于更新物理數據庫并刷新窗體中的數據顯示,bindgridview過程用于讀取數據庫并顯示數據。程序代碼。9.3.3用DataAdapter對象更新數據庫當窗體加載時,要在DataGridView中顯示學生數據表,因此在窗體Load事件代碼中調用bindgridview過程,讀取學生表并顯示記錄。程序代碼如下:PrivateSubForm1_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs) HandlesMyBase.Loadbindgridview()txtStuXH.Text=DataGridView1.CurrentRow.Cells.Item(0).Value.ToString '顯示學號txtStuXM.Text=DataGridView1.CurrentRow.Cells.Item(1).Value.ToString '顯示姓名txtStuZXF.Text=DataGridView1.CurrentRow.Cells.Item(5).Value.ToString '顯示總學分cbxStuXB.Text=DataGridView1.CurrentRow.Cells.Item(3).Value.ToString '顯示性別cbxStuZYM.Text=DataGridView1.CurrentRow.Cells.Item(2).Value.ToString '顯示專業dtpStuCSSJ.Text=DataGridView1.CurrentRow.Cells.Item(4).Value.ToString '顯示出生日期txtStuBZ.Text=DataGridView1.CurrentRow.Cells.Item(6).Value.ToString '顯示備注EndSub9.3.3用DataAdapter對象更新數據庫當用戶選擇DataGridView中的學生記錄時,會觸發CellClick事件,在下面的各文本框、組合框中顯示相應學生的詳細數據,程序代碼如下:PrivateSubDataGridView1_CellClick(ByValsenderAsSystem.Object,ByValeAsSystem.Windows.Forms.DataGridViewCellEventArgs)HandlesDataGridView1.CellClicktxtStuXH.Text=DataGridView1.CurrentRow.Cells.Item(0).Value.ToString '顯示學號txtStuXM.Text=DataGridView1.CurrentRow.Cells.Item(1).Value.ToString '顯示姓名txtStuZXF.Text=DataGridView1.CurrentRow.Cells.Item(5).Value.ToString '顯示總學分cbxStuXB.Text=DataGridView1.CurrentRow.Cells.Item(3).Value.ToString '顯示性別cbxStuZYM.Text=DataGridView1.CurrentRow.Cells.Item(2).Value.ToString '顯示專業dtpStuCSSJ.Text=DataGridView1.CurrentRow.Cells.Item(4).Value.ToString '顯示出生日期txtStuBZ.Text=DataGridView1.CurrentRow.Cells.Item(6).Value.ToString '顯示備注EndSub9.3.3用DataAdapter對象更新數據庫在【添加】按鈕的Click事件代碼中,先彈出“確認”對話框要求用戶確認,若確認則創建一個新的記錄對象,將用戶輸入的數據分別填入記錄對象相應的字段中,然后再將新記錄添加到DataSet對象的學生表中,最后調用refreshdata過程寫入物理數據庫并刷新顯示。程序代碼如下:PrivateSubbtnAdd_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs) HandlesbtnAdd.ClickDimresponseAsMsgBoxResultresponse=MsgBox("確實要添加記錄嗎?",vbOKCancel+vbQuestion,"系統提示")Ifresponse=MsgBoxResult.OkThen '用戶選擇“確定”DimmyRowAsDataRow=objXSTable.NewRow()
myRow("學號")=txtStuXH.TextmyRow("姓名")=txtStuXM.TextmyRow("ZXF")=txtStuZXF.TextmyRow("XB")=cbxStuXB.TextmyRow("ZYM")=cbxStuZYM.TextmyRow("BZ")=txtStuBZ.TextmyRow("CSSJ")=CDate(dtpStuCSSJ.Text)objXSTable.Rows.Add(myRow) '向學生表添加記錄refreshdata() '更新并刷新顯示EndIfEndSub9.3.3用DataAdapter對象更新數據庫在【修改】按鈕的Click事件代碼中,先彈出“確認”對話框要求用戶確認,若確認則將使用用戶輸入的數據對DataSet學生表的當前記錄對象相應的字段分別進行修改,然后再調用refreshdata過程寫入物理數據庫并刷新顯示。程序代碼。9.3.3用DataAdapter對象更新數據庫在【刪除】按鈕的Click事件代碼中,先彈出“確認”對話框要求用戶確認,若確認則將用戶選擇的DataSet學生表中的當前記錄刪除,然后再調用refreshdata過程寫入物理數據庫并刷新顯示。程序代碼如下:PrivateSubbtnDelete_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs) HandlesbtnDelete.ClickDimresponseAsMsgBoxResultresponse=MsgBox("確實要刪除記錄嗎?",vbOKCancel+vbQuestion,"系統提示")Ifresponse=MsgBoxResult.OkThen '用戶選擇“確定”objXSTable.Rows.Item(DataGridView1.CurrentRow.Index).Delete() '刪除當前記錄refreshdata() '更新并刷新顯示EndIfEndSub9.3.3用DataAdapter對象更新數據庫程序運行后,若選擇記錄并刪除,效果如圖9.29所示。9.4綜合應用【例9.7】查詢學生信息并維護學生表記錄。本例是在例9.6的基礎上,增加按學號查詢學生信息功能,縮小學生記錄的范圍,方便用戶維護。新建項目,在窗體上設計一個分組框并在其中布置一個文本框和一個查詢按鈕,在窗體中布置一個DataGridView作為學生數據表的輸出,若干標簽、文本框、組合框和一個DateTimePicker控件,用于顯示學生明細信息,3個Button分別實現添加、修改和刪除學生記錄;另外,數據操作的Connection、DataAdapter、Command和DataSet對象在程序中添加。9.4綜合應用窗體中主要控件及對象屬性見表9.14。9.4綜合應用界面設計的布局如圖9.30所示。9.4綜合應用功能設計:加載窗體后,讀取學生表的全部記錄并添加到DataSet對象中,同時在DataGridView中顯示全部學生記錄。當單擊“查詢”按鈕時,將按用戶輸入的學號進行模糊查詢,篩選出符合條件的學生記錄,并在DataGridView中顯
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 煙草店轉讓合同范本
- 小區網絡配套合同范本
- 農業工具轉讓合同范本
- 店鋪收購意向合同范本
- 婚慶設備租賃合同范本
- 家庭小院托管合同范本
- 木門地板安裝合同范本
- 教育機構培訓合同范本
- 鋼材購買合同范本
- 倫敦買房合同范本
- 借用品牌合同范本
- 噴灑除草劑安全協議書(2篇)
- 2025年4月自考00015英語二(13000英語專升本)押題及答案
- LTE-V2X系統性能要求及測試規范
- 2025年北森題庫測試題及答案
- 中國大唐集團有限公司陸上風電工程標桿造價指標(2023年)
- 2025年美容師初級技能水平測試卷:美容師美容護膚實操技能試題匯編
- 茶館里的政治:揭秘《茶館》背后的歷史
- 甘肅展廳投影機施工方案
- 跨學科實踐活動5探究土壤酸堿性對植物生長的影響教學設計-2024-2025學年九年級化學魯教版下冊
- 國望液晶數顯切紙機安全操作規程
評論
0/150
提交評論