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 資料庫中的資訊。 物件 FormParameter 會使用 Add 方法新增至 SelectParameters 集合。

重要

這個範例有一個可接受使用者輸入的文字方塊,這可能會造成安全性威脅。 根據預設,ASP.NET Web 網頁會驗證使用者輸入未包含指令碼或 HTML 項目。 如需詳細資訊,請參閱 Script Exploits Overview (指令碼攻擊概觀)。

<%@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 會指定集合中的專案總數,並用來判斷集合的上限。 您可以使用 、 InsertRemoveRemoveAt 方法,從集合 Add 新增和移除專案。

根據特定資料來源控制項的實作和語意,參數儲存在 ParameterCollection 集合中的順序可能很重要。 例如,使用 SqlDataSource 控制項做為 ODBC 資料來源時,集合中 ParameterCollection 物件的順序 Parameter 必須與您使用的參數化 SQL 查詢中的參數順序相同。 不過,搭配 Microsoft SQL Server 使用 SqlDataSource 控制項時,物件的順序 Parameter 並不重要。

重要

當您使用資料來源控制項時,值會插入命令參數中,而不需要驗證,這是潛在的安全性威脅。 使用資料來源控制項中的 事件,在執行命令之前先驗證參數值。 如需詳細資訊,請參閱 Script Exploits Overview (指令碼攻擊概觀)。

下表列出不同的參數類別及其使用方式。

Parameter 類別 描述
Parameter 基底參數類別。 使用它來系結至區域變數或任何使用 屬性的 DefaultValue 靜態字串。
ControlParameter 參數,可用來系結至控制項的屬性或方法傳回值。
CookieParameter 參數,可用來系結至 Cookie 的值。
FormParameter 參數,可用來系結至目前Web Form頁面的屬性。
QueryStringParameter 參數,可用來系結至查詢字串上傳遞至Web Form頁面的值。
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

適用於

另請參閱