• 
    

    
    

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

      ?

      基于應(yīng)用的《數(shù)據(jù)庫(kù)技術(shù)及應(yīng)用》課程的教學(xué)方法探討

      2013-11-11 01:59張建國(guó)
      關(guān)鍵詞:數(shù)據(jù)庫(kù)

      張建國(guó)

      [摘要]本文以大學(xué)非計(jì)算機(jī)專業(yè)的《數(shù)據(jù)庫(kù)技術(shù)及應(yīng)用》這門公共課為主線,介紹了這門課程所要講授的內(nèi)容和難易程度,學(xué)生學(xué)習(xí)的難以比較和學(xué)生感興趣的東西,主要講述了數(shù)據(jù)庫(kù)應(yīng)用開發(fā)這部分學(xué)生既有興趣,內(nèi)容又難學(xué)且內(nèi)容又較多的部分,介紹數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的開發(fā)方法和步驟,對(duì)學(xué)生學(xué)習(xí)本課程和做相應(yīng)的應(yīng)用開發(fā)有所幫助。

      [關(guān)鍵詞]數(shù)據(jù)庫(kù) ADO控件 數(shù)據(jù)庫(kù)應(yīng)用開發(fā)

      一、大學(xué)非計(jì)算機(jī)專業(yè)所授本課程內(nèi)容

      隨著計(jì)算機(jī)的普及,數(shù)據(jù)庫(kù)在各個(gè)領(lǐng)域的應(yīng)用越來(lái)越多,越來(lái)越廣泛,因而在各個(gè)高校,《數(shù)據(jù)庫(kù)技術(shù)及應(yīng)用》這門課也在許多非計(jì)算機(jī)專業(yè)作為選修課開設(shè)。

      《數(shù)據(jù)庫(kù)技術(shù)及應(yīng)用》課程可包含三個(gè)部分內(nèi)容,它們是數(shù)據(jù)庫(kù)原理、數(shù)據(jù)庫(kù)技術(shù)、數(shù)據(jù)庫(kù)應(yīng)用。對(duì)于數(shù)據(jù)庫(kù)原理這部分內(nèi)容,都是理論知識(shí),概念較多,相對(duì)來(lái)說(shuō)較為枯燥,但多看看書大部分內(nèi)容都還可以理解;對(duì)于數(shù)據(jù)庫(kù)技術(shù)部分來(lái)說(shuō),它是結(jié)合某個(gè)具體的數(shù)據(jù)庫(kù)管理系統(tǒng)來(lái)教學(xué)的,如:ACCESS或SQL Server等,只要多上機(jī)實(shí)踐操作,也很好掌握,對(duì)于非計(jì)算機(jī)專業(yè)來(lái)說(shuō),這是這門課的主要內(nèi)容;然而,第三部分的數(shù)據(jù)庫(kù)應(yīng)用開發(fā),因?yàn)閮?nèi)容多,牽扯面廣,還需要用到其他知識(shí),相對(duì)來(lái)說(shuō)比較復(fù)雜,難以掌握,而且留給這部分內(nèi)容的教學(xué)課時(shí)也很少,因此,學(xué)生很難完全掌握,我們都以大作業(yè)的方式布置給學(xué)生。在這里我們以應(yīng)用開發(fā)為主,探討在應(yīng)用開發(fā)過(guò)程中,學(xué)習(xí)和掌握數(shù)據(jù)庫(kù)技術(shù)及與之相關(guān)的內(nèi)容。

      二、一個(gè)簡(jiǎn)單示例的使用說(shuō)明

      數(shù)據(jù)庫(kù)應(yīng)用開發(fā)可分兩個(gè)部分,即后臺(tái)數(shù)據(jù)庫(kù)的設(shè)計(jì)與前臺(tái)用戶界面的開發(fā)。這里,后臺(tái)用SQL server 2005,前臺(tái)界面開發(fā)用VB.net,開發(fā)一個(gè)簡(jiǎn)易的選課系統(tǒng)。前臺(tái)用戶的主要界面見圖1

      圖1

      操作方法為:先在學(xué)生信息組中輸入學(xué)生學(xué)號(hào),點(diǎn)擊確定,如果輸錯(cuò)或?qū)W生信息表中無(wú)此學(xué)生則提示錯(cuò)誤,否則,課程信息組中出現(xiàn)課程類別,選擇課程類別,點(diǎn)擊確定,即可瀏覽本類別中所有可選課程的信息,點(diǎn)擊“選”按鈕即選中此課程,并在相應(yīng)的表中插入一條記錄,表示該學(xué)生選了該課程。

      三、中間件ADO.net介紹

      VB.net操作數(shù)據(jù)庫(kù)中的數(shù)據(jù),需要使用中間件ADO.net。這里我們先提一下ADO.net的功能和使用。ADO.NET的名稱起源于ADO(ActiveX Data Objects),這是一個(gè)廣泛的類組,用于在以往的Microsoft技術(shù)中訪問(wèn)數(shù)據(jù)。ADO.net可讓開發(fā)人員以一致的方式存取數(shù)據(jù)來(lái)源(例如 SQL Server與XML),以及透過(guò)OLE DB和ODBC所公開的數(shù)據(jù)來(lái)源。ADO.net可將管理的數(shù)據(jù)存取分成不連續(xù)的元件,這些元件可分開使用,也可串聯(lián)使用,ADO.net也包含 .NET Framework 數(shù)據(jù)提供者,以用于連接數(shù)據(jù)庫(kù)、執(zhí)行命令和擷取結(jié)果。這些結(jié)果會(huì)直接處理、放入ADO.net的DataSet 物件中以便利用機(jī)器操作的方式公開給使用者、與多個(gè)來(lái)源的數(shù)據(jù)結(jié)合,或在各層之間進(jìn)行傳遞。DataSet 物件也可以與.NET Framework 數(shù)據(jù)提供者分開使用,以便管理應(yīng)用程序本機(jī)的數(shù)據(jù)或來(lái)自 XML 的數(shù)據(jù)。

      ADO架構(gòu)

      ADO.NET3.0中用于存取和管理數(shù)據(jù)的兩個(gè)主要元件是.NET Framework數(shù)據(jù)提供者和DataSet。NET Framework數(shù)據(jù)提供者是一種明確設(shè)計(jì)用于管理數(shù)據(jù)以及快速存取順向只讀數(shù)據(jù)的元件。Connection物件會(huì)提供數(shù)據(jù)來(lái)源的連接。DataReader則可提供來(lái)自數(shù)據(jù)來(lái)源的高效能數(shù)據(jù)流。最后,DataAdapter會(huì)提供DataSet物件與數(shù)據(jù)來(lái)源之間的橋接器。DataAdapter會(huì)使用Command物件與數(shù)據(jù)來(lái)源處執(zhí)行SQL命令,以便將數(shù)據(jù)載入DataSet,并且將 DataSet 內(nèi)的數(shù)據(jù)變更調(diào)節(jié)回?cái)?shù)據(jù)來(lái)源。ado.net DataSet的設(shè)計(jì)已明確指出它可獨(dú)立于任何數(shù)據(jù)來(lái)源外而存取數(shù)據(jù)。因此,它可與多個(gè)不同的數(shù)據(jù)里來(lái)源搭配使用、與XML數(shù)據(jù)搭配使用,或用于管理應(yīng)用程序的本機(jī)數(shù)據(jù)。DataSet 包含一或多個(gè)由數(shù)據(jù)列和數(shù)據(jù)行所組成的DataTable 物件集合,以及DataTable物件中的主索引鍵、外部索引鍵、條件約束 (Constraint) 及數(shù)據(jù)的相關(guān)資訊。

      圖2

      四、示例系統(tǒng)的編寫步驟

      選課系統(tǒng)主要包括三個(gè)表,它們?yōu)椋?/p>

      學(xué)生表,包括學(xué)號(hào)、姓名、性別、所在院系、專業(yè)、班級(jí)等信息;

      課程表,包括課程號(hào)、課程名、學(xué)時(shí)數(shù)、學(xué)分?jǐn)?shù)、類別等信息;

      成績(jī)表,包括學(xué)號(hào)、課程號(hào)、成績(jī)等信息。

      為了使用方便,所在院系、專業(yè)、類別等字段都用代碼表示,因此還需要各種字段的代碼名稱對(duì)照表,因此把這些對(duì)照表作為輔助表。

      設(shè)計(jì)如圖1所示的窗口,在窗口上放置相應(yīng)的控件,并設(shè)置好相應(yīng)的屬性

      1.連接數(shù)據(jù)庫(kù)

      ADO控件操作數(shù)據(jù)庫(kù)首先必須連接到數(shù)據(jù)庫(kù),因此要定義一個(gè)連接變量。

      Dim con As New SqlConnection

      設(shè)置連接字符串:

      con.ConnectionString = "Data Source=localhost;Initial Catalog=選課數(shù)據(jù)庫(kù);Integrated Security=True"

      打開連接

      con.Open()

      即可連上數(shù)據(jù)庫(kù)。

      2.提取數(shù)據(jù)

      根據(jù)輸入的學(xué)號(hào),提取此學(xué)生的信息,需要用到DataSet 和SqlDataAdapter控件。

      先定義兩個(gè)變量:

      Dim dd As New DataSet

      Dim ap As SqlDataAdapter

      設(shè)置提取數(shù)據(jù)的方法,即SQL語(yǔ)句。

      ss = "select * from 學(xué)生表 as s inner join 學(xué)院表 as x on s.學(xué)院編號(hào)=x.學(xué)院編號(hào) inner join 專業(yè)表 as z on s.專業(yè)編號(hào)=z.專業(yè)編號(hào) where 學(xué)號(hào)='" & Me.TextBox1.Text & "'"

      這里需要注意的是,這是一個(gè)字符串拼接的表達(dá)式,“'"”這里是一個(gè)單引號(hào)和一個(gè)雙引號(hào),“"'"”這里為兩個(gè)雙引號(hào)括了一個(gè)單引號(hào)。

      Me.TextBox1.Text表示你輸入的學(xué)號(hào),是可變的。

      提取數(shù)據(jù)

      ap = New SqlDataAdapter(ss, con)

      填充到DataSet中

      ap.Fill(dd, "xsb")

      如果無(wú)此學(xué)生學(xué)號(hào),則顯示相應(yīng)提示;存在相應(yīng)學(xué)號(hào)的學(xué)生則用相應(yīng)的控件顯示對(duì)應(yīng)的字段,

      Me.TextBox2.Text = dd.Tables("xsb").Rows(0)("姓名") 等等。

      同時(shí),從課程表中提取課程類別,填充到選擇課程類別組合框中。

      ss = "select distinct l.類別編號(hào),類別名 from 課程表 as k inner join 類別表 as l on k.類別編號(hào)=l.類別編號(hào)"

      ap = New SqlDataAdapter(ss, con)

      ap.Fill(dd, "lbbh")

      Me.ComboBox1.DataSource = dd.Tables("lbbh")

      Me.ComboBox1.DisplayMember = dd.Tables("lbbh").Columns(1).ToString

      Me.ComboBox1.ValueMember = dd.Tables("lbbh").Columns(0).ToString

      選擇某種類別,將同類別的書目提取出來(lái),并填充到DataSet中。

      ss = "select * from 課程表 where 類別編號(hào)='" & Me.ComboBox1.SelectedValue & "'"

      ap = New SqlDataAdapter(ss, con)

      ap.Fill(dd, "kcb")

      然后通過(guò)相應(yīng)控件將相應(yīng)的書目?jī)?nèi)容顯示出來(lái),并用導(dǎo)航按鈕控件瀏覽數(shù)據(jù)。

      bm = BindingContext(dd.Tables("kcb"))

      Me.TextBox7.DataBindings.Add("text", dd.Tables("kcb"), dd.Tables("kcb").Columns("課程編號(hào)").ToString)等等

      3.寫入數(shù)據(jù)到數(shù)據(jù)庫(kù)

      當(dāng)瀏覽到某門課程后,點(diǎn)擊選按鈕即將學(xué)號(hào)和課程號(hào)填入到相應(yīng)的表中,表示某學(xué)生選了某門課。

      com.CommandText = "insert into 成績(jī)表 (學(xué)號(hào),課程編號(hào)) values('" & Me.TextBox1.Text & "','" & Me.TextBox7.Text & "')"

      com.Connection = con

      com.ExecuteNonQuery()

      4.斷開與數(shù)據(jù)庫(kù)的連接

      可反復(fù)選課,最后關(guān)閉窗口,同時(shí)斷開與數(shù)據(jù)庫(kù)的連接即可。

      con.Close()

      五、后記

      本示例系統(tǒng)是一個(gè)可在win7下正常運(yùn)行的系統(tǒng),按照前面的介紹,稍加完善,即可在自己的機(jī)器上實(shí)現(xiàn),注意先需創(chuàng)建數(shù)據(jù)庫(kù),建好相應(yīng)的數(shù)據(jù)表。

      [參考資料]

      [1]數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用.劉衛(wèi)國(guó)編.清華大學(xué)出版社

      [2]數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用.龔沛曾編.高等教育出版社

      [3]數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用.李雁翎編.高等教育出版社

      [4]VisualBasic.NET.實(shí)用教程.鄭阿奇編.電子工業(yè)出版社

      (作者單位:華中科技大學(xué)網(wǎng)絡(luò)與計(jì)算中心 湖北武漢)

      猜你喜歡
      數(shù)據(jù)庫(kù)
      Designer測(cè)試大數(shù)據(jù)預(yù)定義均衡配置
      MemSQL獲3000萬(wàn)美元D輪融
      數(shù)據(jù)庫(kù)
      數(shù)據(jù)庫(kù)
      數(shù)據(jù)庫(kù)
      數(shù)據(jù)庫(kù)
      數(shù)據(jù)庫(kù)
      數(shù)據(jù)庫(kù)
      SQL語(yǔ)言在電信業(yè)務(wù)數(shù)據(jù)庫(kù)數(shù)據(jù)查詢中的應(yīng)用
      數(shù)據(jù)庫(kù)
      吉林省| 晋州市| 龙井市| 恩平市| 徐汇区| 永康市| 洞头县| 依兰县| 博白县| 蒲城县| 保靖县| 四子王旗| 酒泉市| 富顺县| 凤城市| 淮安市| 安陆市| 黄大仙区| 永靖县| 页游| 河南省| 无锡市| 左云县| 鄂温| 峨山| 灵台县| 顺平县| 延寿县| 宝应县| 万山特区| 鱼台县| 灵川县| 巧家县| 富顺县| 汉阴县| 新疆| 犍为县| 青河县| 边坝县| 濮阳市| 丽水市|