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


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 добавляется в коллекцию SelectParameters с помощью Add метода .

Важно!

В этом примере имеется текстовое поле, принимающее вводимые пользователем данные, что является потенциальной угрозой безопасности. По умолчанию данные, вводимые пользователем на веб-страницах 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 переменных, файлах cookie HTTP, переменных сеанса и других элементах управления, к элементам управления источником данных при получении, обновлении, удалении и вставке данных.

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

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

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

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

В зависимости от реализации и семантики конкретного элемента управления источником данных может быть важен порядок хранения параметров в ParameterCollection коллекции. Например, при использовании SqlDataSource элемента управления в качестве источника данных ODBC порядок Parameter объектов в ParameterCollection коллекции должен совпадать с порядком параметров в параметризованных 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)

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

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)

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

Cast<TResult>(IEnumerable)

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

OfType<TResult>(IEnumerable)

Выполняет фильтрацию элементов объекта IEnumerable по заданному типу.

AsParallel(IEnumerable)

Позволяет осуществлять параллельный запрос.

AsQueryable(IEnumerable)

Преобразовывает коллекцию IEnumerable в объект IQueryable.

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

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