Partager via


SqlDataSource.SelectCommand Propriété

Définition

Obtient ou définit la chaîne SQL que le contrôle SqlDataSource utilise pour récupérer des données de la base de données sous-jacente.

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

Valeur de propriété

Chaîne SQL ou nom d'une procédure stockée que SqlDataSource utilise pour récupérer des données.

Exemples

Cette section contient deux exemples de code. Le premier exemple de code montre comment définir le SelectCommand texte sur une requête SQL de base pour récupérer des données à partir d’une base de données compatible ODBC et les afficher dans un GridView contrôle. Le deuxième exemple de code montre comment définir le SelectCommand texte sur le nom d’une procédure stockée et la SelectCommandType propriété sur la StoredProcedure valeur pour récupérer des données d’une base de données Microsoft SQL Server et les afficher dans un DropDownList contrôle.

Dans les deux exemples, il n’est pas nécessaire d’appeler explicitement la Select méthode, car les contrôles liés aux données qui sont attachés au contrôle de source de données via la DataSourceID propriété appellent automatiquement la Select méthode pendant la PreRender phase.

L’exemple de code suivant montre comment définir le SelectCommand texte sur une requête SQL de base pour récupérer des données à partir d’une base de données compatible ODBC et les afficher dans un GridView contrôle.

<!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>
    <!-- This example uses a Northwind database that is hosted by an ODBC-compliant
         database. To run this sample, create an ODBC DSN to any database that hosts
         the Northwind database, including Microsoft SQL Server or Microsoft Access,
         change the name of the DSN in the ConnectionString, and view the page.
    -->

    <form id="form1" runat="server">

      <asp:SqlDataSource
          id="SqlDataSource1"
          runat="server"
          ProviderName="System.Data.Odbc"
          DataSourceMode="DataSet"
          ConnectionString="dsn=myodbc3dsn;"
          SelectCommand="SELECT FirstName, LastName, Title FROM Employees">
      </asp:SqlDataSource>

      <asp:GridView
          id="GridView1"
          runat="server"
          AllowSorting="True"
          DataSourceID="SqlDataSource1">
      </asp:GridView>

    </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">

<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>ASP.NET Example</title>
</head>
<body>
    <!-- This example uses a Northwind database that is hosted by an ODBC-compliant
         database. To run this sample, create an ODBC DSN to any database that hosts
         the Northwind database, including Microsoft SQL Server or Microsoft Access,
         change the name of the DSN in the ConnectionString, and view the page.
    -->
    <form id="form1" runat="server">

      <asp:SqlDataSource
          id="SqlDataSource1"
          runat="server"
          ProviderName="System.Data.Odbc"
          DataSourceMode="DataSet"
          ConnectionString="dsn=myodbc3dsn;"
          SelectCommand="SELECT FirstName, LastName, Title FROM Employees">
      </asp:SqlDataSource>

      <asp:GridView
          id="GridView1"
          runat="server"
          AllowSorting="True"
          DataSourceID="SqlDataSource1">
      </asp:GridView>

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

L’exemple de code suivant montre comment définir le SelectCommand texte sur le nom d’une procédure stockée et la SelectCommandType propriété sur la StoredProcedure valeur pour récupérer des données d’une base de données SQL Server et les afficher dans un DropDownList contrôle. La SelectCommand propriété peut être une requête SQL ou le nom d’une procédure stockée, si la source de données prend en charge les procédures stockées.

<!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>

Remarques

La SelectCommand propriété représente une requête SQL ou le nom d’une procédure stockée et est utilisée par la Select méthode pour récupérer des données d’une base de données SQL Server. Si vous utilisez un astérisque (*) dans la commande Sélectionner pour sélectionner toutes les colonnes, et si vous utilisez la génération automatique de code pour effectuer des opérations de mise à jour ou de suppression, assurez-vous qu’aucune colonne n’a d’espaces dans son nom.

Dans la mesure où plusieurs produits de base de données utilisent des variétés différentes de SQL, la syntaxe de la chaîne SQL dépend du fournisseur ADO.NET actuellement utilisé, identifié par la propriété ProviderName. Si la chaîne SQL est une requête ou une commande paramétrée, l'espace réservé du paramètre dépend également du fournisseur ADO.NET utilisé. Par exemple, si le fournisseur est , System.Data.SqlClientqui est le fournisseur par défaut pour la SqlDataSource classe, l’espace réservé du paramètre est '@parameterName'. Toutefois, si le fournisseur est défini sur System.Data.Odbc ou System.Data.OleDb, l’espace réservé du paramètre est '?'. Pour plus d’informations sur les requêtes et commandes SQL paramétrables, consultez Utilisation de paramètres avec le contrôle SqlDataSource.

La SelectCommand propriété peut être une chaîne SQL ou le nom d’une procédure stockée, si la source de données prend en charge les procédures stockées.

La SelectCommand propriété délègue à la SelectCommand propriété de l’objet SqlDataSourceView associé au SqlDataSource contrôle.

Important

À des fins de sécurité, la SelectCommand propriété n’est pas stockée avec l’état d’affichage. Étant donné qu’il est possible de décoder le contenu de l’état d’affichage sur le client, le stockage d’informations sensibles sur la structure de la base de données dans l’état d’affichage peut entraîner une vulnérabilité de divulgation d’informations.

Important

Les valeurs sont insérées dans des paramètres sans validation, ce qui constitue une menace potentielle pour la sécurité. Utilisez l’événement Filtering pour valider les valeurs de paramètre avant d’exécuter la requête. Pour plus d’informations, consultez Vue d’ensemble des attaques de script.

S’applique à

Voir aussi