国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

ASP.NET 2.0中執行數據庫操作命令之一

2024-07-10 13:07:40
字體:
來源:轉載
供稿:網友
數據庫命令執行時使用command對象。command類有三種:sqlcommand、oledbcommand與odbccommand。

  command對象主要用來運行select、insert、update或delete之類的sql語句。command對象還可以調用存儲過程或從特定表中取得記錄。

  datareader對象主要是用來讀取數據結果,使用它讀取記錄時通常比從dataset更快。datareader類有三種:sqldatareader、oledbdatareader和odbcdatareader。datareader對象用commmand對象從數據庫中讀取記錄,并且datareader對象只能向前的讀取記錄,用于在某些情況下替代dataset對象(dataset對象可以存儲數據庫中的行拷貝,可以在切斷數據庫的連接時處理這個拷貝,我們將在以后的章節中詳細介紹該對象)。

  注意:不能用datareader修改數據庫中的記錄,它是采用向前的,只讀的方式讀取數據庫。

  sqlcommand類

  sqlcommand對象用于對sql server數據庫執行命令。oledbcommand對象用于對支持oledb的數據庫執行命令,如oracle與access。odbccommand對象用于對支持odbc的數據庫執行命令。盡管sqlcommand類是針對sql server的,但是這個類的許多屬性、方法與事件和oledbcommand及odbccommand等類相似。本章將重點講解sqlcommand特定的屬性與方法,其他的command類你可以參考相應的幫助文檔。

  注意:使用不同的command對象需要導入不同的命名空間。oledbcommand的命名空間為system.data.oledb。sqlcommand的命名空間為system.data.sqlclient。odbccommand的命名空間為system.data.odbc。

  sqlcommand屬性:

屬性 說明
commandtext 其返回類型為string, 獲取或設置要對數據源執行的 sql 語句、存儲過程或表。
commandtimeout 其返回類型為int,獲取或設置在終止執行命令的嘗試并生成錯誤之前的等待時間。
commandtype 其返回類型為commandtype,讀取或設置表示commandtext屬性將如何被解釋的值,其有效的值可以為commandtype.text、commandtype.storedprocedur與commandtype.tabledirect,分別表示sql語句、存儲過程調用或要讀取的表,默認為text。
connection 其返回類型為string, 獲取或設置 sqlcommand 的此實例使用的 sqlconnection。
parameters 其返回類型為sqlparametercollection,取得提供給命令的參數(如有)。

  sqlcommand方法:

方法 說明
cancle() 其返回類型為void,取消命令的執行
createparameter() 其返回類型為sqlparameter, 用于創建 sqlparameter 對象的新實例。
executenonquery() 其返回類型為int,執行不返回結果集的sql語句,包括insert、update與delete語句、ddl語句和不返回結果集的存儲過程調用。返回的int值是命令影響的數據庫行數。
executereader() 其返回類型為sqldatareader, 執行select語句、tabledirect命令或返回結果集的存儲過程調用。在sqldatareader對象中返回結果集。
executescalar() 其返回類型為object,執行返回單個值的select語句(任何其他的值將被忽略)。這個命令結果作為對象被返回。
executexmlreader() 其返回類型為xmlreader,執行返回xml數據的select語句,用xmlreader對象返回結果集,只適用于sqlcommand類


 

生成sqlcommand對象

  我們可以用構造函數生成sqlcommand對象,也可以調用sqlconnection對象的createcommand()方法生成sqlcommand對象,下面分別介紹這兩種方法。

  用構造函數生成sqlcommand對象

  sqlcommand對象的構造函數如下所示:

sqlcommand()
sqlcommand(string commandtext)
sqlcommand(string commandtext,sqlconnection mysqlconnection)

  程序代碼說明:在上述語法范例的程序代碼中,commandtext包含sql語句、存儲過程調用或要讀取的表。mysqlconnection是對應的sqlconnection對象。

  在使用sqlcommand對象之前,首先要確定一個sqlconnection對象,用于和sql server數據庫進行數據傳遞。

mysqlconnection.connectionstring="server=localhost;database=northwind;
integrated security=sspi";

  然后可以用下列語句生成新的sqlcommand對象:

sqlcommand mysqlcommand=new sqlcommand();

  再將mysqlcommand對象的connection屬性設置為mysqlconnection:

mysqlcommand.connection= mysqlconnection;

  這樣mysqlcommand對象就可以使用mysqlconnection與數據庫進行數據傳遞。現在,command對象的commandtype屬性確定要執行的命令類型。可以用system.data.commandtype枚舉值指定commandtype屬性。
commandtype的枚舉值如下表所示:

數值 說明
text 表示命令是sql語句,默認值是text
storedprocedure 表示命令是儲存過程調用
tabledirect 表示被讀取的行和列的表名。注意:sqlcommand對象不支持tabledirect,要使用其他的command類的對象。

  例如你可以采用如下的形式執行一個sql查詢:

sqlcommand mysqlcommand=new sqlcommand();
mysqlcommand.connection=mysqlconnection;
mysqlcommand.commandtext=”select * from employees”;
//mysqlcommand.commandtype=commandtype.text;

  程序代碼說明:在上述語法范例的程序代碼中,我們設置了mysqlcommand對象的commandtext為一個select查詢語句,并且指定了mysqlcommand對象的commandtype屬性為commandtype.text,表示命令是sql語句。由于commandtype.text是默認的commandtype值,所以我們可以將其注譯掉。

  還有一個更具效率的形式,那就是使用sqlcommand對象的其中一種構造函數:

sqlcommand mysqlcommand=new sqlcommand(”select * from employees”,myconnection);

  程序代碼說明:在上述語法范例的程序代碼中,我們可以直接利用sqlcommand(string commandtext,sqlconnection mysqlconnection) 構造函數,從而使得程序代碼更加的簡練和直觀。

  還可以使用儲存過程來查詢所需要的數據,我們可以采用如下的代碼形式:

sqlcommand mysqlcommand=new sqlcommand(”getempolyees”,myconnection);
mysqlcommand.commandtype=commandtype.storedprocedure;

  程序代碼說明:在上述語法范例的程序代碼中,getempolyees為一個儲存過程名,用來實現所有的雇員信息查詢。并且將commandtype值指定為storedprocedure,表示命令是儲存過程調用。

  使用createcommand()方法生成sqlcommand對象

  如果不用構造函數,也可以使用sqlconnection對象的createcommand()方法生成sqlcommand對象。這個方法返回新的sqlcommand對象。例如:

sqlcommand mysqlcommand=mysqlconnection.createcommand();

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 惠东县| 连城县| 嘉兴市| 龙泉市| 高雄市| 利川市| 泊头市| 察雅县| 潜江市| 梅河口市| 昌吉市| 中阳县| 武邑县| 溆浦县| 沛县| 石屏县| 河北区| 新竹县| 囊谦县| 淮安市| 宜兴市| 永城市| 潮州市| 苍梧县| 灌阳县| 保德县| 南开区| 吉首市| 麻栗坡县| 大渡口区| 托克逊县| 青川县| 射阳县| 运城市| 蓬溪县| 灵台县| 吉木乃县| 黄平县| 云南省| 许昌市| 忻州市|