




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
6.2.2使用Command對(duì)象進(jìn)行數(shù)據(jù)操作Command對(duì)象簡(jiǎn)介Command對(duì)象是在Connection對(duì)象連接數(shù)據(jù)庫(kù)之后,對(duì)數(shù)據(jù)庫(kù)執(zhí)行查詢、添加、刪除和修改等各種操作時(shí)使用。操作實(shí)現(xiàn)的方式可以使用SQL語(yǔ)句,也可以使用存儲(chǔ)過(guò)程。根據(jù)所用的.NETFramework數(shù)據(jù)提供程序的不同,Command對(duì)象也可以分成4種,分別是SqlCommand、OleDbCommand、OdbcCommand和OracleCommand,根據(jù)本書(shū)編排下面我們著重介紹一下SqlCommand。SqlCommand對(duì)象常用屬性SqlCommand對(duì)象常用屬性如下:屬性說(shuō)明CommandText獲取或設(shè)置要執(zhí)行的語(yǔ)句或存儲(chǔ)過(guò)程CommandType獲取或設(shè)置一個(gè)值,該值指示如何解釋CommandText屬性Connection獲取或設(shè)置命令使用的連接對(duì)象。默認(rèn)為空CommandTimeout獲取或設(shè)置試圖執(zhí)行命令時(shí)要等待的時(shí)間(以秒為單位)默認(rèn)為30秒Parameters獲得與該命令關(guān)聯(lián)的參數(shù)集合表6.3SqlCommand對(duì)象常用屬性SqlCommand對(duì)象的常用屬性詳解:CommandType屬性獲取或設(shè)置Command對(duì)象要執(zhí)行命令的類型。語(yǔ)法:publicoverrideCommandTypeCommandType{get;set;}屬性值:CommandType值之一,默認(rèn)為T(mén)ext。當(dāng)將CommandType設(shè)置為StoredProcedure時(shí),應(yīng)將CommandText屬性設(shè)置為存儲(chǔ)過(guò)程的名稱。當(dāng)調(diào)用Execute方法之一時(shí),該命令將執(zhí)行此存儲(chǔ)過(guò)程。CommandText屬性獲取或設(shè)置要對(duì)數(shù)據(jù)源執(zhí)行的Transact-SQL語(yǔ)句或存儲(chǔ)過(guò)程。通過(guò)Command對(duì)象執(zhí)行SQL語(yǔ)句或存儲(chǔ)過(guò)程。語(yǔ)法:publicoverridestringCommandText{get;set;}SqlCommand對(duì)象常用方法SqlCommand對(duì)象常用方法如下:方法 說(shuō)明ExecuteNonQuery執(zhí)行ExecuteNonQuery執(zhí)行SQL語(yǔ)句并返回受影響的行數(shù)ExecuteScalar 執(zhí)行查詢,并返回查詢所返回的結(jié)果集中第一行的第一列,忽略其他列或行ExecuteReader執(zhí)行返回?cái)?shù)據(jù)集的ExecuteReader執(zhí)行返回?cái)?shù)據(jù)集的SELECT語(yǔ)句表6.4SqlCommand對(duì)象常用方法SqlCommand對(duì)象常用方法詳解:ExecuteNonQuery方法ExecuteNonQuery方法執(zhí)行諸如UPDATE、INSERT和DELETE語(yǔ)句有關(guān)的更新操作,在這些情況下,返回值是命令影響的行數(shù)。對(duì)于其他類型的語(yǔ)句,諸如SET或CREATE語(yǔ)句,則返回值為-1;如果發(fā)生回滾,返回值也為-1。語(yǔ)法:publicoverrideObjectExecuteNonQuery(例如,創(chuàng)建一個(gè)SqlCommand,然后使用ExecuteNonQuery方法執(zhí)行(queryString代表Transact-SQL語(yǔ)句如,UPDATE、INSERT或DELETE),代碼如下:privatestaticvoidCreateCommand(stringqueryString,stringconnectionString{SqlConnectionconnection=newSqlConnection(connectionStringSqlCommandcommand=newSqlCommand(queryString,connection;command.Connection.Open(;command.ExecuteNonQuery(;//^^Command命令ExecuteReader方法ExecuteReader方法通常與查詢命令一起使用,并且返回一個(gè)數(shù)據(jù)閱讀器對(duì)象SqlDataReader類的一個(gè)實(shí)例。數(shù)據(jù)閱讀器是一種只讀的、向前移動(dòng)的游標(biāo),客戶端代碼滾動(dòng)游標(biāo)并從中讀取數(shù)據(jù)(下節(jié)將具體介紹數(shù)據(jù)閱讀器)。如果通過(guò)ExecuteReader方法執(zhí)行一個(gè)更新語(yǔ)句,則該命令成功地執(zhí)行,但是不會(huì)返回任何受影響的數(shù)據(jù)行。例如,創(chuàng)建一個(gè)SqlCommand,然后應(yīng)用ExecuteReader(方法來(lái)創(chuàng)建DataReader對(duì)象來(lái)對(duì)數(shù)據(jù)源進(jìn)行讀取,代碼如下:SqlCommandcommand=newSqlCommand(queryString,connection;〃通過(guò)ExecuteReader方法創(chuàng)建DataReader對(duì)象SqlDataReaderreader=command.ExecuteReader(;while(reader.Read((ConSQLe.WriteLine(String.Format("{0}",reader[0];)?ExecuteScalar方法執(zhí)行查詢,并返回查詢所返回的結(jié)果集中第一行的第一列語(yǔ)法:publicoverrideObjectExecuteScalar(如果只想檢索數(shù)據(jù)庫(kù)信息中的一個(gè)值,而不需要返回表或數(shù)據(jù)流形式的數(shù)據(jù)庫(kù)信息。例如,只需要返回COUNT(*、SUM(grade或AVG(grade等聚合函數(shù)的結(jié)果,那么Command對(duì)象的ExecuteScalar方法就很有用。如果在一個(gè)常規(guī)查詢語(yǔ)句當(dāng)中調(diào)用該方法,則只讀取第一行第一列的值,而丟棄所有其他值。例如,使用SqlCommand對(duì)象的ExecuteScalar方法來(lái)返回表中記錄的數(shù)目(SELECT語(yǔ)句使用Transact-SQLCOUNT聚合函數(shù)返回指定表中的行數(shù)的單個(gè)值),代碼如下:stringsqlstr="SELECTCount(*FROMtbStudent";SqlComandstudentCMD=newSqlCommand(sqlstr,connection;〃將返回的記錄數(shù)目強(qiáng)制轉(zhuǎn)換成整型Int32count=(Int32studentCMD.ExecuteScalar(;SqlCommand對(duì)象的應(yīng)用示例6.2使用Command對(duì)象查詢數(shù)據(jù)(源程序詳見(jiàn)光盤(pán)中例6.2本示例主要講解在ASP.NET應(yīng)用程序中如何使用SqlCommand對(duì)象查詢數(shù)據(jù)庫(kù)中的記錄。執(zhí)行程序,在“姓名”文本框中輸入“張三”,并單擊“查詢”控件,將會(huì)在界面上顯示查詢結(jié)果,如圖所示:圖6.1使用Command對(duì)象查詢數(shù)據(jù)程序?qū)崿F(xiàn)的步驟:(1、新建一個(gè)網(wǎng)站,默認(rèn)主頁(yè)為Default.aspxo(2、打開(kāi)Default.aspx文件,在Default.aspx界面上添加一個(gè)TextBox控件和一個(gè)Button控件分別命名為txtName和btnSelect,并將Button的Text屬性設(shè)為“查詢”,然后再添加一個(gè)Gridiew控件命名為gvStudent.(3、在Web.Config文件中配置數(shù)據(jù)庫(kù)連接字符串,在下的子配置節(jié)添加連接字符串。其代碼如下:providerName="System.Data.SqlClient”connectionString="server=.;database二dbChooseCourse;uid二ChooseCourse;pwd二ChooseCourse"name="sqlconn”/>(4、在Default.aspx頁(yè)中,使用ConfigurationManager類獲取配置節(jié)的連接字符串。其代碼如下:〃自定義數(shù)據(jù)庫(kù)連接函數(shù)publicSqlConnectionGetConnection((〃獲取Web.Config文件中的連接字符串StringmyStr=System.Configuration.ConfigurationManager.ConnectionStrings["sqlconn"].ToString(;SqlConnectionmyConn=newSqlConnection(myStr;returnmyConn;)(5、在【查詢】按鈕的Click事件下,使用Command對(duì)象查詢數(shù)據(jù)庫(kù)中的記錄,調(diào)用GetConnection(函數(shù)進(jìn)行數(shù)據(jù)庫(kù)連接,并調(diào)用BindStudent(函數(shù)進(jìn)行數(shù)據(jù)的綁定。其代碼如下:protectedvoidbtnSelect_Click(objectsender,EventArgseBindStudent(;//調(diào)用數(shù)據(jù)綁定函數(shù))〃自定義數(shù)據(jù)綁定函數(shù)protectedvoidBindStudent((SqlConnectionmyConn=GetConnection(;myConn.Open(;stringname=txtName.Text.ToString(.Trim(;//獲取文本框的內(nèi)容即學(xué)生姓名stringsqlStr="select*fromtbStudentwheresname='"+name+"'";//SQL查詢語(yǔ)句SqlCommandmyCmd=newSqlCommand(sqlStr,myConn;//創(chuàng)建Command對(duì)象SqlDataAdaptermyDa=newSqlDataAdapter(myCmd;DataSetmyDs=newDataSet(;myDa.Fill(myDs;if(myDs.Tables[0].Rows.Count>0(gvStudent.DataSource=myDs;gvStudent.DataBind(;)else(Response.Write("";)myDa.Dispose(;myDs.Dispose(;
myConn.Close(;)實(shí)例6.3使用Command對(duì)象添加數(shù)據(jù)(源程序詳見(jiàn)光盤(pán)中例6.3本示例主要講解在ASP.NET應(yīng)用程序中如何使用SqlCommand對(duì)象如何向數(shù)據(jù)庫(kù)中添加數(shù)據(jù)。執(zhí)行程序,示例運(yùn)行結(jié)果,如圖6.2所示;在文本框中,輸入學(xué)生的正確信息,單擊【添加學(xué)生信息】按鈕,將學(xué)生信息提交到數(shù)據(jù)庫(kù)中,運(yùn)行結(jié)果如圖6.3所示:洞畔生神力』學(xué)士爭(zhēng)%r姓名?性孫W.呆臥"黑廣女密西,-M學(xué)洞畔生神力』學(xué)士爭(zhēng)%r姓名?性孫W.呆臥"黑廣女密西,-M學(xué)生一季|,“*,*的仙id4fr$k*W期的L張三男囤mii■算解定與技術(shù)]慌出皿空口E的計(jì)算機(jī)科亍與捱木」帕3為壬五甲。網(wǎng)”計(jì)算機(jī)科宇與片木]0S223Qd^I里黑口叼2計(jì)梅解學(xué)與掛才.]US23對(duì)附女度口E翌計(jì)豫電感學(xué)與掛才」+HGM9IIHECE221H圣三'OEKG二李四M①曾王五?dai4 ,典E ,pwd幅濾其計(jì)Si嘰科學(xué)與員術(shù)tDW9k計(jì)餐可?。蹖W(xué)三蓑中1陶)4士什■嘰科學(xué)占校才I08223。M?缸C?224】小明3“果小空Z(yǔ)l圖6.2示例運(yùn)行結(jié)果圖圖6.3添加記錄后的結(jié)果圖程序?qū)崿F(xiàn)的步驟:⑴、創(chuàng)建一個(gè)新的網(wǎng)站,默認(rèn)主頁(yè)為Default.aspx;在Default.aspx頁(yè)面中分別添力口5個(gè)TextBooks控件,分別命名為:txtSno,txtSname,txtClass,txtSdept,txtPwd,分別用來(lái)填寫(xiě)學(xué)號(hào)、姓名、班級(jí)、系別、密碼,其中txtPwd控件的TextMode屬性設(shè)為Password;然后在表格中的性別一欄添加兩個(gè)RadioButton控件分別命名為radMan和radWoman,將這兩個(gè)控件的GroupName設(shè)為radSex,接著將radMan的Text屬性設(shè)為"男",radWoman的Text屬性設(shè)為"女",radMan的Checked屬性設(shè)為T(mén)rue。繼續(xù)添加一個(gè)Button控件,命名為:btnAdd;和一個(gè)GridView控件,命名為:gvStudent。(2)、在【添加】按鈕的Click事件下,使用Command對(duì)象將文本框中的值添加到數(shù)據(jù)庫(kù)中,并將其顯示出來(lái)。其代碼如下:protectedvoidbtnAdd_Click(objectsender,EventArgse(SqlConnectionmyConn=GetConnection(;stringssex;if(radMan.Checked(ssex="男";)else(ssex="女";)try(stringsqlStr="insertintotbStudent(sno,sname,ssex,sclass,sdept,spwdvalues(+txtSno.Text.ToString(.Trim(+"','"z+txtSname.Text.ToString(.Trim(+"','"+ssex+"','"+txtClass.Text.ToString(.Trim(+"','"+txtSdept.Text.ToString(.Trim(+"','"+txtPwd.Text.ToString(.Trim(+"'";//SQL插入語(yǔ)句SqlCommandmyCmd=newSqlCommand(sqlStr,myConn;myConn.Open(;myCmd.ExecuteNonQuery(;//使用SqlCommand對(duì)象插于BindStudent(;)catch
(Response.Write("添加失敗!";)finally(myConn.Close(;))實(shí)例6.4使用Command對(duì)象修改數(shù)據(jù)(源程序詳見(jiàn)光盤(pán)中例6.4本示例主要講解在ASP.NET應(yīng)用程序中如何使用SqlCommand對(duì)象如何修改數(shù)據(jù)庫(kù)中的數(shù)據(jù)。執(zhí)行程序,示例運(yùn)行結(jié)果,如圖6.4所示;在文本框中,輸入需要修改學(xué)生的正確信息,單擊【保存】按鈕,修改數(shù)據(jù)庫(kù)中原有的信息,運(yùn)行結(jié)果如圖6.5所示:1062202姓名醫(yī)百性別「男行會(huì)tWI070TOJ學(xué)院慳用*半根外|期甯EBOspadMU01修1062202姓名醫(yī)百性別「男行會(huì)tWI070TOJ學(xué)院慳用*半根外|期甯EBOspadMU01修男口即見(jiàn)工計(jì)耳機(jī)科學(xué)與核木1082202李E3男時(shí)的珞計(jì)算機(jī)科學(xué)q技十108mg王五男以鮑門(mén)甘算機(jī)科學(xué)與拉術(shù)1052230“趕男。加因以首算機(jī)料學(xué)與技術(shù)1082241小膽玄。前做工甘算機(jī)科學(xué)與技術(shù)1082242小軍男0'0SD9應(yīng)用就學(xué)10822S0/虹0S224L小明5?口SEIJIEUi^S5CXsd^swi-ept spnd睥郵叫計(jì)更機(jī)科■學(xué)與技術(shù)]07070^ 應(yīng)用敖學(xué)1叫叫打計(jì)算機(jī)科學(xué)H技術(shù)]082203張L081202李四0B2229王五082212"隹男0706W障露H計(jì)更嘰斗學(xué)與技術(shù)口初&工計(jì)算機(jī)科學(xué)與技術(shù)應(yīng)用數(shù)學(xué)圖6.4示例運(yùn)行結(jié)果圖圖6.5修改記錄后的結(jié)果圖程序?qū)崿F(xiàn)的步驟:(1)、創(chuàng)建一個(gè)新的網(wǎng)站,默認(rèn)主頁(yè)為Default.aspx;在Default.aspx頁(yè)面中分別添力口5個(gè)TextBooks控件,分別命名為:txtSno,txtSname,txtClass,txtSdept分另1」用來(lái)填寫(xiě)學(xué)號(hào)、姓名、班級(jí)、系別;然后在表格中的性別一欄的單元格中添加兩個(gè)RadioButton控件分別命名為radMan和radWoman,將這兩個(gè)控件的GroupName設(shè)為radSex,接著將radMan的Text屬性設(shè)為"男",radWoman的Text屬性設(shè)為“女'radMan的Checked屬性設(shè)為T(mén)rue。繼續(xù)添加兩個(gè)個(gè)Button控件,命名為:btnSave,btnReturn;和一個(gè)Gridview控件,命名為:gvStudent。(2)、在【保存】按鈕的Click事件下,使用Command對(duì)象將文本框中的值替換數(shù)據(jù)庫(kù)中以后的值,并將其顯示出來(lái)。其代碼如下:protectedvoidbtnSave_Click(objectsender,EventArgse{SqlConnectionmyConn=GetConnection(;stringsno=txtSno.Text.ToString(.Trim(;stringsname=txtSname.Text.ToString(.Trim(;stringssex;if(radMan.Checked{ssex="男";)else{ssex=〃女〃;)stringsclass=txtSclass.Text.ToString(.Trim(;stringsdept=txtSdept.Text.ToString(.Trim(;try{stringsqlStr="updatetbStudentsetsname='"+sname+,ssex=+ssex+"',sclass='"+sclass+"',sdept='"
+sdept+“'wheresno='", I〃,〃.+sno+;SqlCommandmyCmd=newSqlCommand(sqlStr,myConn;myConn.Open(;myCmd.ExecuteNonQuery(;BindStudent(;)catch(Response.Write("修改失敗";)finally(myConn.Close(;)實(shí)例6.5使用Command對(duì)象刪除數(shù)據(jù)(源程序詳見(jiàn)光盤(pán)中例6.5)本示例主要講解在ASP.NET應(yīng)用程序中如何使用SqlCommand對(duì)象如何刪除數(shù)據(jù)庫(kù)中的數(shù)據(jù)。執(zhí)行程序,示例運(yùn)行結(jié)果,如圖6.6所示;單擊學(xué)號(hào)為082201的【刪除】按鈕,運(yùn)行結(jié)果如圖6.7所示:圖6.6示例運(yùn)行結(jié)果圖圖圖6.6示例運(yùn)行結(jié)果圖圖6.7刪除記錄后的結(jié)果圖程序?qū)崿F(xiàn)的步驟:(1)、創(chuàng)建一個(gè)新的網(wǎng)站,默認(rèn)主頁(yè)為Default.aspx;在Default.aspx頁(yè)面中添加一個(gè)Gridview控件,命名為
溫馨提示
- 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建筑工程施工階段鋼筋分包合同
- 業(yè)務(wù)信息咨詢合同樣本
- 代購(gòu)全款預(yù)售合同樣本
- 室內(nèi)裝修合同書(shū)
- 離婚房產(chǎn)歸屬協(xié)議書(shū)范例
- 便宜門(mén)店轉(zhuǎn)讓合同樣本
- 二零二五場(chǎng)二手商鋪?zhàn)赓U合同書(shū)
- 裝修粉刷合同范例
- 二零二五房屋裝修合同補(bǔ)充協(xié)議模板
- 二零二五美容院入股合伙的協(xié)議書(shū)
- 新版《醫(yī)療器械經(jīng)營(yíng)質(zhì)量管理規(guī)范》(2024)培訓(xùn)試題及答案
- 2025年初級(jí)社會(huì)工作者綜合能力全國(guó)考試題庫(kù)(含答案)
- 耳鼻咽喉頭頸外科學(xué)-5.osash及喉科學(xué)
- 99S203 消防水泵接合器安裝圖集
- 第章微生物的遺傳與變異
- GB∕T 21489-2018 散糧汽車卸車裝置
- 教育部人文社科項(xiàng)目申請(qǐng)書(shū)范本-2-副本
- 液力偶合器參數(shù)
- 高填方路基及擋土墻施工方案
- 《側(cè)面描寫(xiě)》教學(xué)課件.ppt
- 不銹鋼欄桿制作與安裝工程工檢驗(yàn)批質(zhì)量檢驗(yàn)記錄
評(píng)論
0/150
提交評(píng)論