SqlDataSource.SelectCommand Свойство

Определение

Возвращает или задает SQL-строку, используемую элементом управления SqlDataSource для извлечения данных из основной базы данных.Gets or sets the SQL string that the SqlDataSource control uses to retrieve data from the underlying database.

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

Значение свойства

SQL-строка или имя хранимой процедуры, используемые элементом управления SqlDataSource для извлечения данных.An SQL string or the name of a stored procedure that the SqlDataSource uses to retrieve data.

Примеры

Этот раздел содержит два примера кода.This section contains two code examples. В первом примере кода показано, как задать SelectCommand для текста базовый SQL-запрос для получения данных из базы данных, совместимой с ODBC, и отобразить их GridView в элементе управления.The first code example demonstrates how to set the SelectCommand text to a basic SQL query to retrieve data from an ODBC-compliant database and display it in a GridView control. Во втором примере кода показано SelectCommand , как задать для текста имя хранимой процедуры SelectCommandType , а свойству StoredProcedure — значение, чтобы получить данные из Microsoft SQL Server базы данных и отобразить их в DropDownList элементе управления.The second code example demonstrates how to set the SelectCommand text to the name of a stored procedure and the SelectCommandType property to the StoredProcedure value to retrieve data from a Microsoft SQL Server database and display it in a DropDownList control.

В обоих примерах нет необходимости в явном вызове Select метода, так как привязанные к данным элементы управления, присоединенные к элементу управления источника данных DataSourceID через Select свойство, будут автоматически вызывать метод во время PreRender этап.In both examples, there is no need to explicitly call the Select method because the data-bound controls that are attached to the data source control through the DataSourceID property will automatically call the Select method during the PreRender phase.

В следующем примере кода показано, как задать SelectCommand для текста базовый SQL-запрос для получения данных из базы данных, совместимой с ODBC, и отобразить их GridView в элементе управления.The following code example demonstrates how to set the SelectCommand text to a basic SQL query to retrieve data from an ODBC-compliant database and display it in a GridView control.

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

В следующем примере кода показано SelectCommand , как задать для текста имя хранимой процедуры SelectCommandType , а свойству StoredProcedure — значение, чтобы получить данные из SQL Server базы данных и отобразить их в DropDownList элементе управления.The following code example demonstrates how to set the SelectCommand text to the name of a stored procedure and the SelectCommandType property to the StoredProcedure value to retrieve data from a SQL Server database and display it in a DropDownList control. SelectCommand Свойство может быть SQL-запросом или именем хранимой процедуры, если источник данных поддерживает хранимые процедуры.The SelectCommand property can be an SQL query or the name of a stored procedure, if the data source supports stored procedures.

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

Комментарии

Свойство представляет SQL-запрос или имя хранимой процедуры и используется Select методом для получения данных из базы данных SQL Server. SelectCommandThe SelectCommand property represents an SQL query or the name of a stored procedure, and is used by the Select method to retrieve data from a SQL Server database. При использовании звездочки (*) в команде Select для выбора всех столбцов и при использовании автоматического создания кода для выполнения операций обновления или удаления убедитесь, что в именах столбцов нет пробелов.If you use an asterisk (*) in the Select command to select all columns, and if you use automatic code generation to perform update or delete operations, make sure that no columns have spaces in their names.

Различные системы баз данных используют различные диалекты SQL, поэтому синтаксис строки SQL зависит от используемого в данный момент поставщика ADO.NET, который определяется свойством ProviderName.Because different database products use different varieties of SQL, the syntax of the SQL string depends on the current ADO.NET provider being used, which is identified by the ProviderName property. Если строка SQL представляет собой параметризованный запрос или команду, заполнитель параметра также зависит от используемого поставщика ADO.NET.If the SQL string is a parameterized query or command, the placeholder of the parameter also depends on the ADO.NET provider being used. Например, если поставщик является System.Data.SqlClientпоставщиком по умолчанию SqlDataSource для класса, заполнитель параметра имеет '@parameterName'значение.For example, if the provider is the System.Data.SqlClient, which is the default provider for the SqlDataSource class, the placeholder of the parameter is '@parameterName'. Однако если поставщику задано System.Data.Odbc значение или System.Data.OleDb, заполнитель параметра имеет '?'значение.However, if the provider is set to the System.Data.Odbc or System.Data.OleDb, the placeholder of the parameter is '?'. Дополнительные сведения о параметризованных запросах SQL и командах см. в разделе Использование параметров с элементом управления SqlDataSource.For more information about parameterized SQL queries and commands, see Using Parameters with the SqlDataSource Control.

SelectCommand Свойство может быть строкой SQL или именем хранимой процедуры, если источник данных поддерживает хранимые процедуры.The SelectCommand property can be an SQL string or the name of a stored procedure, if the data source supports stored procedures.

Свойство делегирует SelectCommand SqlDataSource свойство SqlDataSourceView объекта, связанного с элементом управления. SelectCommandThe SelectCommand property delegates to the SelectCommand property of the SqlDataSourceView object that is associated with the SqlDataSource control.

Важно!

В целях безопасности свойство не SelectCommand хранится в состоянии представления.For security purposes, the SelectCommand property is not stored is view state. Так как можно декодировать содержимое состояния представления на клиенте, хранение конфиденциальной информации о структуре базы данных в состоянии представления может привести к уязвимости раскрытия информации.Because it is possible to decode the contents of view state on the client, storing sensitive information about the database structure in view state could result in an information disclosure vulnerability.

Важно!

Значения вставляются в параметры без проверки, что является потенциальной угрозой безопасности.Values are inserted into parameters without validation, which is a potential security threat. Filtering Используйте событие для проверки значений параметров перед выполнением запроса.Use the Filtering event to validate parameter values before executing the query. Дополнительные сведения см. в разделе Общие сведения об использовании сценариев.For more information, see Script Exploits Overview.

Применяется к

Дополнительно