2使用Command對象進行數(shù)據(jù)操作_第1頁
2使用Command對象進行數(shù)據(jù)操作_第2頁
2使用Command對象進行數(shù)據(jù)操作_第3頁
2使用Command對象進行數(shù)據(jù)操作_第4頁
2使用Command對象進行數(shù)據(jù)操作_第5頁
已閱讀5頁,還剩8頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

6.2.2使用Command對象進行數(shù)據(jù)操作Command對象簡介Command對象是在Connection對象連接數(shù)據(jù)庫之后,對數(shù)據(jù)庫執(zhí)行查詢、添加、刪除和修改等各種操作時使用。操作實現(xiàn)的方式可以使用SQL語句,也可以使用存儲過程。根據(jù)所用的.NETFramework數(shù)據(jù)提供程序的不同,Command對象也可以分成4種,分別是SqlCommand、OleDbCommand、OdbcCommand和OracleCommand,根據(jù)本書編排下面我們著重介紹一下SqlCommand。SqlCommand對象常用屬性SqlCommand對象常用屬性如下:屬性說明CommandText獲取或設置要執(zhí)行的語句或存儲過程CommandType獲取或設置一個值,該值指示如何解釋CommandText屬性Connection獲取或設置命令使用的連接對象。默認為空CommandTimeout獲取或設置試圖執(zhí)行命令時要等待的時間(以秒為單位)默認為30秒Parameters獲得與該命令關聯(lián)的參數(shù)集合表6.3SqlCommand對象常用屬性SqlCommand對象的常用屬性詳解:CommandType屬性獲取或設置Command對象要執(zhí)行命令的類型。語法:publicoverrideCommandTypeCommandType{get;set;}屬性值:CommandType值之一,默認為Text。當將CommandType設置為StoredProcedure時,應將CommandText屬性設置為存儲過程的名稱。當調(diào)用Execute方法之一時,該命令將執(zhí)行此存儲過程。CommandText屬性獲取或設置要對數(shù)據(jù)源執(zhí)行的Transact-SQL語句或存儲過程。通過Command對象執(zhí)行SQL語句或存儲過程。語法:publicoverridestringCommandText{get;set;}SqlCommand對象常用方法SqlCommand對象常用方法如下:方法 說明ExecuteNonQuery執(zhí)行ExecuteNonQuery執(zhí)行SQL語句并返回受影響的行數(shù)ExecuteScalar 執(zhí)行查詢,并返回查詢所返回的結果集中第一行的第一列,忽略其他列或行ExecuteReader執(zhí)行返回數(shù)據(jù)集的ExecuteReader執(zhí)行返回數(shù)據(jù)集的SELECT語句表6.4SqlCommand對象常用方法SqlCommand對象常用方法詳解:ExecuteNonQuery方法ExecuteNonQuery方法執(zhí)行諸如UPDATE、INSERT和DELETE語句有關的更新操作,在這些情況下,返回值是命令影響的行數(shù)。對于其他類型的語句,諸如SET或CREATE語句,則返回值為-1;如果發(fā)生回滾,返回值也為-1。語法:publicoverrideObjectExecuteNonQuery(例如,創(chuàng)建一個SqlCommand,然后使用ExecuteNonQuery方法執(zhí)行(queryString代表Transact-SQL語句如,UPDATE、INSERT或DELETE),代碼如下:privatestaticvoidCreateCommand(stringqueryString,stringconnectionString{SqlConnectionconnection=newSqlConnection(connectionStringSqlCommandcommand=newSqlCommand(queryString,connection;command.Connection.Open(;command.ExecuteNonQuery(;//^^Command命令ExecuteReader方法ExecuteReader方法通常與查詢命令一起使用,并且返回一個數(shù)據(jù)閱讀器對象SqlDataReader類的一個實例。數(shù)據(jù)閱讀器是一種只讀的、向前移動的游標,客戶端代碼滾動游標并從中讀取數(shù)據(jù)(下節(jié)將具體介紹數(shù)據(jù)閱讀器)。如果通過ExecuteReader方法執(zhí)行一個更新語句,則該命令成功地執(zhí)行,但是不會返回任何受影響的數(shù)據(jù)行。例如,創(chuàng)建一個SqlCommand,然后應用ExecuteReader(方法來創(chuàng)建DataReader對象來對數(shù)據(jù)源進行讀取,代碼如下:SqlCommandcommand=newSqlCommand(queryString,connection;〃通過ExecuteReader方法創(chuàng)建DataReader對象SqlDataReaderreader=command.ExecuteReader(;while(reader.Read((ConSQLe.WriteLine(String.Format("{0}",reader[0];)?ExecuteScalar方法執(zhí)行查詢,并返回查詢所返回的結果集中第一行的第一列語法:publicoverrideObjectExecuteScalar(如果只想檢索數(shù)據(jù)庫信息中的一個值,而不需要返回表或數(shù)據(jù)流形式的數(shù)據(jù)庫信息。例如,只需要返回COUNT(*、SUM(grade或AVG(grade等聚合函數(shù)的結果,那么Command對象的ExecuteScalar方法就很有用。如果在一個常規(guī)查詢語句當中調(diào)用該方法,則只讀取第一行第一列的值,而丟棄所有其他值。例如,使用SqlCommand對象的ExecuteScalar方法來返回表中記錄的數(shù)目(SELECT語句使用Transact-SQLCOUNT聚合函數(shù)返回指定表中的行數(shù)的單個值),代碼如下:stringsqlstr="SELECTCount(*FROMtbStudent";SqlComandstudentCMD=newSqlCommand(sqlstr,connection;〃將返回的記錄數(shù)目強制轉換成整型Int32count=(Int32studentCMD.ExecuteScalar(;SqlCommand對象的應用示例6.2使用Command對象查詢數(shù)據(jù)(源程序詳見光盤中例6.2本示例主要講解在ASP.NET應用程序中如何使用SqlCommand對象查詢數(shù)據(jù)庫中的記錄。執(zhí)行程序,在“姓名”文本框中輸入“張三”,并單擊“查詢”控件,將會在界面上顯示查詢結果,如圖所示:圖6.1使用Command對象查詢數(shù)據(jù)程序實現(xiàn)的步驟:(1、新建一個網(wǎng)站,默認主頁為Default.aspxo(2、打開Default.aspx文件,在Default.aspx界面上添加一個TextBox控件和一個Button控件分別命名為txtName和btnSelect,并將Button的Text屬性設為“查詢”,然后再添加一個Gridiew控件命名為gvStudent.(3、在Web.Config文件中配置數(shù)據(jù)庫連接字符串,在下的子配置節(jié)添加連接字符串。其代碼如下:providerName="System.Data.SqlClient”connectionString="server=.;database二dbChooseCourse;uid二ChooseCourse;pwd二ChooseCourse"name="sqlconn”/>(4、在Default.aspx頁中,使用ConfigurationManager類獲取配置節(jié)的連接字符串。其代碼如下:〃自定義數(shù)據(jù)庫連接函數(shù)publicSqlConnectionGetConnection((〃獲取Web.Config文件中的連接字符串StringmyStr=System.Configuration.ConfigurationManager.ConnectionStrings["sqlconn"].ToString(;SqlConnectionmyConn=newSqlConnection(myStr;returnmyConn;)(5、在【查詢】按鈕的Click事件下,使用Command對象查詢數(shù)據(jù)庫中的記錄,調(diào)用GetConnection(函數(shù)進行數(shù)據(jù)庫連接,并調(diào)用BindStudent(函數(shù)進行數(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)容即學生姓名stringsqlStr="select*fromtbStudentwheresname='"+name+"'";//SQL查詢語句SqlCommandmyCmd=newSqlCommand(sqlStr,myConn;//創(chuàng)建Command對象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(;)實例6.3使用Command對象添加數(shù)據(jù)(源程序詳見光盤中例6.3本示例主要講解在ASP.NET應用程序中如何使用SqlCommand對象如何向數(shù)據(jù)庫中添加數(shù)據(jù)。執(zhí)行程序,示例運行結果,如圖6.2所示;在文本框中,輸入學生的正確信息,單擊【添加學生信息】按鈕,將學生信息提交到數(shù)據(jù)庫中,運行結果如圖6.3所示:洞畔生神力』學士爭%r姓名?性孫W.呆臥"黑廣女密西,-M學洞畔生神力』學士爭%r姓名?性孫W.呆臥"黑廣女密西,-M學生一季|,“*,*的仙id4fr$k*W期的L張三男囤mii■算解定與技術]慌出皿空口E的計算機科亍與捱木」帕3為壬五甲。網(wǎng)”計算機科宇與片木]0S223Qd^I里黑口叼2計梅解學與掛才.]US23對附女度口E翌計豫電感學與掛才」+HGM9IIHECE221H圣三'OEKG二李四M①曾王五?dai4 ,典E ,pwd幅濾其計Si嘰科學與員術tDW9k計餐可?。蹖W三蓑中1陶)4士什■嘰科學占校才I08223。M?缸C?224】小明3“果小空Zl圖6.2示例運行結果圖圖6.3添加記錄后的結果圖程序實現(xiàn)的步驟:⑴、創(chuàng)建一個新的網(wǎng)站,默認主頁為Default.aspx;在Default.aspx頁面中分別添力口5個TextBooks控件,分別命名為:txtSno,txtSname,txtClass,txtSdept,txtPwd,分別用來填寫學號、姓名、班級、系別、密碼,其中txtPwd控件的TextMode屬性設為Password;然后在表格中的性別一欄添加兩個RadioButton控件分別命名為radMan和radWoman,將這兩個控件的GroupName設為radSex,接著將radMan的Text屬性設為"男",radWoman的Text屬性設為"女",radMan的Checked屬性設為True。繼續(xù)添加一個Button控件,命名為:btnAdd;和一個GridView控件,命名為:gvStudent。(2)、在【添加】按鈕的Click事件下,使用Command對象將文本框中的值添加到數(shù)據(jù)庫中,并將其顯示出來。其代碼如下: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插入語句SqlCommandmyCmd=newSqlCommand(sqlStr,myConn;myConn.Open(;myCmd.ExecuteNonQuery(;//使用SqlCommand對象插于BindStudent(;)catch

(Response.Write("添加失敗!";)finally(myConn.Close(;))實例6.4使用Command對象修改數(shù)據(jù)(源程序詳見光盤中例6.4本示例主要講解在ASP.NET應用程序中如何使用SqlCommand對象如何修改數(shù)據(jù)庫中的數(shù)據(jù)。執(zhí)行程序,示例運行結果,如圖6.4所示;在文本框中,輸入需要修改學生的正確信息,單擊【保存】按鈕,修改數(shù)據(jù)庫中原有的信息,運行結果如圖6.5所示:1062202姓名醫(yī)百性別「男行會tWI070TOJ學院慳用*半根外|期甯EBOspadMU01修1062202姓名醫(yī)百性別「男行會tWI070TOJ學院慳用*半根外|期甯EBOspadMU01修男口即見工計耳機科學與核木1082202李E3男時的珞計算機科學q技十108mg王五男以鮑門甘算機科學與拉術1052230“趕男。加因以首算機料學與技術1082241小膽玄。前做工甘算機科學與技術1082242小軍男0'0SD9應用就學10822S0/虹0S224L小明5?口SEIJIEUi^S5CXsd^swi-ept spnd睥郵叫計更機科■學與技術]07070^ 應用敖學1叫叫打計算機科學H技術]082203張L081202李四0B2229王五082212"隹男0706W障露H計更嘰斗學與技術口初&工計算機科學與技術應用數(shù)學圖6.4示例運行結果圖圖6.5修改記錄后的結果圖程序實現(xiàn)的步驟:(1)、創(chuàng)建一個新的網(wǎng)站,默認主頁為Default.aspx;在Default.aspx頁面中分別添力口5個TextBooks控件,分別命名為:txtSno,txtSname,txtClass,txtSdept分另1」用來填寫學號、姓名、班級、系別;然后在表格中的性別一欄的單元格中添加兩個RadioButton控件分別命名為radMan和radWoman,將這兩個控件的GroupName設為radSex,接著將radMan的Text屬性設為"男",radWoman的Text屬性設為“女'radMan的Checked屬性設為True。繼續(xù)添加兩個個Button控件,命名為:btnSave,btnReturn;和一個Gridview控件,命名為:gvStudent。(2)、在【保存】按鈕的Click事件下,使用Command對象將文本框中的值替換數(shù)據(jù)庫中以后的值,并將其顯示出來。其代碼如下: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(;)實例6.5使用Command對象刪除數(shù)據(jù)(源程序詳見光盤中例6.5)本示例主要講解在ASP.NET應用程序中如何使用SqlCommand對象如何刪除數(shù)據(jù)庫中的數(shù)據(jù)。執(zhí)行程序,示例運行結果,如圖6.6所示;單擊學號為082201的【刪除】按鈕,運行結果如圖6.7所示:圖6.6示例運行結果圖圖圖6.6示例運行結果圖圖6.7刪除記錄后的結果圖程序實現(xiàn)的步驟:(1)、創(chuàng)建一個新的網(wǎng)站,默認主頁為Default.aspx;在Default.aspx頁面中添加一個Gridview控件,命名為

溫馨提示

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

評論

0/150

提交評論