CNET的數據庫操作課件_第1頁
CNET的數據庫操作課件_第2頁
CNET的數據庫操作課件_第3頁
CNET的數據庫操作課件_第4頁
CNET的數據庫操作課件_第5頁
已閱讀5頁,還剩39頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第9章C#的數據庫操作

ADO.NET向編程人員提供了功能強大的數據訪問能力,既可以直接在編程模式下通過輸入程序代碼設計數據訪問程序,也可以利用系統提供的數據訪問向導直接進行可視化程序設計。9.1Access數據庫

數據庫(Database,即DB)是存儲在一起的相關數據的集合,是存儲數據的“倉庫”。是指依照一定格式存放在一起的數據記錄文件。。數據庫中的信息是以表的形式組成的,一個數據庫中可以放多個表,各個表具有行和列。“數據庫管理系統DBMS”(databasemanagementsystem)則是用來操作與管理數據庫的軟件,MicrosoftAccess、MicrosoftSQLServer、Oracle都是屬于DBMS軟件,通過這些軟件,用戶可以對數據進行定義、創建與運算。

信息中心專門人才基本情況表

編號姓名性別出生日期工資黨員否簡歷照片bj10001劉偉箭男1960.08.232000.00T(略)(略)bj11002劉簡捷男1958.12.311800.00T(略)(略)gz05001藤波海男1956.04.141160.00T(略)(略)gz05002楊行東男1949.03.301260.00F(略)(略)jl04001林慧繁女1965.02.036000.00T(略)(略)jl04002黃曉遠男1969.08.128000.00F(略)(略)sy02030李鵬程男1946.02.083000.00F(略)(略)sy02035王國民男1935.05.205000.00F(略)(略)sh01001金銀橋女1969.01.242000.00F(略)(略)sh01002林立蕎女1964.08.164500.00F(略)(略)9.1.1建立Access數據庫表

選按“開始”|“程序”|“MicrosoftAccess”,啟動Access,屏幕上會出現對話框,在任務窗格內點取“空Access數據庫”,然后單擊“確定”按鈕。出現“文件新建數據庫”對話框,指定新數據庫的保存位置、文件名,然后按“創建”。MicrosoftAccess創建的數據庫文件的擴展名是.mdb。9.1.2Access數據庫操作1.創建新數據庫項目2.創建數據庫連接對數據庫的操作首先要和數據庫建立一個連接,與數據庫建立連接可以通過系統提供的控件實現。3.創建數據庫對象和訪問方法4.設置程序顯示界面5.顯示數據庫中的數據20世紀90年代以來,C/S模式得到了十分迅速的流行。它主要從一次數據計算的完成過程這個角度而言的,客戶機進行數據請求,請求傳到服務器,服務器負責完成數據計算或數據庫操作,最終結果返回到客戶機。幾乎每個新的網絡操作系統和每個新的多用戶數據庫系統都聲稱能支持C/S模式。實現C/S模式允許有許多不同的策略。從最典型的數據庫管理系統的應用來看,在LAN上采取的C/S模式,即指在LAN中至少有一臺數據庫服務器(DBMSserver),可以作為希望去存取公共數據庫的各臺工作站的后援支持。把應用任務中的程序執行內容劃分成兩部分:與數據庫存取有關的部分由DBMSserver承擔,與應用的人機界面處理,輸入/輸出或一部分應用的邏輯功能等有關的內容由client端工作站承擔。SQL語言簡介SQL(StructuredQueryLanuage,結構化查詢語言)是現代關系數據庫的標準語言。現在的大多數數據庫系統都采用SQL語言作為共同的數據存取語言和標準接口,使不同數據庫系統之間的互操作成為了可能。

SQL語言的功能極為強大,語言十分簡捷,第321頁的表13-1列出了SQL語言的9個命令,這9個命令就可以完成幾乎所有的數據操作,在這9個命令中,常用的只有4個。

如果要使用SQL編寫程序,則需要另一語言或平臺來實現所有實際信息的顯示。例如:SELECT*FROMSTU1語句:SELECT學號,數學+5FROMSTU1WHERE關鍵字在WHERE子句中,用條件表達式來確定要顯示的記錄。 ??? WHERE<條件表達式>例如:SELECT學號,姓名FROMSTU1WHERE數學=90SELECT學號,姓名FROMSTU1WHERE數學=90OR平均分>=85LIKE關鍵字格式:……WHERE<屬性名>LIKE<字符串常量>說明:字符串常量中的字符可以包含如下兩個特殊符號:%表示任意長度的字符串;_表示任意一個字符例: 查詢所有姓“張”的學生的學號和姓名。SELECT學號,姓名FROM學生表WHERE姓名LIKE‘張%’例:查詢第二個漢字是“紅”的學生的學號和姓名SELECT學號,姓名FROM學生表WHERE姓名LIKE‘_紅%’IN關鍵字在WHERE子句中使用IN可以指定值是否在表中。例如:顯示學號為962102和962104的記錄。SELECT*FROMSTU2WHERE學號in(“962102”,“962104”)

ORDERBY關鍵字ORDERBY<排序屬性名>[ASC|DESC]子句用來對數據結果排序,ASC按升序排列,DESC按降序排列,默認是ASC。如:SELCET*FROMSTU1WHERE數學IN(78,92,91)其結果按原記錄順序顯示,要安數學成績排序,需加上ORDERBY<排序字段名>子句。如下例:2.INSERT命令(插入命令)格式:INSERTINTO<表文件名>(屬性列表)VALUE(數據表)功能:插入一條新記錄,其內容是將VALUE后(數據表)中的數據依次送到(屬性列表)中的各屬性。如:INSERTINTOSTU1(學號,姓名,計算機基礎,數學,馬列原理,體育,總分,平均分)VALLUE(‘962105’,‘李小麗’,77,88,90,80.2)3.UPDATE命令(更新命令)格式:UPDATE<表文件名>SET<屬性列名>=<表達式>WHERE<條件表達式>例如:UPDATESTU2SET就讀方式=‘統招’ UPDATESTU1SET計算機基礎=計算機基礎*1.15%9.3ADO.NET編程無論什么樣的程序,都要與數據打交道,現在的程序中要處理的信息量越來越大,早已不能滿足幾個變量所提供的信息量,而是把大量信息預先存儲到數據庫文件中,然后利用某種技術讀取數據庫中的預存信息,將讀取的信息送給程序界面顯示出來,或將新內容存入數據庫。ADO.NET就是就是負責數據存取的對象。

9.3.1ADO.NET的概念

在應用程序中訪問數據庫的一般過程為:首先必須連接數據庫;接著發出SQL語句,告訴數據庫要進行什么樣的工作;最后由數據庫返回所需的數據記錄。在ADO.NET中,上述訪問數據庫的三項工作,分別由三個對象來完成:Connection對象負責連接數據庫;Command對象對數據下達SQL命令;DataSet對象用來保存所查詢到的數據記錄。在ADO.NET中,介于DataSet和Connection對象之間,還有一個在數據庫與DataSet對象之間扮演傳遞數據的對象DataAdapter(適配器)。此外,還有一個DataView對象,該對象提供了對DataSet對象內的表進行排序、過濾記錄及記錄搜索等功能。例://創建一個和數據庫的連接……//SQL命令字符串stringstrCom=“SELECT*FROM世界杯”;//創建一個數據集DataSetmyDataSet=newDataSet();//用OleDbDataAdapter得到一個數據集

OleDbDataAdapterda=newOleDbDataAdapter(strCom,myConn);//把DataSet綁定世界杯數據表da.Fill(myDataSet,“世界杯”);……da.Update(myDataSet,“世界杯”);

OleDbConnection控件的主要功能是負責數據源的連接。在連接到數據源時必須提供連接到數據源的一些屬性,如:Provider、DataSource等。例:OleDbConnectionmyconn=newOleDbconection(“Provider=Microsoft.Jet.OLEDB.4.0;DataSource=f:\\test.mdb”);例:OleDbConnectionmyconn=newOleDbconection(“Provider=Microsoft.Jet.OLEDB.4.0;DataSource=f:\\test.mdb”);字符串太長,可以改寫成如下兩條命令:

stringstrCon=“Provider=Microsoft.Jet.OLEDB.4.0;DataSource=f:\\test.mdb”);OleDbConnectionmyconn=newOleDbconection(strCon);OleDbconection的兩個重要方法:Open()方法:打開與數據庫表的連接例:myconn.Open();Close()方法:關閉與數據庫表的連接例:myconn.Close()例:privatevoidbutton1_Click(objectsender,System.EventArgse){try{stringstrCon="Provider=Microsoft.Jet.OLEDB.4.0;DataSource=F:\\book.mdb";OleDbConnectionmyConn=newOleDbConnection(strCon);myConn.Open();MessageBox.Show("數據庫連接成功!");myConn.Close();}catch{MessageBox.Show("連接錯誤","錯誤");}}例:publicvoidGetConnected(){try{ stringstrCon="Provider=Microsoft.Jet.OLEDB.4.0;DataSource=F:\\Book.mdb";OleDbConnectionmyConn=newOleDbConnection(strCon);stringstrCom="SELECT*FROMbook";this.myDataSet=newDataSet();myConn.Open();MessageBox.Show("連接成功!");OleDbDataAdaptermyCommand=newOleDbDataAdapter(strCom,myConn);myCommand.Fill(myDataSet,"book");myConn.Close();}catch(Exceptione){MessageBox.Show("連接錯誤!"+e.ToString(),"錯誤");}}privatevoidbutton1_Click(objectsender,System.EventArgse){GetConnected();dataGrid1.DataSource=myDataSet.Tables["book"];}

9.3.3ADO.NET編程及綁定1.數據集編程在ADO.NET中,建立連接后就需要使用數據命令打包SQL語句或存儲過程。如果是使用SELECT語句查詢數據庫,調用命令的執行方法后將返回查詢結果,同時將數據緩存到數據集中,用戶可使用數據集獲取這些行;如果是調用Update命令,則將返回所影響的行數;其他類型的命令將返回一個錯誤代碼。在ADO.NET中,數據集就是臨時存儲從數據庫檢索的記錄,是從數據源檢索的記錄的緩存,數據集中可包含一個或多個表,這些表基于實際數據庫中的表。因為數據集實際上是數據庫的私有副本,所以它不一定反映數據庫的當前狀態。如果想要查看其他用戶進行的最新更改,可以通過調用適當的Fill()方法刷新數據集。SQL命令主要有SELECT、INSERT、UPDATE、DELETE。

2.數據綁定Windows窗體的數據綁定便于在窗體控件中顯示數據,如果使用DataGrid控件,則需要使用DataGrid控件進行綁定。主要通過Fill()方法。

例:其中窗體的“Load”事件代碼為:privatevoidForm1_Load(objectsender,System.EventArgse){try{

stringstrCon="Provider=Microsoft.Jet.OLEDB.4.0;DataSource=f:\\book.mdb";OleDbConnectionmyConn=newOleDbConnection(strCon);stringstrCom="SELECT*FROMbookorderby編號";myConn.Open();OleDbDataAdaptermyCommand=newOleDbDataAdapter(strCom,myConn);myDataSet=newDataSet();myCommand.Fill(myDataSet,"book");this.dataGrid1.DataSource=this.myDataSet.Tables["book"];myConn.Close();}catch(Execptionx){MessageBox.Show(“錯誤!”+x.ToString(),“error”);}}其中“查詢”按鈕的“單擊”事件代碼為:privatevoidbutton1_Click(objectsender,System.EventArgse){try{stringstrCon="Provider=Microsoft.Jet.OLEDB.4.0;DataSource=f:\\book.mdb";OleDbConnectionmyConn=newOleDbConnection(strCon);

myConn.Open();

stringstrCom=“SELECT*FROMbookWHERE書名Like'%"+this.textBox1.Text+"%'";OleDbDataAdaptermyCommand=newOleDbDataAdapter(strCom,myConn);this.myDataSet.Clear();myCommand.Fill(myDataSet,"book");myConn.Close();}catch(Execptionx){MessageBox.Show(“錯誤!”+x.ToString(),“error”);}}其中“添加”按鈕的“單擊”事件代碼為:privatevoidbutton2_Click(objectsender,System.EventArgse){try{stringstrCon="Provider=Microsoft.Jet.OLEDB.4.0;DataSource=f:\\book.mdb";OleDbConnectionmyConn=newOleDbConnection(strCon);myConn.Open();stringstrCom="INSERTINTObook(編號,書名,作者,價格,書架號)VALUES('"+this.textBox2.Text+"','"+this.textBox3.Text+"','"+this.textBox4.Text+"',"+this.textBox5.Text+","+this.textBox6.Text+")";OleDbCommandinst=newOleDbCommand(strCom,myConn);inst.ExecuteNonQuery();OleDbDataAdaptermyCommand=newOleDbDataAdapter("SELECT*FROMbookorderby編號",myConn);myDataSet.Clear();myCommand.Fill(myDataSet,"book");myConn.Close();}catch(Exceptionx){MessageBox.Show("錯誤"+x.ToString(),"error"); }}其中“刪除”按鈕的“單擊”事件代碼為:privatevoidbutton3_Click(objectsender,System.EventArgse){try{inta=this.dataGrid1.CurrentCell.RowNumber;

stringstrCon="Provider=Microsoft.Jet.OLEDB.4.0;DataSource=f:\\book.mdb";OleDbConnectionmyConn=newOleDbConnection(strCon);myConn.Open();

stringstrCom=“DELETEFrombookwhere編號="strCom+=this.myDataSet.Tables[0].Rows[a][0];OleDbCommanddelst=newOleDbCommand(strCom,myConn);delst.ExecuteNonQuery();OleDbDataAdaptermyCommand=newOleDbDataAdapter("SELECT*FROMBookorderby編號",myConn);myDataSet.Clear();myCommand.Fill(myDataSet,"book");myConn.Close();}catch(Exceptionx){MessageBox.Show("錯誤"+x.ToString(),"error");}}其中“修改”按鈕的“單擊”事件代碼為(這里一次只能修改一行):privatevoidbutton4_Click(objectsender,System.EventArgse){try{inta=this.dataGrid1.CurrentCell.RowNumber;

stringstrCon="Provider=Microsoft.Jet.OLEDB.4.0;DataSource=f:\\book.mdb";OleDbConnectionmyConn=newOleDbConnection(strCon);myConn.Open();stringstrCom=“UPDATEbookset書名=‘“+this.myDataSet.Tables[”book“].Rows[a][1]+”’,作者=‘“+this.myDataSet.Tables[”book“].Rows[a][2]+”’,價格=“+this.myDataSet.Tables[”book“].Rows[a][3]+”,書架號=“+this.myDataSet.Tables[”book“].Rows[a][4]+”where編號="+this.myDataSet.Tables["book"].Rows[a][0];OleDbCommandinst=newOleDbCommand(strCom,myConn);inst.ExecuteNonQuery();OleDbDataAdaptermyCommand=newOleDbDataAdapter("SELECT*FROMbookorderby編號",myConn);this.myDataSet.Clear();myCommand.Fill(myDataSet,"book");myConn.Close();}catch(Exceptionx){MessageBox.Show("錯誤"+x.ToString(),"error");}}“修改”多行按鈕的“單擊”事件代碼為:privatevoidbutton2_Click(objectsender,System.EventArgse){try{stringstrCon="Provider=Microsoft.Jet.OLEDB.4.0;Datasource=F:\\student.mdb";OleDbConnectionmyconn=newOleDbConnection(strCon);stringupstr;OleDbCommandinst;myconn.Open();inta=this.myDataSet.Tables[0].Rows.Count;this.textBox1.Text=a.ToString();for(inti=0;i<a;i++){upstr=“updatestudentset姓名=‘”+this.myDataSet.Tables[0].Rows[i][1];upstr+=“’,語文=”+this.myDataSet.Tables[0].Rows[i][2]+“,數學upstr+=“,數學=”+this.myDataSet.Tables[0].Rows[i][3]+“,英語

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論