ParameterCollection 类

定义

表示由高级数据绑定方案中的数据源控件使用的 ParameterParameter 派生的对象的集合。

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 在 控件中 GridView 显示 Microsoft Access 数据库中的信息。 使用 FormParameterAdd 方法将 SelectParameters 对象添加到集合中。

重要

此示例具有一个接受用户输入的文本框,这是一个潜在的安全威胁。 默认情况下,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对象。 可以使用 类的相应方法ParameterCollection添加、插入和删除Parameter对象。 若要以编程方式从集合中检索 Parameter 对象,请使用以下方法之一:

属性 Count 指定集合中的项总数,用于确定集合的上限。 可以使用 、、 InsertRemove和 方法在集合中添加AddRemoveAt删除项。

根据特定数据源控件的实现和语义,参数在集合中的 ParameterCollection 存储顺序可能很重要。 例如,将 SqlDataSource 控件用作 ODBC 数据源时,集合中ParameterCollection对象的顺序Parameter必须与所使用的参数化 SQL 查询中的参数顺序相同。 但是,将 SqlDataSource 控件与 Microsoft SQL Server 一起使用时,对象的顺序Parameter并不重要。

重要

使用数据源控件时,值将插入命令参数而不进行验证,这是一个潜在的安全威胁。 在执行命令之前,使用数据源控件中的 事件来验证参数值。 有关详细信息,请参阅脚本侵入概述

下表列出了不同的参数类及其使用方式。

参数类 说明
Parameter 基参数类。 使用它绑定到局部变量或使用 属性的任何静态字符串 DefaultValue
ControlParameter 一个参数,可用于绑定到控件的属性或方法返回值。
CookieParameter 一个参数,可用于绑定到 Cookie 的值。
FormParameter 一个参数,可用于绑定到当前Web Forms页的属性。
QueryStringParameter 一个参数,可用于绑定到传递给查询字符串上Web Forms页的值。
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

适用于

另请参阅