Share via


HOW TO:建立及執行傳回資料列的 SQL 陳述式

更新:2007 年 11 月

若要執行傳回資料列的 SQL 陳述式,您可以執行一個設定為要執行 SQL 陳述式的 TableAdapter 查詢 (例如 CustomersTableAdapter.Fill(CustomersDataTable))。

如果應用程式不會使用 TableAdapter,請在命令物件上呼叫 ExecuteReader 方法,將它的 CommandType 屬性設定為 Text (「命令物件」是指應用程式所使用的 .NET Framework 資料提供者的特定命令。例如,如果您的應用程式使用 .NET Framework Data Provider for SQL Server,則命令物件會是 SqlCommand)。

下列範例示範如何使用 TableAdapter 或命令物件,執行從資料庫傳回資料列的 SQL 陳述式。如需使用 TableAdapter 和命令查詢的詳細資訊,請參閱填入資料庫和查詢資料概觀

使用 TableAdapter 執行傳回資料列的 SQL 陳述式

此範例會示範如何使用 TableAdapter 查詢組態精靈建立 TableAdapter 查詢,然後會提供如何宣告 TableAdapter 的執行個體及執行查詢的相關資訊。

注意事項:

根據目前使用的設定與版本,您所看到的對話方塊與功能表命令可能會與 [說明] 中所描述的不同。若要變更設定,請從 [工具] 功能表中選擇 [匯入和匯出設定]。如需詳細資訊,請參閱 Visual Studio 設定

若要使用 TableAdapter 建立傳回資料列的 SQL 陳述式

  1. 在 [DataSet 設計工具] 中開啟資料集。如需詳細資訊,請參閱 HOW TO:在 DataSet 設計工具中開啟資料集

  2. 如果您還沒有 TableAdapter,請建立一個。如需建立 TableAdapter 的詳細資訊,請參閱 HOW TO:建立 TableAdapter

  3. 如果有 TableAdapter 查詢使用傳回資料列的 SQL 陳述式,請跳至下一個程序<若要宣告 TableAdapter 的執行個體及執行查詢>。否則,請繼續步驟 4,建立傳回資料列的新查詢。

  4. 以滑鼠右鍵按一下所需的 TableAdapter,並使用快速鍵功能表加入查詢。

    [TableAdapter 查詢組態精靈] 隨即開啟。

  5. 保留 [使用 SQL 陳述式] 的預設值,再按 [下一步]。

  6. 保留 [傳回資料列的 SELECT] 的預設值,再按 [下一步]。

  7. 輸入 SQL 陳述式,或使用 [查詢產生器] 協助您建立,再按 [下一步]。

  8. 提供查詢的名稱。

  9. 完成精靈;查詢即會加入 TableAdapter。

  10. 建置您的專案。

若要宣告 TableAdapter 的執行個體及執行查詢

  1. 宣告 TableAdapter 的執行個體,其中包含您想執行的查詢。

    • 若要使用設計階段工具來建立執行個體,請從 [工具箱] 拖曳您要的 TableAdapter (您專案中的元件便會出現在符合這個專案名稱標題的 [工具箱] 內)。如果 TableAdapter 未出現在 [工具箱] 中,則您可能需要建置專案。

      -或-

    • 若要在程式碼中建立執行個體,請將下列程式碼取代為 DataSet 和 TableAdapter 的名稱。

      Dim tableAdapter As New DataSetTableAdapters.TableAdapter

      注意事項:

      TableAdapter 不是實際位於其關聯的資料集類別之內。每一個資料集在其命名空間中,都會有對應的 TableAdapter 集合。例如,如果您有一個名為 SalesDataSet 的資料集,則會有一個包含其 TableAdapter 的 SalesDataSetTableAdapters 命名空間。

  2. 呼叫查詢時,就像是呼叫程式碼中的任何其他方法一樣。您的查詢是 TableAdapter 上的方法。將下列程式碼取代為 TableAdapter 和查詢的名稱。您也需要傳入查詢所需的任何參數。如果您不確定查詢是否需要參數,或需要什麼參數,請檢查此查詢所需簽章的 IntelliSense。根據查詢是否接受參數而定,程式碼會與下列類似:

    TableAdapter.Query()

    TableAdapter.Query(Parameters)

    TableAdapter.Query(DataTable, Parameters)

  3. 宣告 TableAdapter 的執行個體以及執行查詢的完整程式碼應該與下面類似:

    Dim tableAdapter As New NorthwindDataSetTableAdapters.CustomersTableAdapter()
    tableAdapter.FillByCity(NorthwindDataSet.Customers, "Seattle")
    
    NorthwindDataSetTableAdapters.CustomersTableAdapter tableAdapter = 
        new NorthwindDataSetTableAdapters.CustomersTableAdapter();
    
    tableAdapter.FillByCity(northwindDataSet.Customers, "Seattle");
    

使用命令物件執行傳回資料列的 SQL 陳述式

以下範例示範如何建立命令,以及執行傳回資料列的 SQL 陳述式。如需設定及取得命令之參數值的詳細資訊,請參閱 HOW TO:設定及取得命令物件的參數

此範例使用 SqlCommand 物件,並需要下列項目:

  • SystemSystem.DataSystem.Data.SqlClientSystem.Xml 命名空間的參考。

  • 名稱為 sqlConnection1 的資料連接。

  • 資料來源中 sqlConnection1 所要連接之名為 Customers 的資料表 (否則,資料來源中將需要有效的 SQL 陳述式)。

使用命令物件,以程式設計方式執行傳回資料列的 SQL 陳述式

  • 將下列程式碼加入您想執行程式碼的來源方法中。呼叫命令的 ExecuteReader 方法 (例如,ExecuteReader),傳回資料列。隨即在 SqlDataReader 中傳回資料。如需存取 SqlDataReader 資料的詳細資訊,請參閱使用 DataReader 來擷取資料 (ADO.NET)

    Dim sqlConnection1 As New SqlConnection("Your Connection String")
    Dim cmd As New SqlCommand
    Dim reader As SqlDataReader
    
    cmd.CommandText = "SELECT * FROM Customers"
    cmd.CommandType = CommandType.Text
    cmd.Connection = sqlConnection1
    
    sqlConnection1.Open()
    
    reader = cmd.ExecuteReader()
    ' Data is accessible through the DataReader object here.
    
    sqlConnection1.Close()
    
    SqlConnection sqlConnection1 = new SqlConnection("Your Connection String");
    SqlCommand cmd = new SqlCommand();
    SqlDataReader reader;
    
    cmd.CommandText = "SELECT * FROM Customers";
    cmd.CommandType = CommandType.Text;
    cmd.Connection = sqlConnection1;
    
    sqlConnection1.Open();
    
    reader = cmd.ExecuteReader();
    // Data is accessible through the DataReader object here.
    
    sqlConnection1.Close();
    

安全性

應用程式需要有存取資料庫及執行 SQL 陳述式的權限。

請參閱

工作

HOW TO:建立 TableAdapter 查詢

HOW TO:編輯 TableAdapter 查詢

HOW TO:以資料填入資料集

參考

SqlCommand.ExecuteReader

OleDbCommand.ExecuteReader

OdbcCommand.ExecuteReader

OracleCommand.ExecuteReader