Sdílet prostřednictvím


SqlDataSource.SelectCommand Vlastnost

Definice

Získá nebo nastaví řetězec SQL, který SqlDataSource ovládací prvek používá k načtení dat z podkladové databáze.

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

Hodnota vlastnosti

Řetězec SQL nebo název uložené procedury, která SqlDataSource se používá k načtení dat.

Příklady

Tato část obsahuje dva příklady kódu. První příklad kódu ukazuje, jak nastavit SelectCommand text na základní dotaz SQL k načtení dat z databáze kompatibilní rozhraní ODBC a jejich zobrazení v ovládacím prvku GridView . Druhý příklad kódu ukazuje, jak nastavit SelectCommand text na název uložené procedury a SelectCommandType vlastnost na StoredProcedure hodnotu pro načtení dat z databáze Microsoft SQL Server a jejich zobrazení v ovládacím prvku DropDownList .

V obou příkladech není nutné explicitně volat metodu Select , protože ovládací prvky vázané na data, které jsou připojeny k ovládacímu prvku zdroje dat prostřednictvím DataSourceID vlastnosti, automaticky volají metodu Select během PreRender fáze.

Následující příklad kódu ukazuje, jak nastavit SelectCommand text na základní dotaz SQL načíst data z databáze kompatibilní rozhraní ODBC a zobrazit je v ovládacím prvku GridView .

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

Následující příklad kódu ukazuje, jak nastavit SelectCommand text na název uložené procedury a SelectCommandType vlastnost na StoredProcedure hodnotu pro načtení dat z databáze SYSTÉMU SQL Server a jejich zobrazení v ovládacím DropDownList prvku. Vlastnost SelectCommand může být dotaz SQL nebo název uložené procedury, pokud zdroj dat podporuje uložené procedury.

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

Poznámky

Vlastnost SelectCommand představuje dotaz SQL nebo název uložené procedury a používá Select ji metoda k načtení dat z databáze SYSTÉMU SQL Server. Pokud v příkazu Vybrat použijete hvězdičku (*) k výběru všech sloupců a pokud k provádění operací aktualizace nebo odstranění použijete automatické generování kódu, ujistěte se, že žádné sloupce nemají v názvech mezery.

Vzhledem k tomu, že různé databázové produkty používají různé druhy SQL, syntaxe řetězce SQL závisí na aktuálním použitém poskytovateli ADO.NET, který je identifikován ProviderName vlastností . Pokud je řetězec SQL parametrizovaný dotaz nebo příkaz, zástupný symbol parametru závisí také na použitém zprostředkovateli ADO.NET. Pokud je například zprostředkovatel , což je System.Data.SqlClientvýchozí zprostředkovatel pro SqlDataSource třídu, zástupný symbol parametru je '@parameterName'. Pokud je však zprostředkovatel nastavený na System.Data.Odbc nebo System.Data.OleDb, zástupný symbol parametru je '?'. Další informace o parametrizovaných dotazech a příkazech SQL najdete v tématu Použití parametrů s ovládacím prvku SqlDataSource.

Vlastnost SelectCommand může být řetězec SQL nebo název uložené procedury, pokud zdroj dat podporuje uložené procedury.

Vlastnost SelectCommand je delegovaná na SelectCommand vlastnost objektu SqlDataSourceView , který je přidružen k ovládacímu prvku SqlDataSource .

Důležité

Z bezpečnostních důvodů SelectCommand není vlastnost uložena jako stav zobrazení. Vzhledem k tomu, že je možné dekódovat obsah stavu zobrazení v klientovi, může uložení citlivých informací o struktuře databáze ve stavu zobrazení vést k ohrožení zabezpečení spočívající ve zpřístupnění informací.

Důležité

Hodnoty se do parametrů vkládají bez ověření, což je potenciální ohrožení zabezpečení. Filtering Pomocí události ověřte hodnoty parametrů před spuštěním dotazu. Další informace najdete v tématu Přehled zneužití skriptů.

Platí pro

Viz také