http://www.cnblogs.com/Miss-Lin/archive/2012/08/13/2635848.html
一、數(shù)據(jù)錄入通過VB向SQL Server數(shù)據(jù)庫(kù)中錄入數(shù)據(jù),可以使用數(shù)據(jù)綁定控件錄入數(shù)據(jù)與使用SQL語(yǔ)句錄入 1.利用數(shù)據(jù)綁定控件錄入數(shù)據(jù)使用數(shù)據(jù)綁定控件錄入數(shù)據(jù)可以運(yùn)行較少的代碼,實(shí)現(xiàn)向數(shù)據(jù)庫(kù)中錄入數(shù)據(jù),數(shù)據(jù)綁定后,由于數(shù)據(jù)綁定控件已經(jīng)與數(shù)據(jù)表相連接,所以只需通過ADO控件的AddNew方法添加一條新的空白記錄,再通過Update方法保存當(dāng)前的記錄,即可完成向數(shù)據(jù)庫(kù)中錄入數(shù)據(jù)。 例:向數(shù)據(jù)庫(kù)中添加一條記錄
2.使用Insert語(yǔ)句錄入數(shù)據(jù)使用SQL語(yǔ)句錄入數(shù)據(jù),通過connection對(duì)象的execute方法執(zhí)行SQL語(yǔ)句,語(yǔ)法如下: connection.execute 字符串,記錄數(shù),字符串參數(shù) 例:向student數(shù)據(jù)庫(kù)中添加一條學(xué)生信息
二、數(shù)據(jù)刪除通過VB刪除數(shù)據(jù)時(shí),不僅可以使用SQL語(yǔ)句中的Delete語(yǔ)句來實(shí)現(xiàn),也可以使用ADO控件Delete方法來刪除數(shù)據(jù)。 1.使用ADO控件Delete方法刪除數(shù)據(jù)使用ADO控件Delete方法刪除數(shù)據(jù)時(shí),被刪除的數(shù)據(jù)信息表面上是被刪除了,實(shí)質(zhì)上數(shù)據(jù)還存在與內(nèi)存中,這時(shí)還需要使用ADO控件的Update方法才能夠?qū)?shù)據(jù)徹底地刪除 例:刪除表中的指定記錄: Adodc1.Recordset.Delete Adodc1.Recordset.Update 例:通過ADO控件Delete方法刪除表中指定的數(shù)據(jù):
2.執(zhí)行Delete語(yǔ)句進(jìn)行數(shù)據(jù)刪除使用Delete語(yǔ)句刪除數(shù)據(jù),不僅可以刪除指定的一條或多條語(yǔ)句,也可以將數(shù)據(jù)表中的數(shù)據(jù)全部刪除 例:在VB中執(zhí)行Delete語(yǔ)句刪除表student中的全部數(shù)據(jù) Cnn.Execute'delete from student' 可以在Delete語(yǔ)句后使用where來限定條件,將條件符合的數(shù)據(jù)刪除 例:刪除表student中年齡大于25歲的數(shù)據(jù)
3.刪除列中的數(shù)據(jù)無論是通過ADO控件Delete方法還是delete語(yǔ)句刪除數(shù)據(jù),都是將一行或多行數(shù)據(jù)全部刪除,如果表中一些行的數(shù)據(jù)需要保留某些列中的信息,那么使用ADO控件Delete方法或Delete語(yǔ)句都是比較麻煩的。 對(duì)于刪除表中的數(shù)據(jù),可以采取數(shù)據(jù)的方式實(shí)現(xiàn),即將刪除列中的數(shù)據(jù)直接更新為Null 例:通過ADO控件Update方法刪除表中列的數(shù)據(jù)
三、數(shù)據(jù)修改在VB中修改數(shù)據(jù),不僅僅可以采用執(zhí)行SQL語(yǔ)句實(shí)現(xiàn),也可以通過數(shù)據(jù)綁定控件進(jìn)行數(shù)據(jù)的修改。數(shù)據(jù)綁定控件進(jìn)行數(shù)據(jù)的修改采用的代碼較少,特別是一些表格類數(shù)據(jù)綁定控件,不需要代碼即可對(duì)數(shù)據(jù)進(jìn)行修改,如DataGrid控件。 1.使用Update語(yǔ)句修改數(shù)據(jù)Update語(yǔ)句通過ADO對(duì)象的Execute方法執(zhí)行,達(dá)到對(duì)數(shù)據(jù)表中的數(shù)據(jù)進(jìn)行修改 Cnn.Execute'Update 數(shù)據(jù)表名稱 set 字段1=表達(dá)式1,字段2=表達(dá)式2……where子句' 在Update語(yǔ)句中可以使用where子句,還有符合條件的數(shù)據(jù)可執(zhí)行修改操作,如果使用where指定條件,則Update語(yǔ)句會(huì)修改表中的全部數(shù)據(jù) 通常都是在批量更改時(shí)采用該語(yǔ)句,這種方法要比ADO的Update方法逐條地修改數(shù)據(jù)方便,但VB中一些表格控件可以不需要代碼而直觀實(shí)現(xiàn)數(shù)據(jù)的批量修改 2.表格數(shù)據(jù)綁定控件修改數(shù)據(jù)在VB中采用表格數(shù)據(jù)綁定修改控件修改數(shù)據(jù),基本上不需要代碼,只需要設(shè)置表格數(shù)據(jù)綁定控件的一些屬性即可實(shí)現(xiàn),例如DataGrid控件,將其綁定到相應(yīng)的數(shù)據(jù)源上,再設(shè)置其AllowUpdate屬性為True,即可實(shí)現(xiàn)表格中修改的數(shù)據(jù)及時(shí)更新到數(shù)據(jù)庫(kù)中 該屬性可返回或設(shè)置一個(gè)值,指示用戶能否修改DataGrid控件中的數(shù)據(jù),語(yǔ)法: DataGrid.AllowUpdate=布爾表達(dá)式 例:使用DataGrid控件修改數(shù)據(jù)
3.使用文本數(shù)據(jù)綁定控件修改數(shù)據(jù)與DataGrid控件不同,文本類控件綁定數(shù)據(jù)后在修改數(shù)據(jù)時(shí),由于所修改的數(shù)據(jù)只是寫入在緩存當(dāng)中,所以需要通過ADO的Update方法提交修改,另外,ADO還提供CancelUpdate方法,用此方法來撤銷在使用Update方法前對(duì)數(shù)據(jù)所作的修改,在程序中使用CancelUpdate方法的代碼如下:Adodc1.Recordset.CancelUpdate 例:使用文本控件綁定數(shù)據(jù)并進(jìn)行修改數(shù)據(jù)
四、數(shù)據(jù)查詢VB中查詢數(shù)據(jù)庫(kù)中的數(shù)據(jù)不僅可以通過執(zhí)行SQL語(yǔ)句實(shí)現(xiàn),也可以通過控件或?qū)Γㄈ?/span>ADO)限定檢索數(shù)據(jù)的條件來實(shí)現(xiàn)。 1.簡(jiǎn)單查詢簡(jiǎn)單查詢可以通過Select語(yǔ)句限定數(shù)據(jù)源來實(shí)現(xiàn)。在Select語(yǔ)句中使用關(guān)鍵字、子句等實(shí)現(xiàn)。 下面對(duì)幾種常用的簡(jiǎn)單查詢進(jìn)行介紹: 1)使用AS改變查詢數(shù)據(jù)的列名多數(shù)情況下,在SQL Server中創(chuàng)建表的字段都是以英文命名的,這些字段名在顯示時(shí)給一般用戶帶來不便,那么可以在查詢中采用AS來改變字段在顯示時(shí)的名稱。 例:使用AS改變查詢數(shù)據(jù)的列名
2)計(jì)算查詢的結(jié)果VB編寫的程序中,往往需要將數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行計(jì)算,以便獲得所需的數(shù)值。 通過在查詢語(yǔ)句中使用算術(shù)運(yùn)算符,在配合AS為計(jì)算出的字段設(shè)置名稱,即可在查詢結(jié)果中顯示計(jì)算得到的數(shù)據(jù)。 例:計(jì)算查詢的結(jié)果
3)比較條件查詢在查詢語(yǔ)句中可以包含比較運(yùn)算,常用的比較運(yùn)算符有=、、>、<>、!>、!、>=、<>、!=。使用這些運(yùn)算符連接表達(dá)式形成一個(gè)比較條件,系統(tǒng)將根絕該查詢條件返回的布爾值來判斷數(shù)據(jù)是否滿足該查詢條件,只有滿足條件的數(shù)據(jù)才會(huì)出現(xiàn)在查詢的結(jié)果集中。 這些比較條件在查詢語(yǔ)句中需要與where子句連用,但是VB提供Filter屬性為Recordset中的數(shù)據(jù)指定篩選條件。該屬性根據(jù)條件可選擇性地屏蔽Recordset對(duì)象中的記錄,該屬性語(yǔ)法如下:Recordset.Filter=字符串 例:通過Filter屬性實(shí)現(xiàn)比較條件查詢
2.模糊查詢模糊查詢是通過在VB中查詢與所給查詢內(nèi)容相似的信息。 實(shí)現(xiàn)模糊查詢可以通過執(zhí)行SQL語(yǔ)句中的Like語(yǔ)句實(shí)現(xiàn)。Like語(yǔ)句用來確定給定的數(shù)據(jù)信息是否與指定的模式匹配。(模式可以包含常規(guī)字符和通配符字符。)Like也可以在ADO的Filter屬性中使用。 下面介紹在Filter屬性中使用Like與通配符的幾種方法:
3.日期和時(shí)間查詢對(duì)日期和時(shí)間的數(shù)據(jù)查詢,可以通過VB中的ADO的Filter屬性限定篩選條件,或執(zhí)行查詢SQL語(yǔ)句實(shí)現(xiàn)。 1)查詢指定日期時(shí)間的數(shù)據(jù)在SQL語(yǔ)句中,可以使用運(yùn)算符(>、=、、Like等)查詢?nèi)掌?/span>/時(shí)間類型的數(shù)據(jù)。日期時(shí)間字符串的書寫要符合一定的格式,例如“2012-08-13 0:00:01”。 例:查詢指定日期時(shí)間的數(shù)據(jù)
2)分別按年、月、日等查詢數(shù)據(jù)在設(shè)計(jì)數(shù)據(jù)庫(kù)系統(tǒng)應(yīng)用程序時(shí),往往需要查詢某一年、某個(gè)月或某一天的數(shù)據(jù)。如果采用指定日期時(shí)間的方式來查詢,雖然可以實(shí)現(xiàn),但是過程是很麻煩的。這時(shí)可以采用Year、Month、Day等函數(shù),對(duì)數(shù)據(jù)庫(kù)中日期時(shí)間數(shù)據(jù)提取年、月、日等相關(guān)信息;然后結(jié)合指定日期時(shí)間的查詢方式,即可方便地查詢到某一年、某個(gè)月或者某一天的數(shù)據(jù)。 例:按年、月、日等查詢數(shù)據(jù)
|
|