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. W pierwszym przykładzie kodu pokazano, jak ustawić SelectCommand tekst na podstawowe zapytanie SQL w celu pobrania danych z bazy danych zgodnej ze standardem 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 microsoft SQL Server i wyświetlić ją w kontrolceDropDownList.

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, aby pobrać dane z bazy danych zgodnej ze standardem ODBC i wyświetlić 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>

Poniższy 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 SQL Server i wyświetlić ją w kontrolceDropDownList. 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 SQL Server. Jeśli używasz gwiazdki (*) w poleceniu Wybierz, aby wybrać wszystkie kolumny, a jeśli do wykonywania operacji aktualizacji lub usuwania używasz automatycznego generowania kodu, upewnij się, że żadne kolumny nie mają spacji w ich nazwach.

Ponieważ różne produkty bazy danych używają różnych odmian języka SQL, składnia ciągu SQL zależy od używanego bieżącego 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 zależy również od używanego dostawcy ADO.NET. Jeśli na przykład dostawca jest dostawcą 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 za pomocą kontrolki 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 zabezpieczających SelectCommand 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 ujawniania informacji.

Ważne

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

Dotyczy

Zobacz też