版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Windows程序設(shè)計(jì)
第10章ADO.NET數(shù)據(jù)庫(kù)2DataReader對(duì)象是一個(gè)簡(jiǎn)單的數(shù)據(jù)集,主要用于從數(shù)據(jù)源中讀取只讀的數(shù)據(jù)集,其常用于檢索大量數(shù)據(jù)。ADO.NET數(shù)據(jù)閱讀器不能實(shí)例化SqlCommandsqlCmd=newSqlCommand(sltStr,sqlCon);SqlDataReaderreader=sqlCmd.ExecuteReader();//獲取數(shù)據(jù)3常用的屬性屬性說(shuō)明FieldCount獲得當(dāng)前行的列數(shù)HasRows獲得一個(gè)表示數(shù)據(jù)閱讀器包含一行還是多行值IsClosed獲得數(shù)據(jù)閱讀器是否關(guān)閉的值RecordsAffected獲得執(zhí)行一個(gè)批命令后修改的行數(shù)用DataGridView
顯示和操作數(shù)據(jù)庫(kù)5本章目標(biāo)了解數(shù)據(jù)集(DataSet)的結(jié)構(gòu)會(huì)使用數(shù)據(jù)適配器填充數(shù)據(jù)集(DataAdapter)會(huì)使用數(shù)據(jù)適配器將數(shù)據(jù)集的修改提交到數(shù)據(jù)庫(kù)掌握DataGridView控件的使用6
為什么使用DataSet對(duì)象應(yīng)用程序大量的數(shù)據(jù)來(lái)自多個(gè)數(shù)據(jù)源大批量的查詢、修改數(shù)據(jù)怎么辦?想在斷開(kāi)數(shù)據(jù)庫(kù)連接的情況下操作數(shù)據(jù)怎么辦?使用DataSet對(duì)象DataSet數(shù)據(jù)庫(kù)7為什么使用DataAdapter如何將數(shù)據(jù)庫(kù)的數(shù)據(jù)放在DataSet中?DataSet數(shù)據(jù)集DataAdapter數(shù)據(jù)庫(kù)DataSet數(shù)據(jù)集Connection數(shù)據(jù)庫(kù)連接DataAdapter數(shù)據(jù)適配器數(shù)據(jù)庫(kù)接合器;轉(zhuǎn)接器8DataAdapter對(duì)象不同命名空間的DataAdapter對(duì)象命名空間對(duì)應(yīng)的DataAdapter對(duì)象System.Data.SqlClientSqlDataAdapterSystem.Data.OleDbOleDbDataAdapterSystem.Data.OdbcOdbcDataAdapterSystem.Data.OracleClientOracleDataAdapter9DataAdapter對(duì)象DataAdapter的主要屬性和方法屬性說(shuō)明SelectCommand從數(shù)據(jù)庫(kù)檢索數(shù)據(jù)的Command對(duì)象方法說(shuō)明Fill向DataSet中的表填充數(shù)據(jù)Update將DataSet中的數(shù)據(jù)提交到數(shù)據(jù)庫(kù)10DataAdapter的使用構(gòu)造函數(shù)屬性SqlDataAdaptersda=newSqlDataAdapter(“SQL語(yǔ)句”,Connection);SqlDataAdaptersda=newSqlDataAdapter(sqlCmd);SqlDataAdaptersda=newSqlDataAdapter(“SQL語(yǔ)句”,string);Command命令對(duì)象查詢、修改、刪除、插入等命令SQL字符串Connection連接對(duì)象SQL字符串Connection連接字符串11DataAdapter的使用屬性UpdateCommand:更新數(shù)據(jù)記錄。需要調(diào)用ExecuteNonQuery()
InsertCommand:新增數(shù)據(jù)記錄。需要調(diào)用ExecuteNonQuery()DeleteCommand:刪除數(shù)據(jù)記錄。需要調(diào)用ExecuteNonQuery()SelectCommand:查詢數(shù)據(jù)記錄。12DataAdapter的使用添加數(shù)據(jù)stringsltStr=@“insertintoJBQK(No,Name,XB,JG,Grade)values('201101','張三','男','山東','大二')";SqlCommandsqlCmd=newSqlCommand(sltStr,sqlCon);SqlDataAdaptersda=newSqlDataAdapter();sda.InsertCommand=sqlCmd;intiRet=sda.InsertCommand.ExecuteNonQuery();13什么是DataSet對(duì)象DataSet數(shù)據(jù)集簡(jiǎn)單理解為一個(gè)臨時(shí)數(shù)據(jù)庫(kù)將數(shù)據(jù)源的數(shù)據(jù)保存在內(nèi)存中獨(dú)立于任何數(shù)據(jù)庫(kù)工廠的倉(cāng)庫(kù)車(chē)間的臨時(shí)倉(cāng)庫(kù)生產(chǎn)線數(shù)據(jù)源DataSet應(yīng)用程序駐留于內(nèi)存,臨時(shí)存儲(chǔ)數(shù)據(jù)類(lèi)似的關(guān)系14數(shù)據(jù)集的工作原理數(shù)據(jù)集發(fā)送數(shù)據(jù)修改數(shù)據(jù)集傳遞數(shù)據(jù)提交修改后的數(shù)據(jù)請(qǐng)求數(shù)據(jù)客戶端15DataSet的結(jié)構(gòu)2-1DataSet的基本結(jié)構(gòu)DataSetDataTableDataColumnCollectionDataRowCollectionDataColumnDataRowDataTableCollection數(shù)據(jù)集數(shù)據(jù)表的集合數(shù)據(jù)表數(shù)據(jù)列的集合數(shù)據(jù)行的集合數(shù)據(jù)列數(shù)據(jù)行16DataSet的結(jié)構(gòu)2-2GradeTableClassTableStudentTableidnameclasssex1小菲5女2小薇3女3小強(qiáng)6男DataTableCollection數(shù)據(jù)表集合DataTable數(shù)據(jù)表DataRowCollection數(shù)據(jù)行集合DataRow數(shù)據(jù)行DataColumnCollection數(shù)據(jù)列集合DataColumn數(shù)據(jù)列17如何填充數(shù)據(jù)集
使用DataAdapter對(duì)象填充數(shù)據(jù)集DataSet數(shù)據(jù)集使用
Fill()
方法填充DataSet中的表使用
Connection連接數(shù)據(jù)源Connection數(shù)據(jù)庫(kù)DataAdapter的Fill()方法18如何創(chuàng)建DataSet對(duì)象創(chuàng)建一個(gè)DataSet可以指定一個(gè)數(shù)據(jù)集的名稱如果不指定名稱,則默認(rèn)被設(shè)為"NewDataSet"DataSetdataSet=newDataSet();DataSetdataSet=newDataSet(“students");DataSet數(shù)據(jù)集對(duì)象
=newDataSet("數(shù)據(jù)集的名稱字符串");可選的19步驟創(chuàng)建連接字符串—?jiǎng)?chuàng)建連接對(duì)象SqlConnection創(chuàng)建SQL字符串—?jiǎng)?chuàng)建Command對(duì)象根據(jù)Command對(duì)象創(chuàng)建SqlDataAdapter創(chuàng)建數(shù)據(jù)集DataSet填充數(shù)據(jù)集Fill:sda.Fill(ds);客戶端對(duì)數(shù)據(jù)集進(jìn)行操作可以不打開(kāi)20DataAdapter的使用屬性//連接字符串stringstrCon=@"DataSource=DataServer;InitialCatalog=TestDB;IntegratedSecurity=True;";//執(zhí)行連接SqlConnectionsqlCon=newSqlConnection(strCon);//查詢數(shù)據(jù)表中的記錄stringsltStr=@"SelectNo,Name,GradefromJBQK";SqlCommandsqlCmd=newSqlCommand(sltStr,sqlCon);SqlDataAdaptersda=newSqlDataAdapter(sqlCmd);DataSetds=newDataSet();21DataAdapter的使用屬性//填充數(shù)據(jù)集,實(shí)質(zhì)是填充ds中的第0個(gè)表sda.Fill(ds);stringsltResult="";//查詢結(jié)果字符串DataTabledt=ds.Tables[0];Console.WriteLine("基本情況數(shù)據(jù)表查詢結(jié)果如下:");for(inti=0;i<dt.Rows.Count;i++){
//逐行讀取,每行通過(guò)字段名字或者索引來(lái)訪問(wèn)
sltResult+="第"+(i+1)+"條記錄:"+dt.Rows[i][0].ToString()+"\t"+dt.Rows[i]["Name"].ToString()+dt.Rows[i][2].ToString()+"\n";}Console.WriteLine(sltResult);22DataSet中的幾個(gè)對(duì)象(2)讀取table中的行//table即DataTable對(duì)象DataRowdr=table.Rows[i]; //i>=0當(dāng)需要獲取所有行時(shí),可以通過(guò)Rows.Count屬性來(lái)遍歷。(1)獲取DataSet中的表①索引方式:dataset.Tables[i]②名稱方式:dataset.Tables["TableName"](3)讀取table中的列dr.Columns["FieldName"].ToString(); //dr即DataRow對(duì)象dr.Columns[i].ToString();23填充數(shù)據(jù)集演示示例:使用數(shù)據(jù)集填充顯示所有學(xué)生信息SqlDataAdapter對(duì)象名
=
newSqlDataAdapter(查詢用sql語(yǔ)句,數(shù)據(jù)庫(kù)連接);創(chuàng)建SqlDataAdapter對(duì)象1DataAdapter對(duì)象.Fill(數(shù)據(jù)集對(duì)象,"數(shù)據(jù)表名稱字符串");填充DataSet2Adapter瀏覽24如何保存DataSet中的數(shù)據(jù)
把數(shù)據(jù)集中修改過(guò)的數(shù)據(jù)提交到數(shù)據(jù)源DataSet數(shù)據(jù)集數(shù)據(jù)庫(kù)dataAdapter.Update(dataSet,“students");DataAdapter的Update()方法調(diào)用前,要先設(shè)置更新需要的相關(guān)命令可以使用SqlCommandBuilder對(duì)象Connection25SqlCommandBuilder對(duì)象利用SqlCommandBuilder對(duì)象能夠自動(dòng)生成:INSERT命令UPDATE命令DELETE命令SqlCommandBuilderbuilder=
newSqlCommandBuilder(已創(chuàng)建的DataAdapter對(duì)象);26保存DataSet中的數(shù)據(jù)步驟:自動(dòng)生成用于更新的相關(guān)命令1SqlCommandBuilderbuilder=newSqlCommandBuilder(已創(chuàng)建的DataAdapter對(duì)象);將DataSet的數(shù)據(jù)提交到數(shù)據(jù)源2DataAdapter對(duì)象.Update(數(shù)據(jù)集對(duì)象,"數(shù)據(jù)表名稱字符串");將DataTable接收更新3DataTable對(duì)象.AcceptCh
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中職汽車(chē)運(yùn)營(yíng)管理應(yīng)用(應(yīng)用技術(shù))試題及答案
- 2025年大學(xué)(森林保護(hù))森林防火學(xué)階段測(cè)試題及解析
- 2025年中職模具設(shè)計(jì)與制造(模具調(diào)試技巧)試題及答案
- 2025年大學(xué)音樂(lè)教育(聲樂(lè)教學(xué))試題及答案
- 2025年高職(航海技術(shù))船舶貨運(yùn)管理綜合測(cè)試題及答案
- 2025年中職電梯安裝與維修保養(yǎng)(電梯故障診斷與排除)試題及答案
- 2025年中職機(jī)械類(lèi)(數(shù)控編程基礎(chǔ))試題及答案
- 2025年大學(xué)公路運(yùn)輸(公路運(yùn)輸實(shí)務(wù))試題及答案
- 2025年中職(鐵道運(yùn)輸管理)鐵路客運(yùn)組織試題及答案
- 2026年常州機(jī)電職業(yè)技術(shù)學(xué)院高職單招職業(yè)適應(yīng)性測(cè)試模擬試題有答案解析
- 甘肅省平?jīng)鍪?2025年)輔警協(xié)警筆試筆試真題(附答案)
- 移動(dòng)式工程機(jī)械監(jiān)理實(shí)施細(xì)則
- 買(mǎi)房分手協(xié)議書(shū)范本
- 門(mén)窗安裝專項(xiàng)施工方案
- 耐克加盟協(xié)議書(shū)
- 2026年母嬰產(chǎn)品社群營(yíng)銷(xiāo)方案與寶媽群體深度運(yùn)營(yíng)手冊(cè)
- 私人奴隸協(xié)議書(shū)范本
- 汽車(chē)底盤(pán)資料課件
- 2025年教育系統(tǒng)后備干部面試題及答案
- 頂管施工技術(shù)培訓(xùn)
- 《JJG 1081.2-2024鐵路機(jī)車(chē)車(chē)輛輪徑量具檢定規(guī)程第2部分:輪徑測(cè)量器》 解讀
評(píng)論
0/150
提交評(píng)論