Поделиться через


ParameterCollection Класс

Определение

Представляет коллекцию и Parameterпроизводные Parameter объекты, используемые элементами управления источниками данных в расширенных сценариях привязки данных.

public ref class ParameterCollection : System::Web::UI::StateManagedCollection
public class ParameterCollection : System.Web.UI.StateManagedCollection
type ParameterCollection = class
    inherit StateManagedCollection
Public Class ParameterCollection
Inherits StateManagedCollection
Наследование
ParameterCollection

Примеры

В следующем примере кода показано, как использовать AccessDataSource элемент управления и FormParameter отображение сведений из базы данных Microsoft Access в элементе GridView управления. Объект FormParameter добавляется в коллекцию SelectParametersAdd с помощью метода.

Это важно

В этом примере есть текстовое поле, которое принимает входные данные пользователя, которое является потенциальной угрозой безопасности. По умолчанию ASP.NET веб-страницы проверяют, что входные данные пользователя не включают скрипт или ЭЛЕМЕНТЫ HTML. Дополнительные сведения см. в разделе "Обзор эксплойтов скриптов".

<%@Page  Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">

void Page_Load(Object sender, EventArgs e){

  // You can add a FormParameter to the AccessDataSource control's
  // SelectParameters collection programmatically.
  AccessDataSource1.SelectParameters.Clear();

  // Security Note: The AccessDataSource uses a FormParameter,
  // Security Note: which does not perform validation of input from the client.
  // Security Note: To validate the value of the FormParameter,
  // Security Note: handle the Selecting event.

  FormParameter formParam = new FormParameter("lastname","LastNameBox");
  formParam.Type=TypeCode.String;
  AccessDataSource1.SelectParameters.Add(formParam);
}

</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>ASP.NET Example</title>
</head>
<body>
    <form id="form1" runat="server">

      <asp:accessdatasource
          id="AccessDataSource1"
          runat="server"
          datasourcemode="DataSet"
          datafile="Northwind.mdb"
          selectcommand="SELECT OrderID,CustomerID,OrderDate,RequiredDate,ShippedDate
                         FROM Orders WHERE EmployeeID =
                         (SELECT EmployeeID FROM Employees WHERE LastName = @lastname)">
      </asp:accessdatasource>

      <br />Enter the name "Davolio" or "King" in the text box and click the button.

      <br />
      <asp:textbox
        id="LastNameBox"
        runat="server" />

      <br />
      <asp:button
        id="Button1"
        runat="server"
        text="Get Records" />

      <br />
      <asp:gridview
          id="GridView1"
          runat="server"
          allowsorting="True"
          datasourceid="AccessDataSource1">
      </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">

<script runat="server">

Private Sub Page_Load(sender As Object, e As EventArgs)

  ' You can add a FormParameter to the AccessDataSource control's
  ' SelectParameters collection programmatically.
  AccessDataSource1.SelectParameters.Clear()

  ' Security Note: The AccessDataSource uses a FormParameter,
  ' Security Note: which does not perform validation of input from the client.
  ' Security Note: To validate the value of the FormParameter,
  ' Security Note: handle the Selecting event.

  Dim formParam As New FormParameter("lastname","LastNameBox")
  formParam.Type=TypeCode.String
  AccessDataSource1.SelectParameters.Add(formParam)
End Sub ' Page_Load

</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>ASP.NET Example</title>
</head>
<body>
    <form id="form1" runat="server">

      <asp:accessdatasource
          id="AccessDataSource1"
          runat="server"
          datasourcemode="DataSet"
          datafile="Northwind.mdb"
          selectcommand="SELECT OrderID,CustomerID,OrderDate,RequiredDate,ShippedDate
                         FROM Orders WHERE EmployeeID =
                         (SELECT EmployeeID FROM Employees WHERE LastName = @lastname)">
      </asp:accessdatasource>

      <br />Enter the name "Davolio" or "King" in the text box and click the button.

      <br />
      <asp:textbox
        id="LastNameBox"
        runat="server" />

      <br />
      <asp:button
        id="Button1"
        runat="server"
        text="Get Records" />

      <br />
      <asp:gridview
          id="GridView1"
          runat="server"
          allowsorting="True"
          datasourceid="AccessDataSource1">
      </asp:gridview>

    </form>
  </body>
</html>

Комментарии

Класс ParameterCollection представляет коллекцию объектов, используемых в расширенных сценариях привязки Parameter данных с элементами управления источниками данных. Объекты Parameter используются для привязки значений, содержащихся в локальных Page переменных, HTTP-файлах cookie, переменных сеанса и других элементах управления, к элементам управления источниками данных при получении, обновлении, удалении и вставке данных.

ParameterCollection Используйте класс для программного управления набором Parameter объектов. Можно добавлять, вставлять и удалять Parameter объекты с помощью соответствующих методов ParameterCollection класса. Чтобы программным способом извлечь Parameter объекты из коллекции, используйте один из следующих методов:

  • Используйте индексатор для получения одного Parameter объекта из коллекции по имени или с использованием нотации массива.

  • GetEnumerator Используйте метод для создания System.Collections.IEnumeratorобъекта-реализации, который затем можно использовать для получения элементов из коллекции.

Свойство Count указывает общее количество элементов в коллекции и используется для определения верхней границы коллекции. Вы можете добавлять и удалять элементы из коллекции с помощью Addметодов , InsertRemoveа также методов.RemoveAt

В зависимости от реализации и семантики определенного элемента управления источниками данных порядок хранения параметров в ParameterCollection коллекции может быть важным. Например, при использовании SqlDataSource элемента управления в качестве источника данных ODBC порядок объектов в ParameterCollection коллекции должен совпадать с порядком Parameter параметров в параметризованных запросах SQL. Однако при использовании SqlDataSource элемента управления с Microsoft SQL Server порядок Parameter объектов не важен.

Это важно

При использовании элементов управления источниками данных значения вставляются в параметры команд без проверки, что является потенциальной угрозой безопасности. Используйте событие в элементе управления источниками данных для проверки значений параметров перед выполнением команды. Дополнительные сведения см. в разделе "Обзор эксплойтов скриптов".

В следующей таблице перечислены различные классы параметров и их использование.

Класс параметров Описание
Parameter Базовый класс параметров. Используйте его для привязки к локальной переменной или любой статической строке DefaultValue с помощью свойства.
ControlParameter Параметр, который можно использовать для привязки к свойству или возвращаемого значения метода элемента управления.
CookieParameter Параметр, который можно использовать для привязки к значению файла cookie.
FormParameter Параметр, который можно использовать для привязки к атрибуту текущей страницы веб-форм.
QueryStringParameter Параметр, который можно использовать для привязки к значению, переданному на страницу веб-форм в строке запроса.
SessionParameter Параметр, который можно использовать для привязки к значению переменной сеанса.
ProfileParameter Параметр, который можно использовать для привязки к значению свойства ASP.NET Profile.

Конструкторы

Имя Описание
ParameterCollection()

Инициализирует класс для использования наследуемым экземпляром класса. Этот конструктор может вызываться только унаследованным классом.

Свойства

Имя Описание
Count

Возвращает количество элементов, содержащихся в StateManagedCollection коллекции.

(Унаследовано от StateManagedCollection)
Item[Int32]

Возвращает или задает Parameter объект по указанному индексу в коллекции.

Item[String]

Возвращает или задает Parameter объект с указанным именем в коллекции.

Методы

Имя Описание
Add(Parameter)

Добавляет указанный Parameter объект в конец коллекции.

Add(String, DbType, String)

Parameter Создает объект с указанным именем, типом базы данных и значением по умолчанию и добавляет его в конец коллекции.

Add(String, String)

Parameter Создает объект с указанным именем и значением по умолчанию и добавляет его в конец коллекции.

Add(String, TypeCode, String)

Parameter Создает объект с указанным именем и TypeCodeзначением по умолчанию и добавляет его в конец коллекции.

Clear()

Удаляет все элементы из StateManagedCollection коллекции.

(Унаследовано от StateManagedCollection)
Contains(Parameter)

Определяет, содержит ли ParameterCollection коллекция определенное значение.

CopyTo(Array, Int32)

Копирует элементы StateManagedCollection коллекции в массив, начиная с определенного индекса массива.

(Унаследовано от StateManagedCollection)
CopyTo(Parameter[], Int32)

Копирует указанный индекс массива параметров в коллекцию параметров.

CreateKnownType(Int32)

Создает экземпляр объекта по умолчанию Parameter .

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GetEnumerator()

Возвращает итератор, который выполняет итерацию по StateManagedCollection коллекции.

(Унаследовано от StateManagedCollection)
GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetKnownTypes()

Возвращает массив Parameter типов, которые ParameterCollection может содержать коллекция.

GetType()

Возвращает Type текущего экземпляра.

(Унаследовано от Object)
GetValues(HttpContext, Control)

Возвращает упорядоченную коллекцию Parameter имен объектов и соответствующие значения, содержащиеся в коллекции.

IndexOf(Parameter)

Определяет индекс указанного Parameter объекта в ParameterCollection коллекции.

Insert(Int32, Parameter)

Вставляет указанный Parameter объект в ParameterCollection коллекцию по указанному индексу.

MemberwiseClone()

Создает неглубокую копию текущей Object.

(Унаследовано от Object)
OnClear()

При переопределении в производном классе выполняет дополнительную работу перед Clear() удалением всех элементов из коллекции.

(Унаследовано от StateManagedCollection)
OnClearComplete()

Выполняет дополнительные пользовательские процессы после очистки содержимого коллекции.

OnInsert(Int32, Object)

Происходит перед вызовом Insert(Int32, Parameter) метода.

OnInsertComplete(Int32, Object)

Происходит после Insert(Int32, Parameter) завершения метода.

OnParametersChanged(EventArgs)

Вызывает событие ParametersChanged.

OnRemove(Int32, Object)

При переопределении в производном классе выполняет дополнительную работу перед IList.Remove(Object)IList.RemoveAt(Int32) удалением указанного элемента из коллекции.

(Унаследовано от StateManagedCollection)
OnRemoveComplete(Int32, Object)

Происходит после Remove(Parameter) завершения метода.

OnValidate(Object)

Выполняет дополнительные пользовательские процессы при проверке значения.

Remove(Parameter)

Удаляет указанный ParameterParameterCollection объект из коллекции.

RemoveAt(Int32)

Удаляет Parameter объект по указанному индексу ParameterCollection из коллекции.

SetDirty()

Принудительно сериализовать всю StateManagedCollection коллекцию в состояние просмотра.

(Унаследовано от StateManagedCollection)
SetDirtyObject(Object)

Помечает указанный Parameter объект как измененный с момента последней загрузки или сохранения из состояния представления.

ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)
UpdateValues(HttpContext, Control)

Выполняет итерацию по Parameter объектам, содержащимся в коллекции, и вызывает Evaluate метод для каждого из них.

События

Имя Описание
ParametersChanged

Происходит, когда один или несколько Parameter объектов, содержащихся в состоянии изменения коллекции.

Явные реализации интерфейса

Имя Описание
ICollection.Count

Возвращает количество элементов, содержащихся в StateManagedCollection коллекции.

(Унаследовано от StateManagedCollection)
ICollection.IsSynchronized

Возвращает значение, указывающее, синхронизирована ли StateManagedCollection коллекция (потокобезопасная). Этот метод возвращается false во всех случаях.

(Унаследовано от StateManagedCollection)
ICollection.SyncRoot

Возвращает объект, который можно использовать для синхронизации доступа к StateManagedCollection коллекции. Этот метод возвращается null во всех случаях.

(Унаследовано от StateManagedCollection)
IEnumerable.GetEnumerator()

Возвращает итератор, который выполняет итерацию по StateManagedCollection коллекции.

(Унаследовано от StateManagedCollection)
IList.Add(Object)

Добавляет элемент в коллекцию StateManagedCollection .

(Унаследовано от StateManagedCollection)
IList.Clear()

Удаляет все элементы из StateManagedCollection коллекции.

(Унаследовано от StateManagedCollection)
IList.Contains(Object)

Определяет, содержит ли StateManagedCollection коллекция определенное значение.

(Унаследовано от StateManagedCollection)
IList.IndexOf(Object)

Определяет индекс указанного элемента в StateManagedCollection коллекции.

(Унаследовано от StateManagedCollection)
IList.Insert(Int32, Object)

Вставляет элемент в StateManagedCollection коллекцию по указанному индексу.

(Унаследовано от StateManagedCollection)
IList.IsFixedSize

Возвращает значение, указывающее, имеет ли StateManagedCollection коллекция фиксированный размер. Этот метод возвращается false во всех случаях.

(Унаследовано от StateManagedCollection)
IList.IsReadOnly

Возвращает значение, указывающее, доступна ли StateManagedCollection коллекция только для чтения.

(Унаследовано от StateManagedCollection)
IList.Item[Int32]

Возвращает элемент по указанному IStateManager индексу.

(Унаследовано от StateManagedCollection)
IList.Remove(Object)

Удаляет первое вхождение указанного объекта из StateManagedCollection коллекции.

(Унаследовано от StateManagedCollection)
IList.RemoveAt(Int32)

Удаляет IStateManager элемент по указанному индексу.

(Унаследовано от StateManagedCollection)
IStateManager.IsTrackingViewState

Возвращает значение, указывающее, сохраняется ли StateManagedCollection коллекция изменений в состоянии представления.

(Унаследовано от StateManagedCollection)
IStateManager.LoadViewState(Object)

Восстанавливает ранее сохраненное состояние StateManagedCollection представления коллекции и IStateManager элементы, которые он содержит.

(Унаследовано от StateManagedCollection)
IStateManager.SaveViewState()

Сохраняет изменения в StateManagedCollection коллекции и каждый IStateManager объект, содержащийся с момента публикации страницы на сервер.

(Унаследовано от StateManagedCollection)
IStateManager.TrackViewState()

Приводит StateManagedCollection к тому, что коллекция и каждый из IStateManager объектов, содержащихся в нем, отслеживают изменения в состоянии представления, чтобы их можно было сохранять в запросах на одну и ту же страницу.

(Унаследовано от StateManagedCollection)

Методы расширения

Имя Описание
AsParallel(IEnumerable)

Включает параллелизацию запроса.

AsQueryable(IEnumerable)

Преобразует IEnumerable в IQueryable.

Cast<TResult>(IEnumerable)

Приведение элементов IEnumerable к указанному типу.

OfType<TResult>(IEnumerable)

Фильтрует элементы IEnumerable на основе указанного типа.

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

См. также раздел