




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
使用ADO.NET查詢和操作數(shù)據(jù)第十五章回顧與作業(yè)點(diǎn)評(píng)Connection對(duì)象的作用是什么?ExecuteScalar()方法返回的結(jié)果是什么?提問2/34預(yù)習(xí)檢查使用DataReader的什么方法可以逐行讀取數(shù)據(jù)?ExecuteNonQuery()方法的功能是什么?提問3/34本章任務(wù)實(shí)現(xiàn)MySchoolBase系統(tǒng)查看學(xué)生信息按學(xué)號(hào)查詢學(xué)生姓名按姓名查詢學(xué)生信息新增年級(jí)記錄修改學(xué)生出生日期刪除學(xué)生記錄4/34本章目標(biāo)掌握C#中的StringBuilder類的常用方法會(huì)使用DataReader對(duì)象檢索數(shù)據(jù)會(huì)使用Command對(duì)象操作數(shù)據(jù)5/34字符串的修改說出下面代碼的輸出結(jié)果stringstrText="Hello";strText+="World";Console.WriteLine(strText);你知道程序是如何執(zhí)行的嗎?HelloWorldstrTextHelloHelloWorldstrText每次修改strText,不是追加而是都要?jiǎng)?chuàng)建一個(gè)新的字符串對(duì)象代碼閱讀垃圾6/34StringBuilder類能否做到重復(fù)修改時(shí),不創(chuàng)建新的對(duì)象?使用StringBuilder類StringBuilder類:用來定義可變字符串更多方法可以通過MSDN自學(xué)了解問題方法說明StringBuilderAppend(stringvalue
)在結(jié)尾追加StringBuilderInsert(intindex,stringvalue
)在指定位置插入指定字符串StringBuilderRemove(int
startIndex,
intlength
)移除指定字符串7/34StringBuilder類的使用2-1使用StringBuilder類修改上述代碼
StringBuildersbTest=newStringBuilder();sbTest.Append("Hello");sbTest.Append("World");Console.WriteLine(sbTest.ToString());Console.ReadLine();轉(zhuǎn)成String類型實(shí)例化一個(gè)StringBuilder對(duì)象以下SQL語句哪個(gè)可讀性更高,更易修改?SELECTSubjectNo,SubjectName,ClassHour,GradeFROMSubjectSELECT[SubjectNo],[SubjectName],[ClassHour],[Grade]FROM[Subject]8/34提問StringBuilder類的使用2-2使用StringBuilder類修改MySchoolBase中的查詢學(xué)生數(shù)量功能關(guān)鍵代碼回顧StringBuildersbSql=newStringBuilder();sbSql.AppendLine("SELECT");sbSql.AppendLine("COUNT(*)");sbSql.AppendLine("FROM");sbSql.AppendLine("[Student]");//…SqlCommandcomm=newSqlCommand(sbSql.ToString(),conn);//…易于修改和查看示例演示示例1:使用StringBuilder修改MySchoolBase9/34為什么使用DataReader怎樣讀取數(shù)據(jù)庫的數(shù)據(jù)?應(yīng)用程序毛毛,北大青鳥,優(yōu)秀毛毛姓名:學(xué)校:北大青鳥成績:優(yōu)秀DataReader數(shù)據(jù)庫10/34問題DataReader對(duì)象DataReader對(duì)象從數(shù)據(jù)源中檢索只讀、只進(jìn)的數(shù)據(jù)流每次讀取一行數(shù)據(jù)命名空間對(duì)應(yīng)的DataReader
對(duì)象System.Data.SqlClient
SqlDataReaderSystem.Data.OleDbOleDbDataReaderSystem.Data.Odbc
OdbcDataReaderSystem.Data.OracleClientOracleDataReader11/34使用DataReader查詢數(shù)據(jù)如何查看學(xué)生學(xué)號(hào)、姓名列表?要查詢多行多列的數(shù)據(jù),需要使用Command對(duì)象的ExecuteReader(
)方法分析問題演示示例2:用DataReader讀取數(shù)據(jù)1使用Connection連接數(shù)據(jù)庫使用Command發(fā)送命令使用DataReader處理查詢結(jié)果12/34示例2代碼分析關(guān)鍵代碼回顧SqlDataReaderreader=comm.ExecuteReader();//獲得DataReader對(duì)象//…//循環(huán)讀取數(shù)據(jù)行并顯示while(reader.Read()){sb1.AppendFormat("{0}\t{1}",reader["StudentNo"],reader["StudentName"]);Console.WriteLine(sb1);sb1.Length=0;}//…reader.Close();//關(guān)閉DataReader13/34改進(jìn)示例2演示示例3:用DataReader讀取數(shù)據(jù)2經(jīng)驗(yàn)改進(jìn)示例2,分別使用不同的方法實(shí)現(xiàn)讀取數(shù)據(jù)和顯示數(shù)據(jù)問題實(shí)際開發(fā)中,操作數(shù)據(jù)庫的代碼和處理數(shù)據(jù)的代碼一般是分開的,這樣可以使程序更易于復(fù)用和維護(hù)讀取數(shù)據(jù)DBOperation類中的GetStudentList(
)方法,返回一個(gè)DataReader對(duì)象顯示數(shù)據(jù)SchoolManager類中的ShowStudentList(
)方法分析14/34示例3代碼分析關(guān)鍵代碼回顧comm.ExecuteReader(CommandBehavior.CloseConnection);//執(zhí)行查詢SqlDataReaderreader=_dbOper.GetStudentList();//調(diào)用獲得學(xué)生信息的方法//…//循環(huán)讀取DataReaderwhile(reader.Read()){sb1.AppendFormat("{0}\t{1}",reader["StudentNo"],reader["StudentName"]);Console.WriteLine(sb1);sb1.Length=0;}//…reader.Close();//關(guān)閉DataReader15/34DataReader的主要成員DataReader的主要成員屬性說明HasRows
是否返回了結(jié)果方法說明
Read前進(jìn)到下一行記錄Close關(guān)閉DataReader
對(duì)象16/34DataReader使用步驟小結(jié)使用DataReader檢索數(shù)據(jù)的步驟1.創(chuàng)建Command對(duì)象2.調(diào)用ExecuteReader()創(chuàng)建DataReader對(duì)象3.使用DataReader的Read()方法逐行讀取數(shù)據(jù)4.讀取某列的數(shù)據(jù),(type)dataReader[]5.關(guān)閉DataReader對(duì)象獲取某列的值:方法一:指定列的索引,從0開始方法二:指定列名注意17/34DataReader
使用后必須關(guān)閉學(xué)員操作——按學(xué)號(hào)查詢學(xué)生姓名2-1需求說明當(dāng)管理員輸入操作鍵“3”時(shí),根據(jù)輸入的學(xué)號(hào)查詢相應(yīng)的學(xué)生姓名并輸出講解需求說明18/34指導(dǎo)學(xué)員操作——按學(xué)號(hào)查詢學(xué)生姓名2-2實(shí)現(xiàn)思路1.在數(shù)據(jù)庫操作類中創(chuàng)建查詢學(xué)生姓名的方法
2.使用StringBuilder拼寫帶條件的SQL語句3.使用DataReader對(duì)象的Read()方法讀取學(xué)生姓名并返回4.在業(yè)務(wù)類中調(diào)用查詢方法并輸出返回的學(xué)生姓名難點(diǎn)指導(dǎo)執(zhí)行Command對(duì)象的ExecuteReader()方法得到Reader對(duì)象學(xué)號(hào)為主鍵,只能讀取至多一行信息,固使用if語句指導(dǎo)完成時(shí)間:25分鐘19/34共性問題集中講解常見問題及解決辦法代碼規(guī)范問題調(diào)試技巧共性問題集中講解20/34學(xué)員操作——按姓名查詢學(xué)生信息2-1訓(xùn)練要點(diǎn)DataReader對(duì)象的使用SQL語句的拼寫需求說明當(dāng)管理員輸入操作鍵“4”時(shí),根據(jù)姓名模糊查詢除密碼外的全部學(xué)生信息并顯示,年級(jí)根據(jù)實(shí)際編號(hào)顯示年級(jí)名稱講解需求說明21/34指導(dǎo)學(xué)員操作——按姓名查詢學(xué)生信息2-2實(shí)現(xiàn)思路1.在數(shù)據(jù)庫操作類中創(chuàng)建查詢學(xué)生信息的方法
2.使用StringBuilder拼寫內(nèi)連接的Sql語句3.使用DataReader對(duì)象的Read()方法循環(huán)讀取學(xué)生信息4.在業(yè)務(wù)類中調(diào)用查詢學(xué)生信息的方法并輸出難點(diǎn)指導(dǎo)comm.ExecuteReader(CommandBehavior.CloseConnection);SELECTA.[StudentNo],A.[StudentName],A.[Sex],B.[GradeName],A.[Phone],A.[Adress],A.[BornDate],A.[Email]FROM[Student]asA,[Grade]asBWHERE[StudentName]like‘%學(xué)生姓名%'ANDA.[GradeId]=B.[GradeId]指導(dǎo)完成時(shí)間:25分鐘22/34操作數(shù)據(jù)如何對(duì)數(shù)據(jù)庫的數(shù)據(jù)進(jìn)行增刪改?應(yīng)用程序毛毛,北大青鳥,良好毛毛姓名:學(xué)校:北大青鳥成績:良好ExecuteNonQuery()數(shù)據(jù)庫23/34問題操作數(shù)據(jù)示例使用SqlCommand對(duì)象的ExecuteNonQuery()方法向數(shù)據(jù)庫增加記錄如何實(shí)現(xiàn)新增年級(jí)信息?分析問題演示示例4:向數(shù)據(jù)庫中增加記錄使用Connection連接數(shù)據(jù)庫使用Command發(fā)送命令獲得并處理執(zhí)行結(jié)果24/34示例4代碼分析關(guān)鍵代碼回顧StringBuildersb=newStringBuilder();sb.AppendLine("INSERTINTO");sb.AppendLine("[Grade]");sb.AppendLine("VALUES");sb.AppendLine("('"+gradeName+"')");//創(chuàng)建command對(duì)象SqlCommandcommand=newSqlCommand(sb.ToString(),conn);//執(zhí)行命令command.ExecuteNonQuery();//……返回受影響記錄的行數(shù)單引號(hào)的位置25/34ExecuteNonQuery()方法小結(jié)該方法執(zhí)行指定的SQL語句返回受影響的行數(shù)使用ExecuteNonQuery()的步驟創(chuàng)建Connection對(duì)象定義SQL語句創(chuàng)建Command對(duì)象執(zhí)行ExecuteNonQuery()方法根據(jù)返回的結(jié)果進(jìn)行處理26/34學(xué)員操作——新增年級(jí)記錄需求說明在示例3的基礎(chǔ)上,完善新增年級(jí)記錄的功能要求查詢管理員輸入的年級(jí)名稱在Grade表中是否已經(jīng)存在如果指定年級(jí)名稱的記錄在Grade表中已存在,顯示提示信息,并退出該操作添加到年級(jí)表中,并根據(jù)添加結(jié)果,輸出相關(guān)的提示信息練習(xí)完成時(shí)間:20分鐘27/34學(xué)員操作——修改學(xué)生出生日期2-1訓(xùn)練要點(diǎn)類型轉(zhuǎn)換Command對(duì)象的ExecuteNonQuery()方法需求說明當(dāng)管理員輸入操作鍵“6”時(shí),輸入要修改的學(xué)生學(xué)號(hào)和修改后的出生日的提示,根據(jù)學(xué)號(hào)更新Student表中的出生日出生日輸入格式錯(cuò)誤、更新成功以及異常發(fā)生給出相應(yīng)提示信息確認(rèn)數(shù)據(jù)庫中的數(shù)據(jù)被成功更新講解需求說明28/34指導(dǎo)學(xué)員操作——修改
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 高中數(shù)學(xué)分層練習(xí)(壓軸題)06:函數(shù)與導(dǎo)數(shù)(30題)【含解析】
- 水池專項(xiàng)施工方案
- 洗手洗腳池施工方案
- 電梯施工方案模板
- 基于涉入理論的高爾夫球手地方依戀研究
- 6到12歲的感統(tǒng)訓(xùn)書籍
- consider的固定搭配和例句總結(jié)
- 2025年往年英語a b級(jí)試題及答案
- 燈火闌珊處高情商回復(fù)
- 4-氨基-丁酸叔丁酯醋酸鹽
- 地下空洞處理方案
- 露天礦露天煤礦災(zāi)害預(yù)防及處理計(jì)劃
- GB/T 4099-2005航海常用術(shù)語及其代(符)號(hào)
- GB/T 25844-2010工業(yè)用現(xiàn)場(chǎng)分析小屋成套系統(tǒng)
- GB 29837-2013火災(zāi)探測(cè)報(bào)警產(chǎn)品的維修保養(yǎng)與報(bào)廢
- 金庸群俠傳x一至六周目攻略
- 營養(yǎng)基因組學(xué)課件
- 直腸惡性腫瘤護(hù)理查房實(shí)用版課件
- 二十世紀(jì)西方文學(xué)課件
- 《東亞季風(fēng)環(huán)流》課件
- 2021年常見降糖藥物一覽表
評(píng)論
0/150
提交評(píng)論