SqlDataSourceView.SelectCommand プロパティ

定義

基になるデータベースからデータを取得するために SqlDataSourceView オブジェクトが使用する SQL 文字列を取得または設定します。Gets or sets the SQL string that the SqlDataSourceView object uses to retrieve data from the underlying database.

public:
 property System::String ^ SelectCommand { System::String ^ get(); void set(System::String ^ value); };
public string SelectCommand { get; set; }
member this.SelectCommand : string with get, set
Public Property SelectCommand As String

プロパティ値

String

データを取得するために SqlDataSourceView が使用する SQL 文字列。An SQL string that the SqlDataSourceView uses to retrieve data.

このセクションには、2 つのコード例が含まれています。This section contains two code examples. 最初のコード例では、テキストを SelectCommand 基本的な SQL クエリに設定し、Microsoft SQL Server データベースからデータを取得して、コントロールに表示する方法を示し DropDownList ます。The first code example demonstrates how to set the SelectCommand text to a basic SQL query to retrieve data from a Microsoft SQL Server database and display it in a DropDownList control. 2番目のコード例では、 SelectCommand SQL Server データベースからデータを取得してに表示するストアドプロシージャの名前にテキストを設定する方法を示し DropDownList ます。The second code example demonstrates how to set the SelectCommand text to the name of a stored procedure to retrieve data from a SQL Server database and display it in a DropDownList.

次のコード例では、テキストを SelectCommand 基本的な SQL クエリに設定し、SQL Server データベースからデータを取得して、コントロールに表示する方法を示し DropDownList ます。The following code example demonstrates how to set the SelectCommand text to a basic SQL query to retrieve data from a SQL Server database and display it in a DropDownList control. Buttonおよび TextBox コントロールは、で選択したユーザーのアドレスを更新するための単純なインターフェイスとして提供され DropDownList ます。The Button and TextBox controls are provided as a simple interface to update the address for the selected user in the DropDownList.

<%@Page  Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">
 private void On_Click(Object source, EventArgs e) {
    try {
        SqlDataSource1.Update();
    }
    catch (Exception except) {
        // Handle the Exception.
    }

    Label2.Text="The record was updated successfully!";
 }
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>ASP.NET Example</title>
</head>
<body>
    <form id="form1" runat="server">
      <asp:SqlDataSource
          id="SqlDataSource1"
          runat="server"
          ConnectionString="<%$ ConnectionStrings:MyNorthwind%>"
          SelectCommand="SELECT EmployeeID, LastName, Address FROM Employees"
          UpdateCommand="UPDATE Employees SET Address=@Address WHERE EmployeeID=@EmployeeID">
          <UpdateParameters>
              <asp:ControlParameter Name="Address" ControlId="TextBox1" PropertyName="Text"/>
              <asp:ControlParameter Name="EmployeeID" ControlId="DropDownList1" PropertyName="SelectedValue"/>
          </UpdateParameters>
      </asp:SqlDataSource>

      <asp:DropDownList
          id="DropDownList1"
          runat="server"
          DataTextField="LastName"
          DataValueField="EmployeeID"
          DataSourceID="SqlDataSource1">
      </asp:DropDownList>

      <br />
      <asp:Label id="Label1" runat="server" Text="Enter a new address for the selected user."
        AssociatedControlID="TextBox1" />
      <asp:TextBox id="TextBox1" runat="server" />
      <asp:Button id="Submit" runat="server" Text="Submit" OnClick="On_Click" />

      <br /><asp:Label id="Label2" runat="server" Text="" />

    </form>
  </body>
</html>
<%@Page  Language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">

 Sub On_Click(ByVal source As Object, ByVal e As EventArgs)
    Try
        SqlDataSource1.Update()
    Catch except As Exception
        ' Handle the Exception.
    End Try

    Label2.Text="The record was updated successfully!"

 End Sub 'On_Click
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>ASP.NET Example</title>
</head>
<body>
    <form id="form1" runat="server">
      <asp:SqlDataSource
          id="SqlDataSource1"
          runat="server"
          ConnectionString="<%$ ConnectionStrings:MyNorthwind%>"
          SelectCommand="SELECT EmployeeID, LastName, Address FROM Employees"
          UpdateCommand="UPDATE Employees SET Address=@Address WHERE EmployeeID=@EmployeeID">
          <UpdateParameters>
              <asp:ControlParameter Name="Address" ControlId="TextBox1" PropertyName="Text"/>
              <asp:ControlParameter Name="EmployeeID" ControlId="DropDownList1" PropertyName="SelectedValue"/>
          </UpdateParameters>
      </asp:SqlDataSource>

      <asp:DropDownList
          id="DropDownList1"
          runat="server"
          DataTextField="LastName"
          DataValueField="EmployeeID"
          DataSourceID="SqlDataSource1">
      </asp:DropDownList>

      <br />
      <asp:Label id="Label1" runat="server" Text="Enter a new address for the selected user."
        AssociatedControlID="TextBox1" />
      <asp:TextBox id="TextBox1" runat="server" />
      <asp:Button id="Submit" runat="server" Text="Submit" OnClick="On_Click" />

      <br /><asp:Label id="Label2" runat="server" Text="" />
    </form>
  </body>
</html>

次のコード例では、テキストを SelectCommand ストアドプロシージャの名前に設定し、SQL Server データベースからデータを取得して、コントロールに表示する方法を示し DropDownList ます。The following code example demonstrates how to set the SelectCommand text to the name of a stored procedure to retrieve data from a SQL Server database and display it in a DropDownList control. SelectCommandデータソースがストアドプロシージャをサポートしている場合は、プロパティに SQL クエリまたはストアドプロシージャの名前を指定できます。The SelectCommand property can be an SQL query or the name of a stored procedure, if the data source supports stored procedures.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
    <title>ASP.NET Example</title>
</head>
<body>
        <form id="form1" runat="server">

            <asp:DropDownList
                id="DropDownList1"
                runat="server"
                DataTextField="LastName"
                DataSourceID="SqlDataSource1" />

            <asp:SqlDataSource
                id="SqlDataSource1"
                runat="server"
                ConnectionString="<%$ ConnectionStrings:MyNorthwind%>"
                SelectCommandType="StoredProcedure"                
                SelectCommand="sp_lastnames">
            </asp:SqlDataSource>

            <!--
                The sp_lastnames stored procedure is
                CREATE PROCEDURE sp_lastnames AS
                   SELECT LastName FROM Employees
                GO
            -->

        </form>
    </body>
</html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
    <title>ASP.NET Example</title>
</head>
<body>
        <form id="form1" runat="server">

            <asp:DropDownList
                id="DropDownList1"
                runat="server"
                DataTextField="LastName"
                DataSourceID="SqlDataSource1" />

            <asp:SqlDataSource
                id="SqlDataSource1"
                runat="server"
                ConnectionString="<%$ ConnectionStrings:MyNorthwind%>"
                SelectCommandType = "StoredProcedure"
                SelectCommand="sp_lastnames">
            </asp:SqlDataSource>

            <!--
                The sp_lastnames stored procedure is
                CREATE PROCEDURE sp_lastnames AS
                   SELECT LastName FROM Employees
                GO
            -->

        </form>
    </body>
</html>

注釈

データベース製品ごとに使用する SQL が異なるため、SQL 文字列の構文は、現在使用している ADO.NET プロバイダーによって決まります。これは、ProviderName プロパティから識別できます。Because different database products use different varieties of SQL, the syntax of the SQL string depends on the current ADO.NET provider being used, which is identified by the ProviderName property. SQL 文字列がパラメーター化されたクエリまたはコメントである場合は、パラメーターのプレースホルダーも現在使用している ADO.NET プロバイダーによって決まります。If the SQL string is a parameterized query or command, the placeholder of the parameter also depends on the ADO.NET provider being used. たとえば、プロバイダーが (クラスの既定のプロバイダー) である場合、 System.Data.SqlClient SqlDataSource パラメーターのプレースホルダーはに '@parameterName' なります。For example, if the provider is the System.Data.SqlClient, which is the default provider for the SqlDataSource class, the placeholder of the parameter is '@parameterName'. ただし、プロバイダーがまたはに設定されている場合、 System.Data.Odbc System.Data.OleDb パラメーターのプレースホルダーはに '?' なります。However, if the provider is set to the System.Data.Odbc or System.Data.OleDb, the placeholder of the parameter is '?'. パラメーター化された SQL クエリとコマンドの詳細については、「 SqlDataSource コントロールでのパラメーターの使用」を参照してください。For more information on parameterized SQL queries and commands, see Using Parameters with the SqlDataSource Control.

SelectCommandデータソースがストアドプロシージャをサポートしている場合は、プロパティに SQL 文字列またはストアドプロシージャの名前を指定できます。The SelectCommand property can be an SQL string or the name of a stored procedure, if the data source supports stored procedures.

重要

ストアドプロシージャを使用する方が、プロパティの SQL ステートメントよりも安全です SelectCommandIt is more secure to use a stored procedure than a SQL statement for the SelectCommand property.

プロパティの値 SelectCommand は、ビューステートに格納されます。The value of the SelectCommand property is stored in view state.

適用対象

こちらもご覧ください