SqlDataSource.SelectCommand Свойство
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает или задает строку SQL, которую элемент SqlDataSource управления использует для получения данных из базовой базы данных.
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 используется для извлечения данных.
Примеры
В этом разделе содержатся два примера кода. В первом примере кода показано, как задать SelectCommand текст базовому SQL-запросу для получения данных из базы данных, совместимой с ODBC, и отображения его в элементе GridView управления. Второй пример кода демонстрирует, как задать SelectCommand текст имени хранимой процедуры и SelectCommandType свойства для StoredProcedure получения данных из базы данных Microsoft SQL Server и отображения его в элементе DropDownList управления.
В обоих примерах не требуется явно Select вызывать метод, так как элементы управления с привязкой к данным, подключенные к элементу управления DataSourceID источником данных, через свойство автоматически вызовут Select метод во время PreRender этапа.
В следующем примере кода показано, как настроить SelectCommand текст на базовый SQL-запрос, чтобы получить данные из базы данных, совместимой с ODBC, и отобразить его в элементе 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>
В следующем примере кода показано, как задать SelectCommand текст имени хранимой процедуры и SelectCommandType свойства значением StoredProcedure для получения данных из базы данных SQL Server и отображения его в элементе DropDownList управления. Это SelectCommand свойство может быть SQL-запросом или именем хранимой процедуры, если источник данных поддерживает хранимые процедуры.
<!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>
Комментарии
Свойство SelectCommand представляет SQL-запрос или имя хранимой процедуры и используется Select методом для получения данных из базы данных SQL Server. Если вы используете звездочку (*) в команде Select для выбора всех столбцов и при использовании автоматического создания кода для выполнения операций обновления или удаления, убедитесь, что в именах столбцов нет пробелов.
Так как разные продукты базы данных используют различные разновидности SQL, синтаксис строки SQL зависит от используемого текущего поставщика ADO.NET, который определяется свойством ProviderName . Если строка SQL является параметризованным запросом или командой, заполнитель параметра также зависит от используемого поставщика ADO.NET. Например, если поставщик является поставщиком, который является System.Data.SqlClientпоставщиком по умолчанию для SqlDataSource класса, заполнитель параметра .'@parameterName' Однако, если поставщик имеет System.Data.Odbc значение или System.Data.OleDbзаполнитель параметра '?'. Дополнительные сведения о параметризованных запросах и командах SQL см. в разделе "Использование параметров" с элементом управления SqlDataSource.
Это SelectCommand свойство может быть строкой SQL или именем хранимой процедуры, если источник данных поддерживает хранимые процедуры.
Свойство SelectCommand делегирует SelectCommand свойству объекта, связанного SqlDataSourceView с элементом SqlDataSource управления.
Это важно
В целях SelectCommand безопасности свойство не хранится в состоянии представления. Так как можно декодировать содержимое состояния представления на клиенте, хранение конфиденциальной информации о структуре базы данных в состоянии представления может привести к уязвимости раскрытия информации.
Это важно
Значения вставляются в параметры без проверки, что является потенциальной угрозой безопасности. Filtering Используйте событие для проверки значений параметров перед выполнением запроса. Дополнительные сведения см. в разделе "Обзор эксплойтов скриптов".