說明
使用 Command 對象查詢資料庫並返回 Recordset 對象中的記錄,以便執行大量操作或處理資料庫結構。取決於提供者的功能,某些 Command 集合、方法或屬性被引用時可能會產生錯誤。
可以使用 Command 對象的集合、方法、屬性進行下列操作:
· 使用 CommandText 屬性定義命令(例如,SQL 語句)的可執行文本。
· 通過 Parameter 對象和 Parameters 集合定義參數化查詢或存儲過程參數。
· 可使用 Execute 方法執行命令並在適當的時候返回 Recordset 對象。
· 執行前應使用 CommandType 屬性指定命令類型以最佳化性能。
· 使用 Prepared 屬性決定提供者是否在執行前保存準備好(或編譯好)的命令版本。
· 使用 CommandTimeout 屬性設定提供者等待命令執行的秒數。
· 通過設定 ActiveConnection 屬性使打開的連線與 Command 對象關聯。
· 設定 Name 屬性將 Command 標識為與 Connection 對象關聯的方法。
· 將 Command 對象傳送給 Recordset 的 Source 屬性以便獲取數據。
注意 如果不想使用 Command 對象執行查詢,請將查詢字元串傳送給 Connection 對象的 Execute 方法或 Recordset 對象的 Open 方法。但是,當需要使命令文本具有持久性並重新執行它,或使用查詢參數時,則必須使用 Command 對象。
要獨立於先前已定義的 Connection 對象創建 Command 對象,請將它的 ActiveConnection 屬性設定為有效的連線字元串。ADO 仍將創建 Connection 對象,但它不會將該對象賦給對象變數。但是,如果正在將多個 Command 對象與同一個連線關聯,則必須顯式創建並打開 Connection 對象,這樣即可將 Connection 對象賦給對象變數。如果沒有將 Command 對象的 ActiveConnection 屬性設定為該對象變數,則即使使用相同的連線字元串,ADO 也將為每個 Command 對象創建新的 Connection 對象。
要執行 Command,只需通過它所關聯的 Connection 對象的 Name 屬性,將其簡單調用即可。必須將 Command 的 ActiveConnection 屬性設定為 Connection 對象。如果 Command 帶有參數,則將這些參數的值作為參數傳送給方法。
如果在相同連線上執行兩個或多個 Command 對象,並且某個 Command 對象是帶輸出參數的存儲過程,這時會發生錯誤。要執行各個 Command 對象,請使用獨立的連線或將所有其他 Command 對象的連線斷開
資料庫
根據所用的.NET數據提供程式的不同,Command對象的=也分成四種,分別是SqlCommand、OleDbCommand、OdbcCommand和OracleCommand,SQL數據程式對應的是SqlCommand對象,Command對象的主要屬性和方法如表所示:
類別 | 名稱 | 說明 |
屬性 | CommandText | 獲取或設定對資料庫執行的SQL語句 |
Connection | 獲取或設定此Command對象使用的Connection對象的名稱 | |
方法 | ExecuteNonQuery | 執行SQL語句並返回受影響的行數 |
ExecuteReader | 執行查詢語句,返回DataReader對象 | |
ExecuteScalar | 執行查詢,返回結果集中第一行的第一列 |