SqlDataSource.SelectCommand Egenskap

Definition

Hämtar eller anger den SQL-sträng som SqlDataSource kontrollen använder för att hämta data från den underliggande databasen.

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

Egenskapsvärde

En SQL-sträng eller namnet på en lagrad procedur som SqlDataSource används för att hämta data.

Exempel

Det här avsnittet innehåller två kodexempel. Det första kodexemplet visar hur du ställer in SelectCommand texten på en grundläggande SQL-fråga för att hämta data från en ODBC-kompatibel databas och visa den i en GridView kontroll. Det andra kodexemplet visar hur du anger SelectCommand text till namnet på en lagrad procedur och egenskapen SelectCommandType till värdet StoredProcedure för att hämta data från en Microsoft SQL Server-databas och visa dem i en DropDownList kontroll.

I båda exemplen finns det inget behov av att uttryckligen Select anropa metoden eftersom de databundna kontroller som är kopplade till datakällans kontroll via DataSourceID egenskapen anropar Select metoden automatiskt under PreRender fasen.

Följande kodexempel visar hur du ställer in SelectCommand texten på en grundläggande SQL-fråga för att hämta data från en ODBC-kompatibel databas och visa den i en GridView kontroll.

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

Följande kodexempel visar hur du anger SelectCommand text till namnet på en lagrad procedur och egenskapen SelectCommandType till värdet StoredProcedure för att hämta data från en SQL Server databas och visa dem i en DropDownList kontroll. Egenskapen SelectCommand kan vara en SQL-fråga eller namnet på en lagrad procedur, om datakällan stöder lagrade procedurer.

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

Kommentarer

Egenskapen SelectCommand representerar en SQL-fråga eller namnet på en lagrad procedur och används av metoden Select för att hämta data från en SQL Server databas. Om du använder en asterisk (*) i kommandot Välj för att markera alla kolumner, och om du använder automatisk kodgenerering för att utföra uppdaterings- eller borttagningsåtgärder, kontrollerar du att inga kolumner har blanksteg i deras namn.

Eftersom olika databasprodukter använder olika sorter av SQL beror syntaxen för SQL-strängen på den aktuella ADO.NET-providern som används, vilket identifieras av egenskapen ProviderName. Om SQL-strängen är en parameteriserad fråga eller ett kommando beror platshållaren för parametern också på vilken ADO.NET-provider som används. Om providern till exempel är System.Data.SqlClient, som är standardprovidern för SqlDataSource klassen, är '@parameterName'parameterns platshållare . Men om providern är inställd på System.Data.Odbc eller System.Data.OleDbär '?'platshållaren för parametern . Mer information om parameteriserade SQL-frågor och -kommandon finns i Använda parametrar med SqlDataSource-kontrollen.

Egenskapen SelectCommand kan vara en SQL-sträng eller namnet på en lagrad procedur, om datakällan stöder lagrade procedurer.

Egenskapen SelectCommand delegerar till SelectCommand egenskapen för objektet SqlDataSourceView som är associerat med SqlDataSource kontrollen.

Important

Av säkerhetsskäl lagras inte egenskapen SelectCommand som visningstillstånd. Eftersom det är möjligt att avkoda innehållet i visningstillståndet på klienten kan lagring av känslig information om databasstrukturen i visningstillstånd leda till en sårbarhet för informationsutlämnande.

Important

Värden infogas i parametrar utan validering, vilket är ett potentiellt säkerhetshot. Filtering Använd händelsen för att verifiera parametervärden innan du kör frågan. Mer information finns i Översikt över skriptexploateringar.

Gäller för

Se även