ASP.NET 2.0中執(zhí)行數(shù)據(jù)庫(kù)操作命令之一_.Net教程
推薦:.NET vs J2EE——面對(duì)SOA的荒謬與誤解·.Net與J2EE在金融行業(yè)愈來(lái)愈呈勢(shì)均力敵之勢(shì),二者均宣稱提供了不同于對(duì)方的、聽(tīng)起來(lái)很迷人的個(gè)性化應(yīng)用服務(wù)。 ·理性的IT執(zhí)行官們已經(jīng)深刻的認(rèn)識(shí)到這樣的一個(gè)事實(shí):無(wú)論是.Net
數(shù)據(jù)庫(kù)命令執(zhí)行時(shí)使用Command對(duì)象。Command類有三種:SqlCommand、OleDbCommand與OdbcCommand。
Command對(duì)象主要用來(lái)運(yùn)行SELECT、INSERT、UPDATE或DELETE之類的SQL語(yǔ)句。Command對(duì)象還可以調(diào)用存儲(chǔ)過(guò)程或從特定表中取得記錄。
DataReader對(duì)象主要是用來(lái)讀取數(shù)據(jù)結(jié)果,使用它讀取記錄時(shí)通常比從DataSet更快。DataReader類有三種:SqlDataReader、OleDbDataReader和OdbcDataReader。DataReader對(duì)象用Commmand對(duì)象從數(shù)據(jù)庫(kù)中讀取記錄,并且DataReader對(duì)象只能向前的讀取記錄,用于在某些情況下替代DataSet對(duì)象(DataSet對(duì)象可以存儲(chǔ)數(shù)據(jù)庫(kù)中的行拷貝,可以在切斷數(shù)據(jù)庫(kù)的連接時(shí)處理這個(gè)拷貝,我們將在以后的章節(jié)中詳細(xì)介紹該對(duì)象)。
注意:不能用DataReader修改數(shù)據(jù)庫(kù)中的記錄,它是采用向前的,只讀的方式讀取數(shù)據(jù)庫(kù)。
SqlCommand類
SqlCommand對(duì)象用于對(duì)SQL Server數(shù)據(jù)庫(kù)執(zhí)行命令。OleDbCommand對(duì)象用于對(duì)支持OleDb的數(shù)據(jù)庫(kù)執(zhí)行命令,如Oracle與ACCESS。
OdbcCommand對(duì)象用于對(duì)支持Odbc的數(shù)據(jù)庫(kù)執(zhí)行命令。盡管SqlCommand類是針對(duì)SQL Server的,但是這個(gè)類的許多屬性、方法與事件和
OleDbCommand及OdbcCommand等類相似。本章將重點(diǎn)講解SqlCommand特定的屬性與方法,其他的Command類你可以參考相應(yīng)的幫助文檔。
注意:使用不同的Command對(duì)象需要導(dǎo)入不同的命名空間。OleDbCommand的命名空間為System.Data.OleDb。SqlCommand的命名空間為System.Data.SqlClient。OdbcCommand的命名空間為System.Data.Odbc。
SqlCommand屬性:
屬性 說(shuō)明
CommandText 其返回類型為string, 獲取或設(shè)置要對(duì)數(shù)據(jù)源執(zhí)行的 SQL 語(yǔ)句、存儲(chǔ)過(guò)程或表。
CommandTimeOut 其返回類型為int,獲取或設(shè)置在終止執(zhí)行命令的嘗試并生成錯(cuò)誤之前的等待時(shí)間。
CommandType 其返回類型為CommandType,讀取或設(shè)置表示CommandText屬性將如何被解釋的值,其有效的值可以為CommandType.Text、CommandType.StoredProcedur與CommandType.TableDirect,分別表示SQL語(yǔ)句、存儲(chǔ)過(guò)程調(diào)用或要讀取的表,默認(rèn)為Text。
Connection 其返回類型為string, 獲取或設(shè)置 SqlCommand 的此實(shí)例使用的 SqlConnection。
Parameters 其返回類型為SqlParameterCollection,取得提供給命令的參數(shù)(如有)。
SqlCommand方法:
方法 說(shuō)明
Cancle() 其返回類型為void,取消命令的執(zhí)行
CreateParameter() 其返回類型為SqlParameter, 用于創(chuàng)建 SqlParameter 對(duì)象的新實(shí)例。
ExecuteNonQuery() 其返回類型為int,執(zhí)行不返回結(jié)果集的Sql語(yǔ)句,包括INSERT、UPDATE與DELETE語(yǔ)句、DDL語(yǔ)句和不返回結(jié)果集的存儲(chǔ)過(guò)程調(diào)用。返回的int值是命令影響的數(shù)據(jù)庫(kù)行數(shù)。
ExecuteReader() 其返回類型為SqlDataReader, 執(zhí)行SELECT語(yǔ)句、TableDirect命令或返回結(jié)果集的存儲(chǔ)過(guò)程調(diào)用。在SqlDataReader對(duì)象中返回結(jié)果集。
ExecuteScalar() 其返回類型為object,執(zhí)行返回單個(gè)值的SELECT語(yǔ)句(任何其他的值將被忽略)。這個(gè)命令結(jié)果作為對(duì)象被返回。
ExecuteXMLReader() 其返回類型為XmlReader,執(zhí)行返回XML數(shù)據(jù)的SELECT語(yǔ)句,用XMLReader對(duì)象返回結(jié)果集,只適用于SqlCommand類
生成SqlCommand對(duì)象
我們可以用構(gòu)造函數(shù)生成SqlCommand對(duì)象,也可以調(diào)用SqlConnection對(duì)象的CreateCommand()方法生成SqlCommand對(duì)象,下面分別介紹這兩種方法。
用構(gòu)造函數(shù)生成SqlCommand對(duì)象
SqlCommand對(duì)象的構(gòu)造函數(shù)如下所示:
SqlCommand()
SqlCommand(string commandText)
SqlCommand(string commandText,SqlConnection MySQLConnection)
程序代碼說(shuō)明:在上述語(yǔ)法范例的程序代碼中,commandText包含SQL語(yǔ)句、存儲(chǔ)過(guò)程調(diào)用或要讀取的表。MySQLConnection是對(duì)應(yīng)的SqlConnection對(duì)象。
在使用SqlCommand對(duì)象之前,首先要確定一個(gè)SqlConnection對(duì)象,用于和SQL Server數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)傳遞。
MySQLConnection.ConnectionString="server=localhost;database=Northwind;
integrated security=SSPI";
然后可以用下列語(yǔ)句生成新的SqlCommand對(duì)象:
SqlCommand MySQLCommand=new SqlCommand();
再將mySqlCommand對(duì)象的Connection屬性設(shè)置為MySQLConnection:
mySqlCommand.Connection= MySQLConnection;
這樣mySqlCommand對(duì)象就可以使用MySQLConnection與數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)傳遞。現(xiàn)在,Command對(duì)象的CommandType屬性確定要執(zhí)行的命令類型。可以用System.Data.CommandType枚舉值指定CommandType屬性。
CommandType的枚舉值如下表所示:
數(shù)值 說(shuō)明
Text 表示命令是SQL語(yǔ)句,默認(rèn)值是Text
StoredProcedure 表示命令是儲(chǔ)存過(guò)程調(diào)用
TableDirect 表示被讀取的行和列的表名。注意:SqlCommand對(duì)象不支持TableDirect,要使用其他的Command類的對(duì)象。
例如你可以采用如下的形式執(zhí)行一個(gè)SQL查詢:
以下為引用的內(nèi)容: SqlCommand MySQLCommand=new SqlCommand(); mySqlCommand.Connection=MySQLConnection; MySQLCommand.CommandText=”SELECT * FROM Employees”; //MySQLCommand.CommandType=CommandType.Text; |
程序代碼說(shuō)明:在上述語(yǔ)法范例的程序代碼中,我們?cè)O(shè)置了mySqlCommand對(duì)象的commandText為一個(gè)SELECT查詢語(yǔ)句,并且指定了MySQLCommand對(duì)象的CommandType屬性為CommandType.Text,表示命令是SQL語(yǔ)句。由于CommandType.Text是默認(rèn)的CommandType值,所以我們可以將其注譯掉。
還有一個(gè)更具效率的形式,那就是使用SqlCommand對(duì)象的其中一種構(gòu)造函數(shù):
SqlCommand MySQLCommand=new SqlCommand(”SELECT * FROM Employees”,myConnection);
程序代碼說(shuō)明:在上述語(yǔ)法范例的程序代碼中,我們可以直接利用SqlCommand(string commandText,SqlConnection MySQLConnection) 構(gòu)造函數(shù),從而使得程序代碼更加的簡(jiǎn)練和直觀。
還可以使用儲(chǔ)存過(guò)程來(lái)查詢所需要的數(shù)據(jù),我們可以采用如下的代碼形式:
以下為引用的內(nèi)容: SqlCommand MySQLCommand=new SqlCommand(”GetEmpolyees”,myConnection); MySQLCommand.CommandType=CommandType.StoredProcedure; |
程序代碼說(shuō)明:在上述語(yǔ)法范例的程序代碼中,GetEmpolyees為一個(gè)儲(chǔ)存過(guò)程名,用來(lái)實(shí)現(xiàn)所有的雇員信息查詢。并且將CommandType值指定為StoredProcedure,表示命令是儲(chǔ)存過(guò)程調(diào)用。
使用CreateCommand()方法生成SqlCommand對(duì)象
如果不用構(gòu)造函數(shù),也可以使用SqlConnection對(duì)象的CreateCommand()方法生成SqlCommand對(duì)象。這個(gè)方法返回新的SqlCommand對(duì)象。例如:
SqlCommand mySqlCommand=MySQLConnection.CreateCommand();
分享:ASP.NET多頻道網(wǎng)站架構(gòu)實(shí)現(xiàn)方法各頻道分別位于不同的Web Project(具有獨(dú)立的二級(jí)域名),并將所有的業(yè)務(wù)邏輯以及數(shù)據(jù)訪問(wèn)功能封裝成Class Library,所有頻道共用這個(gè)Class Library。 下面詳細(xì)介紹實(shí)現(xiàn)方法。 假設(shè)網(wǎng)站有三
- asp.net如何得到GRIDVIEW中某行某列值的方法
- .net SMTP發(fā)送Email實(shí)例(可帶附件)
- js實(shí)現(xiàn)廣告漂浮效果的小例子
- asp.net Repeater 數(shù)據(jù)綁定的具體實(shí)現(xiàn)
- Asp.Net 無(wú)刷新文件上傳并顯示進(jìn)度條的實(shí)現(xiàn)方法及思路
- Asp.net獲取客戶端IP常見(jiàn)代碼存在的偽造IP問(wèn)題探討
- VS2010 水晶報(bào)表的使用方法
- ASP.NET中操作SQL數(shù)據(jù)庫(kù)(連接字符串的配置及獲取)
- asp.net頁(yè)面?zhèn)髦禍y(cè)試實(shí)例代碼
- DataGridView - DataGridViewCheckBoxCell的使用介紹
- asp.net中javascript的引用(直接引入和間接引入)
- 三層+存儲(chǔ)過(guò)程實(shí)現(xiàn)分頁(yè)示例代碼
.Net教程Rss訂閱編程教程搜索
.Net教程推薦
- ASP.NET 2.0中的Web和HTML服務(wù)器控件
- ASP.NET利用MD.DLL轉(zhuǎn)EXCEL具體實(shí)現(xiàn)
- 基于.NET平臺(tái)的分層架構(gòu)實(shí)戰(zhàn)(五)接口的設(shè)計(jì)與實(shí)現(xiàn)
- ADO.Net 類型化DataSet的簡(jiǎn)單介紹
- 利用緩沖技術(shù)提高JSP程序的性能和穩(wěn)定性
- .Net下的MSMQ的同步異步調(diào)用
- .net編程中常見(jiàn)錯(cuò)誤詳解
- 淺析asp.net 里 include UTF8 垃圾問(wèn)題
- 用Xaml做網(wǎng)頁(yè)框架
- 解析五種ADO.NET數(shù)據(jù)庫(kù)連接知識(shí)
- 相關(guān)鏈接:
- 教程說(shuō)明:
.Net教程-ASP.NET 2.0中執(zhí)行數(shù)據(jù)庫(kù)操作命令之一。