SqlDataSource.Select(DataSourceSelectArguments) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Извлекает данные из основной базы данных, используя SQL-строку SelectCommand и параметры, содержащиеся в коллекции SelectParameters.
public:
System::Collections::IEnumerable ^ Select(System::Web::UI::DataSourceSelectArguments ^ arguments);
public System.Collections.IEnumerable Select (System.Web.UI.DataSourceSelectArguments arguments);
member this.Select : System.Web.UI.DataSourceSelectArguments -> System.Collections.IEnumerable
Public Function Select (arguments As DataSourceSelectArguments) As IEnumerable
Параметры
- arguments
- DataSourceSelectArguments
Объект DataSourceSelectArguments, который используется для операций запроса данных вне пределов извлечения базовых данных.
Возвращаемое значение
Список строк данных IEnumerable.
Исключения
Объекту SqlDataSource не удается установить подключение к базовому источнику данных.
Примеры
В следующих примерах показано, как программно вызвать Select метод и задать значения на основе результата запроса. В следующем примере показан декларативный код для веб-элементов управления.
<asp:SqlDataSource
ID="SqlDataSource1"
runat="server"
ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
SelectCommand="SELECT Count(*) FROM [Products] WHERE ([ReorderLevel] > 0)">
</asp:SqlDataSource>
<asp:Label
ID="Label1"
runat="server"
Text="">
</asp:Label>
<br />
<asp:Button
ID="Button1"
Text="Check Reorder Status"
runat="server"
onclick="Button1_Click" />
<asp:SqlDataSource
ID="SqlDataSource1"
runat="server"
ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
SelectCommand="SELECT Count(*) FROM [Products] WHERE ([ReorderLevel] > 0)">
</asp:SqlDataSource>
<asp:Label
ID="Label1"
runat="server"
Text="">
</asp:Label>
<br />
<asp:Button
ID="Button1"
Text="Check Reorder Status"
runat="server"
onclick="Button1_Click" />
В следующем примере показано, как вызвать метод программным способом Select . Элемент SqlDataSource управления возвращает целое число. Значение целого числа используется для задания текста Label элемента управления и определения того, следует ли отображать HyperLink элемент управления.
protected void CheckReorderStatus()
{
DataView dv = (DataView)SqlDataSource1.Select(DataSourceSelectArguments.Empty);
int reorderedProducts = (int)dv.Table.Rows[0][0];
if (reorderedProducts > 0)
{
Label1.Text = "Number of products on reorder: " + reorderedProducts;
}
else
{
Label1.Text = "No products on reorder.";
}
}
protected void Button1_Click(object sender, EventArgs e)
{
CheckReorderStatus();
}
Protected Sub CheckReorderStatus()
Dim dv As DataView
Dim reorderedProducts As Integer
dv = CType(SqlDataSource1.Select(DataSourceSelectArguments.Empty), DataView)
reorderedProducts = CType(dv.Table.Rows(0)(0), Integer)
If (reorderedProducts > 0) Then
Label1.Text = "Number of products on reorder: " & reorderedProducts
Else
Label1.Text = "No products on reorder."
End If
End Sub
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs)
CheckReorderStatus()
End Sub
Комментарии
Метод Select автоматически вызывается на PreRender этапе жизненного цикла страницы. Он вызывается элементами управления с привязкой к данным, которые были присоединены к элементу SqlDataSource управления через их DataSourceID свойство.
Метод Select возвращает объект , DataView если свойству DataSourceMode присвоено DataSet значение . Метод Select возвращает объект , IDataReader если свойству DataSourceMode присвоено DataReader значение . Закройте объект, IDataReader когда завершите чтение данных.
Перед выполнением SelectOnSelecting операции вызывается метод для вызова Selecting события . Это событие можно обработать для проверки значений параметров и выполнения любой обработки перед операцией Select .
Select После завершения операции вызывается метод для OnSelected вызова Selected события . Это событие можно обработать для проверки возвращаемых значений и кодов ошибок, а также для выполнения постобработки.
DataSourceMode Если свойство имеет значение SqlDataSourceMode.DataSet и кэширование включено, SqlDataSource объект извлекает данные из и сохраняет их в кэше во время Select операции. Кэш создается, удаляется или обновляется в зависимости от поведения кэширования, заданного CacheDuration сочетанием свойств и CacheExpirationPolicy .
Важно!
При использовании олицетворения клиента в рамках проверки подлинности Microsoft Windows данные кэшируются, когда первый пользователь обращается к данным. Если другой пользователь запрашивает те же данные, данные извлекаются из кэша. Данные не извлекаются путем другого вызова базы данных для проверки доступа пользователя к данным. Если вы ожидаете, что несколько пользователей будут получать доступ к данным и хотите, чтобы каждое извлечение данных проверялось конфигурациями безопасности базы данных, не используйте кэширование.
Если свойству DataSourceMode присвоено значение SqlDataSourceMode.DataSet и FilterExpression свойство задано, выражение фильтра вычисляется с любыми предоставленными FilterParameters свойствами, а полученный фильтр применяется к списку данных во время Select операции.
Метод Select делегирует Select метод объекта , связанного SqlDataSourceView с элементом SqlDataSource управления . Чтобы выполнить операцию извлечения данных, SqlDataSourceView компонент создает DbCommand объект с использованием SelectCommand текста и всех связанных SelectParameters значений, а затем выполняет DbCommand для базовой базы данных.
Важно!
Значения вставляются в параметры без проверки, что является потенциальной угрозой безопасности. Используйте событие для Filtering проверки значений параметров перед выполнением запроса. Дополнительные сведения см. в разделе Общие сведения об использовании сценариев.