• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于.NET框架的MySQL數(shù)據(jù)庫類的教學示范

      2021-05-19 01:42:38馬玉春吳淑婷汪文彬
      電子元器件與信息技術(shù) 2021年2期
      關(guān)鍵詞:字符串數(shù)據(jù)表數(shù)據(jù)源

      馬玉春,吳淑婷,汪文彬

      (海南熱帶海洋學院計算機科學與技術(shù)學院,海南 三亞 572022)

      0 引言

      面向?qū)ο缶幊淌且环N直觀和結(jié)構(gòu)簡單的程序設(shè)計方法,比較符合人類認識現(xiàn)實世界的思維方式。一般將一個系統(tǒng)分解為若干個對象,這些對象是相對獨立的,但又可以相互配合、連接和協(xié)調(diào),從而共同完成整個系統(tǒng)所要實現(xiàn)的功能和任務(wù)[1]。計算機相關(guān)專業(yè)的學生在學完面向過程的“C語言程序設(shè)計”課程后,要實現(xiàn)面向?qū)ο蟮乃季S習慣的轉(zhuǎn)變存在一定的困難。

      MySQL是最流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)之一,采用SQL語言訪問數(shù)據(jù)庫,通用性比較強,目前使用該數(shù)據(jù)庫的主流公司與組織有Facebook、Github、YouTube、Twitter、PayPal、諾基亞、Spotify、Netflix等。MySQL 軟件采用了雙授權(quán)政策,分為社區(qū)版(免費)和商業(yè)版,由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,一般中小型網(wǎng)站的開發(fā)都選擇MySQL作為網(wǎng)站數(shù)據(jù)庫,高校也經(jīng)常采用此數(shù)據(jù)庫系統(tǒng)用于教學[2]。文獻[3]在Visual Basic Express 2010開發(fā)環(huán)境下,基于.NET框架實現(xiàn)了一個Access數(shù)據(jù)庫類。MySQL數(shù)據(jù)庫支持遠程訪問,涉及用戶名、密碼、端口號和服務(wù)器名稱(或IP地址)等,更適合屬性與方法的表達,因而,本文在文獻[3]的基礎(chǔ)之上,采用最新版的Visual Studio Community 2019開發(fā)環(huán)境和新版的.NET框架,使用 Visual Basic語言實現(xiàn)MySQL數(shù)據(jù)庫類MySqlHelper,進行數(shù)據(jù)庫對象的初始化,實現(xiàn)查找、刪除、增加和修改記錄操作,培養(yǎng)學生的面向?qū)ο笏季S。

      1 通過Visual Basic .NET訪問MySQL數(shù)據(jù)庫

      MySQL數(shù)據(jù)庫驅(qū)動程序不是.NET框架的一部分,Visual Basic無法直接操作,需要下載并安裝文獻[4]中所列的“Connector/NET”驅(qū)動程序,這里選擇8.0.19版的 Windows安裝程序,安裝后的路徑如下所示,該驅(qū)動程序需要使用4.5.2版的.NET框架[2]。

      C:Program Files(x86)MySQLMySQL Connector Net 8.0.19Assembliesv4.5.2

      新建的VB項目需要添加對MySql.Data.dll 的引用,并在項目中分別導(dǎo)入(Imports)MySql.Data和MySql.Data.MySqlClient兩個類,這樣才可以使用ADO.NET操作MySQL 數(shù)據(jù)庫。ADO.NET模型中的DataSet是數(shù)據(jù)的內(nèi)存駐留表示形式,它提供了獨立于數(shù)據(jù)源的一致關(guān)系編程模型[5]。DataSet表示整個數(shù)據(jù)集,其中包含表、約束和表之間的關(guān)系。由于DataSet獨立于數(shù)據(jù)源,因此DataSet可以包含應(yīng)用程序本地的數(shù)據(jù),也可以包含來自多個數(shù)據(jù)源的數(shù)據(jù)。與現(xiàn)有數(shù)據(jù)源的交互通過DataAdapter適配器來控制。DataSet、DataAdapter與數(shù)據(jù)源之間的關(guān)系如圖1所示。

      圖1 DataSet、DataAdapter 和數(shù)據(jù)源之間的關(guān)系

      2 主要屬性

      MySqlHelper類提供的外部可見的只讀屬性如表1所示,這些屬性可以方便地用于數(shù)據(jù)庫操作以及在 DataGridView控件中使用,將數(shù)據(jù)記錄以表格的形式進行瀏覽和修改。

      表1 MySqlHelper 類的可見屬性

      ds是一個只讀屬性,表示當前的DataSet對象,其內(nèi)部定義為DataSet對象_ds. ds屬性對象有一個布爾屬性 HasChanges,用來判斷數(shù)據(jù)是否變化,該屬性可用于自動將ds中變化的數(shù)據(jù)保存到數(shù)據(jù)源。

      dt是一個只讀屬性,包含在ds對象中,表示當前的DataTable對象,其內(nèi)部定義為DataTable對象_dt,該屬性對象可用于將數(shù)據(jù)表綁定到DataGridView控件,從而實現(xiàn)數(shù)據(jù)表的瀏覽與修改。

      nTables是一個只讀屬性,表示表的數(shù)目。這里一次查詢一張表,因而,正常情況下,該屬性為1;否則,該屬性為0.該屬性對應(yīng)的內(nèi)部變量為Integer類型的_nTables變量。

      對數(shù)據(jù)庫進行編程操作,如果不知道數(shù)據(jù)表的記錄數(shù),往往比較困難。nRecords是一個只讀屬性,返回數(shù)據(jù)表的記錄數(shù)。其實,所謂的記錄數(shù)只是數(shù)據(jù)表的行數(shù),因而,調(diào)用了Rows集合的Count屬性。如果數(shù)據(jù)表的數(shù)目為0,則直接返回0即可。nRecords屬性對應(yīng)的內(nèi)部變量為Integer類型的_nRecords變量。

      3 連接字符串的自動生成

      在圖1中,MySQL數(shù)據(jù)庫使用MySqlDataAdapter適配器建立D a t a S e t 與數(shù)據(jù)源之間的連接,在對MySqlDataAdapter對象進行初始化的時候,需要提供查詢字符串和連接字符串。查詢字符串是一個SELECT語句,告知查詢哪一張表,以及如何查詢該表;連接字符串根據(jù)提供的MySQL數(shù)據(jù)庫服務(wù)器的用戶名、密碼、服務(wù)器名稱或IP地址、數(shù)據(jù)庫名稱等生成的字符串,私有方法GetConnectionString實現(xiàn)這一功能。為了增加MySqlHelper數(shù)據(jù)庫類的通用性,允許客戶端從服務(wù)器獲取公鑰,因而參數(shù)AllowPublicKeyRetrieval設(shè)置為True,不使用SSL連接,因而SslMode設(shè)置為MySqlSslMode.None.如果需要增加安全性,則可以修改這兩個參數(shù),并對服務(wù)器進行相關(guān)配置。

      4 構(gòu)造函數(shù)和數(shù)據(jù)表的填充

      產(chǎn)生連接字符串的私有方法 GetConnectionString 所使用的參數(shù)大部分來自構(gòu)造函數(shù)。為了方便高效開發(fā)應(yīng)用程序,除了數(shù)據(jù)庫名稱 dbName 參數(shù)外,其它所有參數(shù)都有缺省值。

      公共方法FillData將數(shù)據(jù)源中的數(shù)據(jù)表填充到私有對象_ds和_dt,從而得到表1中所示的外部可見的屬性對象ds和dt.如果在填充數(shù)據(jù)的過程中拋出異常,則將異常信息寫入私有字符串變量_strErrorAdapter中,該變量對應(yīng)表1中的ErrorAdapter屬性。有了數(shù)據(jù)表DataTable對象dt,即可簡單地通過dt對象對二維關(guān)系表進行修改、添加和刪除操作,將在第6節(jié)給出應(yīng)用實例。FillData方法中的私有整型變量_nTables對應(yīng)表1中的nTables屬性。

      5 數(shù)據(jù)源的更新

      對dt的操作僅限于內(nèi)存,公有方法WriteData將內(nèi)存輸入重新寫入數(shù)據(jù)源。調(diào)用DataAdapter的Update方法可以將DataSet中的更改解析回數(shù)據(jù)源。當調(diào)用Update方法時,DataAdapter會分析已做的更改并執(zhí)行相應(yīng)的命令(INSERT、UPDATE或DELETE)。當DataAdapter遇到對DataRow所做的更改時,它將使用InsertCommand、UpdateCommand或DeleteCommand來處理該更改。這樣,程序員就可以通過在設(shè)計時指定命令語法并在可能時通過使用存儲過程來盡量提高ADO.NET應(yīng)用程序的性能[5]。

      6 教學應(yīng)用

      MySQL數(shù)據(jù)庫類MySqlHelper將用戶名、密碼、服務(wù)器與端口及數(shù)據(jù)庫名稱與數(shù)據(jù)表等諸多屬性組合起來,并可以方便地操作數(shù)據(jù)表,更新數(shù)據(jù)源。如下第(1)條語句使用缺省參數(shù),傳入數(shù)據(jù)庫名稱“dbAlarm”生成MySqlHelper對象myData,第(2)條語句通過strQuery參數(shù)選擇一張需要操作的數(shù)據(jù)表,第(3)條語句即可通過dt屬性增加一條空的記錄,第(4)條語句刪除第I條記錄,第(5)條語句更新第I條記錄的“aTime”字段值,最后一條語句將所有數(shù)據(jù)變化寫入數(shù)據(jù)源。

      Visual Basic是快速桌面語言,與MySqlHelper數(shù)據(jù)庫類相結(jié)合,可以讓學生體會類的設(shè)計方法與應(yīng)用,也可以加深對數(shù)據(jù)庫的理解及熟悉對MySQL數(shù)據(jù)庫的操作,從而為進一步開發(fā)基于MySQL數(shù)據(jù)庫的Web應(yīng)用程序打下基礎(chǔ)。

      7 結(jié)語

      MySQL數(shù)據(jù)庫在Web應(yīng)用程序中使用較多,在國內(nèi)外許多著名網(wǎng)站中都得到了應(yīng)用。本文使用最新版的Visual Studio Community 2019免費開發(fā)環(huán)境,基于.NET框架實現(xiàn)了一個Visual Basic數(shù)據(jù)庫類,可以方便地對MySQL數(shù)據(jù)庫進行操作,從而輔助桌面應(yīng)用程序的開發(fā)。該數(shù)據(jù)庫類可以作為一個面向?qū)ο蟮慕虒W案例,也可直接用于工程項目。

      猜你喜歡
      字符串數(shù)據(jù)表數(shù)據(jù)源
      湖北省新冠肺炎疫情數(shù)據(jù)表
      黨員生活(2020年2期)2020-04-17 09:56:30
      基于列控工程數(shù)據(jù)表建立線路拓撲關(guān)系的研究
      Web 大數(shù)據(jù)系統(tǒng)數(shù)據(jù)源選擇*
      基于不同網(wǎng)絡(luò)數(shù)據(jù)源的期刊評價研究
      基于真值發(fā)現(xiàn)的沖突數(shù)據(jù)源質(zhì)量評價算法
      圖表
      一種新的基于對稱性的字符串相似性處理算法
      基于VSL的動態(tài)數(shù)據(jù)表應(yīng)用研究
      河南科技(2014年24期)2014-02-27 14:19:25
      分布式異構(gòu)數(shù)據(jù)源標準化查詢設(shè)計與實現(xiàn)
      依據(jù)字符串匹配的中文分詞模型研究
      施甸县| 伊吾县| 兰州市| 景德镇市| 扎赉特旗| 高密市| 涿鹿县| 常宁市| 长丰县| 湟源县| 芮城县| 汉阴县| 右玉县| 文登市| 阿坝县| 高清| 木兰县| 长兴县| 进贤县| 利津县| 噶尔县| 历史| 漾濞| 新晃| 镇宁| 梁河县| 治多县| 临夏县| 博乐市| 大姚县| 永登县| 霍山县| 长治市| 肃宁县| 铜川市| 延川县| 南丹县| 桦川县| 商洛市| 盐山县| 淳安县|