介紹
表示要對 SQL Server 資料庫執行的一個 Transact-SQL 語句或存儲過程。無法繼承此類。
命名空間: System.Data.SqlClient
程式集: System.Data(在 System.Data.dll 中)
C#:
public sealed class SqlCommand : DbCommand, ICloneable
當創建 SqlCommand 的實例時,讀/寫屬性將被設定為它們的初始值。
您可以重置 CommandText 屬性並重複使用 SqlCommand 對象。但是,在執行新的命令或先前命令之前,必須關閉 SqlDataReader。如果執行 SqlCommand 的方法生成 SqlException,那么當嚴重級別小於等於 19 時,SqlConnection 將仍保持打開狀態。當嚴重級別大於等於 20 時,伺服器通常會關閉 SqlConnection。但是,用戶可以重新打開連線並繼續。
實例
private static void ReadOrderData(string connectionString)
{ //要執行的Sql語句
string queryString ="SELECT OrderID, CustomerID FROM dbo.Orders;";
using (SqlConnection connection = new SqlConnection( connectionString))
{
SqlCommand command = new SqlCommand( queryString, connection); connection.Open();
SqlDataReader reader = command.ExecuteReader();
try
{
while (reader.Read())
{
Console.WriteLine(String.Format("{0}, {1}", reader[0], reader[1]));
}
}
finally
{
// Always call Close when done reading.
reader.Close();
}
}
}
string str = "server="(local)";database="mytable";uid="sa";pwd="sa"";
SqlConnection conn = new SqlConnection(str); //創建連線對象
conn.Open(); //打開連線
其中,str是數據連線字串,用來初始化Connection對象,說明如何連線資料庫,當資料庫連線完畢後,可以使用Open方法打開數據連線。完成資料庫連線後,需創建一個新的Command對象,示例代碼如下所示。
SqlCommand cmd = new SqlCommand("insert into mynews value ('插入一條新數據')", conn);
Command對象的構造函式的參數有兩個,一個是需要執行的SQL語句,另一個是資料庫連線對象。創建Command對象後,就可以執行SQL命令,執行後完成並關閉數據連線,示例代碼如下所示。
cmd.ExecuteNonQuery(); //執行SQL命令
conn.Close(); //關閉連線
類的屬性
1.CommandText
獲取或設定要對數據源執行的Transact—SQL語句或存儲過程。
2. CommandType
獲取或設定一個值,該值指示如何解釋CommandText屬性。
3.Connection
獲取或設定SqlCommand的實例使用的SqlConnection。
4.CommandTimeOut
獲取或設定在終止執行命令的嘗試並生成錯誤之前的等待時間。
等待命令執行的時時間(以秒為單位)。預設值為 30 秒。
類的方法
1.ExecuteNonQuery();
它的返回值類型為int型。多用於執行增加,刪除,修改數據。返回受影響的行數。
2.ExecuteReader();
它的返回類型為SqlDataReader。此方法用於用戶進行的查詢操作。使用SqlDataReader對象的Read();方法進行逐行讀取。
例如:
SqlCommand comm =new SqlCommand("select * from CGSZ where cid="+id,conn);
SqlDataReader reder=comm.ExecuteReader();
while(reder.Read())
{
//讀出內容列
string str=reder["cname"].ToString();
//讀取分類列
string str1=reder["ckind"].ToString();
//分別為文本框載入數據
this.txtContent.Text = str;
this.txtClass.Text = str1;
}
其中的讀取數據列的時候。除了使用reder["列名"].ToString();還可以使用reder[索引].ToSting();<注意:這裡的索引指的是資料庫中列的索引。從0開始。
3.ExecuteScalar();
它的返回值類型多為int類型。它返回的多為執行select查詢。得到的返回結果為一個值的情況,比如使用count函式求表中記錄個數或者使用sum函式求和等。