ADO.Net SqlCommand類


ADO.Net的SqlCommand類用於儲存和執行SQL Server資料庫的SQL語句。這是一個封閉的類,所以不能被繼承。

SqlCommand類的簽名

public sealed class SqlCommand : System.Data.Common.DbCommand, ICloneable, IDisposable

建構函式

這個類提供了下面的建構函式。

編號 建構函式 描述
1 SqlCommand() 它用於初始化SqlCommand類的新範例。
2 SqlCommand(String) 它用於使用字串引數初始化SqlCommand類的新範例。
3 SqlCommand(String, SqlConnection, SqlTransaction) 它用於初始化SqlCommand類的新範例。它分別使用三個引數查詢,連線和事務字串。
4 SqlCommand(String, SqlConnection, SqlTransaction, SqlCommandColumnEncryptionSetting) 它使用指定的命令文字,連線,事務和加密設定來初始化SqlCommand類的新範例。

構造方法

這個類提供了下面的方法。

編號 方法 描述
1 BeginExecuteNonQuery() 它用於啟動由此SqlCommand描述的SQL語句的非同步執行。
2 Cancel() 它試圖取消一個SqlCommand的執行。
3 Clone() 它建立一個新的SqlCommand物件,它是當前範例的一個副本。
4 CreateParameter() 它建立一個SqlParameter物件的新範例。
5 ExecuteReader() 它用於將CommandText傳送給Connection並構建一個SqlDataReader
6 ExecuteXmlReader() 它用於將CommandText傳送給Connection並構建一個XmlReader物件。
7 ExecuteScalar() 它執行查詢並返回結果集中第一行的第一列,其他列或行將被忽略。
8 Prepare() 它用於通過使用SQL Server的範例來建立準備好的命令版本。
9 ResetCommandTimeout() 它用於將CommandTimeout屬性重置為預設值。

SqlCommand類的使用範例

在這個例子中,建立一個SqlCommand範例並執行一條SQL語句。首先建立一個名稱為:AdoNetSqlCommand 的C#控制台應用專案,如下所示 -

參考以下實現程式碼(Program.cs) -

using System;
using System.Data.SqlClient;

namespace AdoNetSqlCommand
{
    class Program
    {
        static void Main(string[] args)
        {
            new Program().CreateTable();
        }
        public void CreateTable()
        {
            SqlConnection con = null;
            try
            {
                // Creating Connection  
                con = new SqlConnection("data source=.; database=student; integrated security=SSPI");
                // writing sql query  
                SqlCommand cm = new SqlCommand("select * from student_info", con);
                // Opening Connection  
                con.Open();
                Console.WriteLine("當前 student_info 表中的記錄資訊如下 - ");
                // Executing the SQL query  
                SqlDataReader sdr = cm.ExecuteReader();
                while (sdr.Read())
                {
                    Console.WriteLine("學生編號:"+ sdr["id"] + ",姓名: "+sdr["name"] + ",電子郵箱: " + sdr["email"]);
                }
            }
            catch (Exception e)
            {
                Console.WriteLine("OOPs, something went wrong." + e);
            }
            // Closing the connection  
            finally
            {
                con.Close();
            }
        }
    }
}

執行上面範例程式碼,得到以下結果 -

| | | | | | | |
| | `` | |