sqlcommand

sqlcommand

用於C#編程時對資料庫進行操作的類名。C# 中位於SqlClient中的一個類。表示要對SQLSERVER資料庫進行操作。

SqlCommand對象允許你指定在資料庫上執行的操作的類型。比如,你能夠對資料庫中的行數據執行select,insert,modify以及delete命令。SqlCommand對象能被用來支持斷開連接數據管理的情況,可以只單獨使用SqlCommand對象。也可以與SqlDataAdapter一起實現斷開數據連接,實現操作資料庫的應用程序。

介紹


表示要對 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函數求和等。