Udostępnij za pośrednictwem


SqlDataSource.SelectCommand Właściwość

Definicja

Pobiera lub ustawia ciąg SQL używany SqlDataSource przez kontrolkę do pobierania danych z bazowej bazy danych.

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

Wartość właściwości

Ciąg SQL lub nazwa procedury składowanej używanej SqlDataSource do pobierania danych.

Przykłady

Ten rozdział zawiera dwa przykłady kodu. Pierwszy przykład kodu pokazuje, jak ustawić SelectCommand tekst na podstawowe zapytanie SQL w celu pobrania danych z bazy danych zgodnej z ODBC i wyświetlenia go w kontrolce GridView . Drugi przykład kodu pokazuje, jak ustawić SelectCommand tekst na nazwę procedury składowanej i SelectCommandType właściwość na StoredProcedure wartość, aby pobrać dane z bazy danych programu Microsoft SQL Server i wyświetlić go w kontrolce DropDownList .

W obu przykładach nie ma potrzeby jawnego wywoływania Select metody, ponieważ kontrolki powiązane z danymi dołączone do kontrolki źródła danych za pośrednictwem DataSourceID właściwości automatycznie wywołają Select metodę w PreRender fazie.

W poniższym przykładzie kodu pokazano, jak ustawić SelectCommand tekst na podstawowe zapytanie SQL w celu pobrania danych z bazy danych zgodnej z ODBC i wyświetlenia go w kontrolce 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>

W poniższym przykładzie kodu pokazano, jak ustawić SelectCommand tekst na nazwę procedury składowanej i SelectCommandType właściwość na StoredProcedure wartość, aby pobrać dane z bazy danych programu SQL Server i wyświetlić go w kontrolce DropDownList . Właściwość SelectCommand może być zapytaniem SQL lub nazwą procedury składowanej, jeśli źródło danych obsługuje procedury składowane.

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

Uwagi

Właściwość SelectCommand reprezentuje zapytanie SQL lub nazwę procedury składowanej i jest używana przez Select metodę do pobierania danych z bazy danych programu SQL Server. Jeśli używasz gwiazdki (*) w poleceniu Select, aby wybrać wszystkie kolumny, a jeśli używasz automatycznego generowania kodu do wykonywania operacji aktualizacji lub usuwania, upewnij się, że żadne kolumny nie mają spacji w nazwach.

Ponieważ różne produkty bazy danych używają różnych odmian języka SQL, składnia ciągu SQL zależy od aktualnie używanego dostawcy ADO.NET, który jest identyfikowany przez ProviderName właściwość . Jeśli ciąg SQL jest sparametryzowanym zapytaniem lub poleceniem, symbol zastępczy parametru również zależy od używanego dostawcy ADO.NET. Jeśli na przykład dostawca to System.Data.SqlClient, który jest domyślnym dostawcą klasy SqlDataSource , symbol zastępczy parametru to '@parameterName'. Jeśli jednak dostawca jest ustawiony na System.Data.Odbc wartość lub System.Data.OleDb, symbol zastępczy parametru to '?'. Aby uzyskać więcej informacji na temat sparametryzowanych zapytań SQL i poleceń, zobacz Using Parameters with the SqlDataSource Control (Używanie parametrów z kontrolką SqlDataSource).

Właściwość SelectCommand może być ciągiem SQL lub nazwą procedury składowanej, jeśli źródło danych obsługuje procedury składowane.

Właściwość SelectCommand deleguje do SelectCommand właściwości obiektu skojarzonego SqlDataSourceView z kontrolką SqlDataSource .

Ważne

W celach SelectCommand bezpieczeństwa właściwość nie jest przechowywana w stanie widoku. Ponieważ istnieje możliwość dekodowania zawartości stanu widoku na kliencie, przechowywanie poufnych informacji o strukturze bazy danych w stanie widoku może spowodować lukę w zabezpieczeniach umożliwiającą ujawnienie informacji.

Ważne

Wartości są wstawiane do parametrów bez walidacji, co jest potencjalnym zagrożeniem bezpieczeństwa. Użyj zdarzenia, Filtering aby zweryfikować wartości parametrów przed wykonaniem zapytania. Aby uzyskać więcej informacji, zobacz Script Exploits Overview (Omówienie luk w zabezpieczeniach skryptów).

Dotyczy

Zobacz też