C#程序設(shè)計項目教程課件項目6 簡歷系統(tǒng)數(shù)據(jù)庫應(yīng)用_第1頁
C#程序設(shè)計項目教程課件項目6 簡歷系統(tǒng)數(shù)據(jù)庫應(yīng)用_第2頁
C#程序設(shè)計項目教程課件項目6 簡歷系統(tǒng)數(shù)據(jù)庫應(yīng)用_第3頁
C#程序設(shè)計項目教程課件項目6 簡歷系統(tǒng)數(shù)據(jù)庫應(yīng)用_第4頁
C#程序設(shè)計項目教程課件項目6 簡歷系統(tǒng)數(shù)據(jù)庫應(yīng)用_第5頁
已閱讀5頁,還剩39頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

項目6簡歷系統(tǒng)數(shù)據(jù)庫應(yīng)用1.了解ADO.NET的相關(guān)概念。2.會進行數(shù)據(jù)庫連接相;3.能使用數(shù)據(jù)庫操作類定義數(shù)據(jù)操作方法;4.能完成簡單控件與復(fù)雜控件的數(shù)據(jù)綁定;5.能完成簡歷管理系統(tǒng)的數(shù)據(jù)連接類與登錄類。教學(xué)目標(biāo)1.簡歷管理系統(tǒng)中數(shù)據(jù)信息如何與系統(tǒng)的關(guān)聯(lián)2.數(shù)據(jù)如何從界面?zhèn)鬟f到數(shù)據(jù)庫3.從數(shù)據(jù)庫傳遞到界面6.1知識儲備數(shù)據(jù)訪問模型ADO.NET3.5中提供了以下四種數(shù)據(jù)庫提供程序1.SQLServer.NETFramework數(shù)據(jù)提供程序2.OLEDB.NETFramework數(shù)據(jù)提供程序3.ODBC.NETFramework數(shù)據(jù)提供程序4.Oracle.NETFramework數(shù)據(jù)提供程序6.1.1.NETFramework數(shù)據(jù)提供程序1.SqlConnection類

Sqlconnection類用于表示到SQLServer

數(shù)據(jù)庫的打開的連接。該類主要有兩個構(gòu)造函數(shù):①publicSqlConnection()必須設(shè)置SqlConnection對象的ConnectionString屬性,如下面的代碼:SqlConnectionconn=newSqlConnection();conn.ConnectionString="IntegratedSecurity=SSPI;Database=resume;Server=.\\sqlExpress;";6.1.2數(shù)據(jù)庫訪問類②publicSqlConnection(stringconnectionString)具體如下面的代碼:SqlConnectionconn=newSqlConnection("IntegratedSecurity=SSPI;Database=resume;Server=(local);");

6.1.2數(shù)據(jù)庫訪問類已知數(shù)據(jù)連接對象conn,可有3種連接數(shù)據(jù)方式。

①使用數(shù)據(jù)庫文件所在位置進行數(shù)據(jù)庫配置,適用于數(shù)據(jù)庫服務(wù)器沒開啟和開啟的情況。conn.ConnectionString=@"DataSource=(local);AttachDbFilename=D:\數(shù)據(jù)庫\resume.mdf;IntegratedSecurity=True;ConnectTimeout=60;UserInstance=True";也可以為:conn.ConnectionString="DataSource=(local);AttachDbFilename=D:\\數(shù)據(jù)庫\\resume.mdf;IntegratedSecurity=True;ConnectTimeout=60;UserInstance=True";6.1.2數(shù)據(jù)庫訪問類②在項目中使用添加現(xiàn)有項的方法添加數(shù)據(jù)庫文件得到的連接字符串,適用于數(shù)據(jù)庫服務(wù)器沒開啟和開啟的情況。得到的連接字符串為:conn.ConnectionString=@"DataSource=.\SQLEXPRESS;AttachDbFilename=D:\數(shù)據(jù)庫\resume.mdf;IntegratedSecurity=True;";6.1.2數(shù)據(jù)庫訪問類③在數(shù)據(jù)庫服務(wù)器開啟的情況下,可以使用Windows集成安全身份驗證,例如:conn.ConnectionString="IntegratedSecurity=SSPI;Database=resume;Server=localhost;"或者:conn.ConnectionString="Trusted_connection=true;Database=resume;Server=localhost;";或者:conn.ConnectionString="InitialCatalog=resume;DataSource=localhost;IntegratedSecurity=SSPI;");6.1.2數(shù)據(jù)庫訪問類在數(shù)據(jù)庫服務(wù)器開啟的情況下,另一種是在連接字符串中指定服務(wù)器名、用戶id、用戶口令、數(shù)據(jù)庫名等信息。例如:conn.ConnectionString="server=localhost;uid=sa;pwd=123;database=resume";

6.1.2數(shù)據(jù)庫訪問類

2.SqlCommand類一般情況下,對數(shù)據(jù)的插入、刪除、查詢、更新等操作通過SqlComand類型的對象來實現(xiàn)。常用的構(gòu)造函數(shù)有以下3個:publicSqlCommand();publicSqlCommand(stringcmdtext);PublicSqlCommand(stringcmdtext,SqlConnectionconnection);

6.1.2數(shù)據(jù)庫訪問類假如已知SqlConnetion對象conn,SqlCommand對象的聲明方法如下:SqlCommandcomd=newSqlCommand();comd.Connection=conn;或者:stringsql="select*fromstudent";SqlCommandcomd=newSqlCommand(sql);comd.Connection=conn;或者:strings="select*fromstudent";SqlCommandcomd=newSqlCommand(s,conn);

6.1.2數(shù)據(jù)庫訪問類SqlCommand類實現(xiàn)了對數(shù)據(jù)庫的操作,在保持連接的方式訪問并操作數(shù)據(jù)庫的一般步驟為:①創(chuàng)建SqlConnection的實例;②創(chuàng)建SqlCommand的實例;③打開連接后,將SqlCommand關(guān)聯(lián),同時要給SqlCommand的ComandText賦值為合法的sql語句;④執(zhí)行命令;⑤關(guān)閉連接。6.1.2數(shù)據(jù)庫訪問類SqlCommand類常用的操作數(shù)據(jù)庫的方法有以下3個。ExecuteNonQuery()方法ExecuteReader()方法(3)ExecuteScaler()方法6.1.2數(shù)據(jù)庫訪問類3.SqlDataReader類

用于存放Command對象檢索得到的數(shù)據(jù)集。該類不能使用構(gòu)造函數(shù)實例化,若要創(chuàng)建SqlDataReader,必須調(diào)用SqlCommand對象的ExecuteReader方法。6.1.2數(shù)據(jù)庫訪問類【例6-1】完成一個Windows應(yīng)用程序,實現(xiàn)簡歷管理系統(tǒng)中用戶信息的注冊功能,并且要求昵稱nickname不能重復(fù),并實現(xiàn)使用SqlDataReader類查詢某一個用戶的信息。分析:這里我們使用Windows應(yīng)用程序是實現(xiàn)。在項目中添加Users類,類代碼見4.5。(1)添加用戶信息,用戶信息stuid為標(biāo)識字段,即自動增長,要添加的字段包括昵稱nickname以及密碼password,需要添加用戶添加方法AddUser,需要傳遞的參數(shù)有兩個:nickname的值及password的值。也可以封裝為Users類型的對象。6.1.2數(shù)據(jù)庫訪問類(2)保證昵稱唯一,對要添加的昵稱進行數(shù)據(jù)庫檢查;(3)實現(xiàn)根據(jù)昵稱查詢,形式參數(shù)為nickname的值,返回一個Users類型的對象。判斷時,根據(jù)stuid的值進行判斷,因為stuid是自動增長字段,數(shù)據(jù)庫中如果有記錄,最小值為1,所以如果該對象的stuid大于0,則對象不為空,否則,使用改昵稱的對象存在。6.1.2數(shù)據(jù)庫訪問類實現(xiàn)步驟如下:①建立Windows應(yīng)用程序,添加“Users”類。②設(shè)計窗體如下:③編寫代碼④運行程序,檢驗結(jié)果。6.1.2數(shù)據(jù)庫訪問類圖6-1-1窗體設(shè)計4.SqlDataAdapter類

SqlDataAdapter隱式使用SqlConnection、SqlCommand類型的對象填充DataSet對象,完成后自動斷開與數(shù)據(jù)庫服務(wù)器的連接。使用這種方式操作數(shù)據(jù)庫的一般步驟為:1)創(chuàng)建SqlConnection的實例2)創(chuàng)建SqlComand實例6.1.2數(shù)據(jù)庫訪問類3)創(chuàng)建SqlDataAdapter的實例,并與SqlComand實例關(guān)聯(lián),需要的的話,通過SqlCommandBuilder設(shè)置InsertCommand、UpdateCommand和DeleteComman屬性,以便實現(xiàn)數(shù)據(jù)的更新;4)創(chuàng)建DataSet的實例;5)使用Fill方法將數(shù)據(jù)庫中的表填充到DataSet的表中;6)用DataGridView或其他控件對象編輯或顯示數(shù)據(jù);7需要的話,使用Update方法更新數(shù)據(jù)庫。6.1.2數(shù)據(jù)庫訪問類5.DataTable類

DataTable提供了對表中數(shù)據(jù)的各種操作,常作為

DataSet的成員使用。

DataTable類型的對象可以通過構(gòu)造函數(shù)創(chuàng)建,也可用DataAdapter對象的Fill

方法或FillSchema

方法在DataSet中創(chuàng)建。

DataTable對象也包括行、列以及約束等屬性。初次創(chuàng)建需要創(chuàng)建DataColumn的列對象,每一行都是一個DataRow類型的對象。6.1.2數(shù)據(jù)庫訪問類DataTable類型的對象創(chuàng)建流程如下:(1)創(chuàng)建DataTable對象(2)在DataTable對象中添加列(3)設(shè)置DataTable對象的主鍵(4)在DataTable對象中創(chuàng)建行6.1.2數(shù)據(jù)庫訪問類【例6-2】創(chuàng)建Student表,包括id、name、password三個字段,并添加數(shù)據(jù)記錄,將結(jié)果顯示在界面的DataGridView控件上。分析:生成student表,并添加3個string類型的字段,添加一條或多條數(shù)據(jù)記錄,然后,設(shè)置DataGridView控件的DataSource屬性為表即可。6.1.2數(shù)據(jù)庫訪問類圖6-1-2運行結(jié)果6.Dataset類DataSet類型的對象相當(dāng)于一個二維的數(shù)據(jù)庫,用于存放多張DataTable類型的表格,一般情況下,用于實現(xiàn)數(shù)據(jù)的瀏覽等相關(guān)操作。①創(chuàng)建DataSet對象DataSetdataset=newDataSet();②填充DataSet對象調(diào)用SqlDataAdapter對象的Fill方法將數(shù)據(jù)填充到DataSet中的某個表中。6.1.2數(shù)據(jù)庫訪問類【例6-3】設(shè)計Windows應(yīng)用程序,實現(xiàn)resume數(shù)據(jù)庫中addressbook表的數(shù)據(jù)顯示在dataGridView控件上,并能通過dataGridView控件實現(xiàn)數(shù)據(jù)更新。分析:這里使用兩種方式實現(xiàn)。一是使用代碼實現(xiàn)SqlConnection、SqlCommand、SqlDataAdapter、以及DataSet;一種是使用工具箱中的控件進行實現(xiàn)。6.1.2數(shù)據(jù)庫訪問類數(shù)據(jù)綁定技術(shù)就是把已經(jīng)打開的數(shù)據(jù)集中某個或者某些字段綁定到組件的某些屬性上面的一種技術(shù)。使用數(shù)據(jù)綁定,可以方便的對已打開的數(shù)據(jù)集中的記錄進行瀏覽、刪除、插入等具體的數(shù)據(jù)操作、處理。可以設(shè)計時或運行時綁定。根據(jù)控件實現(xiàn)數(shù)據(jù)綁定的復(fù)雜度,分為簡單數(shù)據(jù)綁定與復(fù)雜型數(shù)據(jù)綁定。數(shù)據(jù)綁定一般步驟:①連接數(shù)據(jù)庫,得到DataSet類型的對象。②根據(jù)不同組件,采用不同的數(shù)據(jù)綁定。6.1.3數(shù)據(jù)綁定Windows窗體的DataGridView控件(1)通過代碼實現(xiàn)綁定方法如下。①設(shè)置DataSource屬性為包含要綁定到的DataTable對象。也可以BindingSource對象綁定到數(shù)據(jù)表上。②在窗體中添加代碼來填充數(shù)據(jù)集,例如:dataset1=newDataSet();dapter.Fill(dataset1,"student");dataGridView1.DataSource=dataset.Tables[0];或者

dataset1=newDataSet();dapter.Fill(dataset1,"student");BindingSourcebinds=newBindingSource();binds.DataSource=dataset1.Tables[0];dataGridView1.DataSource=binds;6.1.3數(shù)據(jù)綁定(2)通過設(shè)計器中將數(shù)據(jù)綁定到DataGridView的方法①設(shè)置DataSource屬性為包含要綁定到的數(shù)據(jù)項的對象。②如果數(shù)據(jù)集包含相關(guān)表(即,如果它包含關(guān)系對象),請將DataMember屬性設(shè)置為表的名稱。③編寫代碼來填充數(shù)據(jù)集。6.1.3數(shù)據(jù)綁定2.BindingNavigator的數(shù)據(jù)綁定BindingNavigator控件是用于數(shù)據(jù)處理的導(dǎo)航條。(1)通過BindingNavigator控件的BindingSource屬性進行數(shù)據(jù)綁定。(2)代碼實現(xiàn)綁定,如下:

dataset1=newDataSet();dapter.Fill(dataset1,"student");BindingSourcebinds=newBindingSource();binds.DataSource=dataset1.Tables[0];dataGridView1.DataSource=binds;6.1.3數(shù)據(jù)綁定3.TextBox與Label控件的數(shù)據(jù)綁定此類控件的數(shù)據(jù)綁定的方法是把要獲取的數(shù)據(jù)顯示在“Text”屬性中。通常使用以下兩種代碼編寫方法實現(xiàn)數(shù)據(jù)綁定:(1)使用數(shù)據(jù)集中表的字段直接綁定,如下面的代碼:

label1.DataBindings.Add("Text",dataset.Tables[0],"stuid");textBox1.DataBindings.Add("Text",dataset.Tables[0],"stuname");6.1.3數(shù)據(jù)綁定(2)使用BindingSource類型的對象實現(xiàn)數(shù)據(jù)綁定,如下面的代碼:BindingSourcebindingsource=newBindingSource();bindingsource.DataSource=dataset.Tables["student"];label1.DataBindings.Add("Text",bindingsource,"stuid");textBox1.DataBindings.Add(“Text”,bindingsource,“stuname");6.1.3數(shù)據(jù)綁定4.ListBox和ComboBox控件的數(shù)據(jù)綁定這種類型的控件要綁定的屬性有3個:“DataSource”(顯示數(shù)據(jù)集)、“DisplayMember”(顯示的數(shù)據(jù)集中的字段)、“ValueMember”(讀取該控件時實際使用值)。使用ListBox實現(xiàn)數(shù)據(jù)綁定,常用以下兩種代碼編寫方法實現(xiàn)數(shù)據(jù)綁定:6.1.3數(shù)據(jù)綁定(1)使用數(shù)據(jù)集中表的字段直接綁定,如下代碼:listBox1.DataSource=dataset.Tables[0];listBox1.DisplayMemberdataset.Tables[0].Columns[1].ToString();listBox1.ValueMember=dataset.Tables[0].Columns[0].ToString();(2)使用BindingSource對象實現(xiàn)數(shù)據(jù)綁定,如下代碼:

BindingSourcebindingsource=newBindingSource();bindingsource.DataSource=dataset.Tables["student"];listBox1.DataSource=bindingsource;listBox1.DisplayMember=dataset.Tables[0].Columns[1].ToString();

listBox1.ValueMember=dataset.Tables[0].Columns[1].ToString();6.1.3數(shù)據(jù)綁定【例6-4】通過屬性設(shè)置與代碼編寫兩種方式實現(xiàn)resume數(shù)據(jù)中addressbook表信息的數(shù)據(jù)綁定。6.1.3數(shù)據(jù)綁定6.2任務(wù)1實現(xiàn)公用的數(shù)據(jù)連接和處理類DBConn6.2任務(wù)1實現(xiàn)簡歷系統(tǒng)的公用的數(shù)據(jù)連接和處理類DBConn在簡歷管理系統(tǒng)中,需要處理數(shù)據(jù)操作,進行查詢、修改、刪除、增加等功能,這些功能都需要連接同一個數(shù)據(jù)庫文件,并且執(zhí)行時不同的查詢需要相同類型的查詢結(jié)果時,只是傳遞的SQL語句不同,返回值可能是一個數(shù)據(jù)集合、也可能是一個數(shù)據(jù)項;修改、刪除、增加都屬于數(shù)據(jù)的更新操作,都可以通過SqlCommand類實例的ExecuteNonQuery方法實現(xiàn)。把這些方法加以提取,設(shè)計數(shù)據(jù)訪問類,提高代碼重用性,并且提高可讀性。6.2.1任務(wù)分析(1)在類庫JianLiClass項目中添加類DBConn,定義訪問控制為public,并且添加用于數(shù)據(jù)連接的字符串。(2)在類DBConn中,添加檢索方法SelectReader()。(3)實現(xiàn)獲取DataSet數(shù)據(jù)集的檢索方法。(4)使用SqlCommand類實例的ExecuteNonQuery方法實現(xiàn)更新數(shù)據(jù)庫操作。6.2.2任務(wù)實施6.3.1任務(wù)分析學(xué)生登錄系統(tǒng)時,通過編號與密碼進行登錄,客戶可以直接登錄。那么學(xué)生登錄時,要查找Users表中是否存在學(xué)生信息,即根據(jù)學(xué)生的stuid以及Password進行驗證。6.3任務(wù)2實現(xiàn)登錄類LoginDAO在簡歷管理系統(tǒng)中,需要處理數(shù)據(jù)操作,進行查詢、修改、刪除、增加等功能,這些功能都需要連接同一個數(shù)據(jù)庫文件,并且執(zhí)行時不同的查詢需要相同類型的查詢結(jié)果時,只是傳遞的SQL語句不同,返回值可能是一個數(shù)據(jù)集合、也可能是一個數(shù)據(jù)項;修

溫馨提示

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

評論

0/150

提交評論