QueryStringParameter Class

Definition

Привязывает значение поля строки запроса HTTP к объекту параметра.Binds the value of an HTTP request query-string field to a parameter object.

public ref class QueryStringParameter : System::Web::UI::WebControls::Parameter
public class QueryStringParameter : System.Web.UI.WebControls.Parameter
type QueryStringParameter = class
    inherit Parameter
Public Class QueryStringParameter
Inherits Parameter
Inheritance
QueryStringParameter

Examples

В следующем примере показано, как создать объект QueryStringParameter, который будет использоваться в качестве фильтра при отображении данных в элементе управления GridView.The following example shows how to create a QueryStringParameter object to use as a filter when you display data in a GridView control. Объект QueryStringParameter добавляется в коллекцию FilterParameters элемента управления AccessDataSource.You add the QueryStringParameter object to the AccessDataSource control's FilterParameters collection. Объект параметра привязывает значение поля строки запроса с именем country к его FilterExpression строке.The parameter object binds the value of the query-string field named country to its FilterExpression string. Так как для параметра не задано свойство DefaultValue, если в строке запроса не указано поле с именем country, то элемент управления AccessDataSource создает исключение NullReferenceException.Because no DefaultValue property is specified for the parameter, if no field named country is passed with the query string, the AccessDataSource control throws a NullReferenceException exception. Если поле с именем country передано, но не имеет значения, элемент управления GridView не отображает данные.If a field named country is passed but has no value, the GridView control displays no data.

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

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

      <!-- Use a Query String with country=USA -->
      <asp:gridview
        id ="GridView1"
        runat="server"
        datasourceid="MyAccessDataSource" />

<!-- Security Note: The AccessDataSource uses a QueryStringParameter,
     Security Note: which does not perform validation of input from the client. -->

      <asp:accessdatasource
        id="MyAccessDataSource"
        runat="server"
        datafile="Northwind.mdb"
        selectcommand="SELECT EmployeeID, LastName, Address, PostalCode, Country FROM Employees"
        filterexpression="Country = '{0}'">
        <filterparameters>
          <asp:querystringparameter name="country" type="String" querystringfield="country" />
        </filterparameters>
      </asp:accessdatasource>
    </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">

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

      <!-- Use a Query String with country=USA -->
      <asp:gridview
        id ="GridView1"
        runat="server"
        datasourceid="MyAccessDataSource" />

<!-- Security Note: The AccessDataSource uses a QueryStringParameter,
     Security Note: which does not perform validation of input from the client. -->

      <asp:accessdatasource
        id="MyAccessDataSource"
        runat="server"
        datafile="Northwind.mdb"
        selectcommand="SELECT EmployeeID, LastName, Address, PostalCode, Country FROM Employees"
        filterexpression="Country = '{0}'">
        <filterparameters>
          <asp:querystringparameter name="country" type="String" querystringfield="country" />
        </filterparameters>
      </asp:accessdatasource>

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

В следующем примере показано, как создать объект QueryStringParameter для отображения данных из базы данных Access с помощью параметризованного SQL-запроса.The following example shows how to create a QueryStringParameter object to display data from an Access database by using a parameterized SQL query. Объект AccessDataSource извлекает записи, которые затем отображаются в элементе управления GridView.The AccessDataSource object retrieves records that are then displayed in a GridView control. Элемент управления GridView также доступен для редактирования и позволяет пользователям обновлять состояние заказов в таблице «Заказы» базы данных «Борей».The GridView control is also editable, and lets users update the status of orders in the Northwind Traders Orders table.

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

<script runat="server">
private void UpdateRecords(Object source, EventArgs e)
{
  // This method is an example of batch updating using a
  // data source control. The method iterates through the rows
  // of the GridView, extracts each CheckBox from the row and, if
  // the CheckBox is checked, updates data by calling the Update
  // method of the data source control, adding required parameters
  // to the UpdateParameters collection.
  CheckBox cb;
  foreach(GridViewRow row in this.GridView1.Rows) {
    cb = (CheckBox) row.Cells[0].Controls[1];
    if(cb.Checked) {
      string oid = (string) row.Cells[1].Text;
      MyAccessDataSource.UpdateParameters.Add(new Parameter("date",TypeCode.DateTime,DateTime.Now.ToString()));
      MyAccessDataSource.UpdateParameters.Add(new Parameter("orderid",TypeCode.String,oid));
      MyAccessDataSource.Update();
      MyAccessDataSource.UpdateParameters.Clear();
    }
  }
}
</script>

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

<!-- Security Note: The SqlDataSource uses a QueryStringParameter,
     Security Note: which does not perform validation of input from the client.
     Security Note: To validate the value of the QueryStringParameter, handle the Selecting event. -->

      <asp:SqlDataSource
        id="MyAccessDataSource"
        runat="server"
        ProviderName="<%$ ConnectionStrings:MyPasswordProtectedAccess.providerName%>"
        ConnectionString="<%$ ConnectionStrings:MyPasswordProtectedAccess%>"
        SelectCommand="SELECT OrderID, OrderDate, RequiredDate, ShippedDate FROM Orders WHERE EmployeeID=?"
        UpdateCommand="UPDATE Orders SET ShippedDate=? WHERE OrderID = ?">
        <SelectParameters>
          <asp:QueryStringParameter Name="empId" QueryStringField="empId" />
        </SelectParameters>
      </asp:SqlDataSource>

      <asp:GridView
        id ="GridView1"
        runat="server"
        DataSourceID="MyAccessDataSource"
        AllowPaging="True"
        PageSize="10"
        AutoGenerateColumns="False">
          <columns>
            <asp:TemplateField HeaderText="">
              <ItemTemplate>
                <asp:CheckBox runat="server" />
              </ItemTemplate>
            </asp:TemplateField>
            <asp:BoundField HeaderText="Order" DataField="OrderID" />
            <asp:BoundField HeaderText="Order Date" DataField="OrderDate" />
            <asp:BoundField HeaderText="Required Date" DataField="RequiredDate" />
            <asp:BoundField HeaderText="Shipped Date" DataField="ShippedDate" />
          </columns>
      </asp:GridView>

      <asp:Button
        id="Button1"
        runat="server"
        Text="Update the Selected Records As Shipped"
        OnClick="UpdateRecords" />

      <asp:Label id="Label1" runat="server" />

    </form>
  </body>
</html>
<%@Page  Language="VB" %>
<%@Import Namespace="System.Data" %>
<%@Import Namespace="System.Data.Common" %>
<!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 UpdateRecords(source As Object, e As EventArgs)

  ' This method is an example of batch updating using a
  ' data source control. The method iterates through the rows
  ' of the GridView, extracts each CheckBox from the row and, if
  ' the CheckBox is checked, updates data by calling the Update
  ' method of the data source control, adding required parameters
  ' to the UpdateParameters collection.

  Dim cb As CheckBox
  Dim row As GridViewRow

  For Each row In GridView1.Rows

    cb = CType(row.Cells(0).Controls(1), CheckBox)
    If cb.Checked Then

      Dim oid As String
      oid = CType(row.Cells(1).Text, String)

      Dim param1 As New Parameter("date", TypeCode.DateTime, DateTime.Now.ToString())
      MyAccessDataSource.UpdateParameters.Add(param1)

      Dim param2 As New Parameter("orderid", TypeCode.String, oid)
      MyAccessDataSource.UpdateParameters.Add(param2)

      MyAccessDataSource.Update()
      MyAccessDataSource.UpdateParameters.Clear()
    End If
  Next
End Sub ' UpdateRecords
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>ASP.NET Example</title>
</head>
<body>
    <form id="form1" runat="server">

<!-- Security Note: The SqlDataSource uses a QueryStringParameter,
     Security Note: which does not perform validation of input from the client.
     Security Note: To validate the value of the QueryStringParameter, handle the Selecting event. -->

      <asp:SqlDataSource
        id="MyAccessDataSource"
        runat="server"
        ProviderName="<%$ ConnectionStrings:MyPasswordProtectedAccess.providerName%>"
        ConnectionString="<%$ ConnectionStrings:MyPasswordProtectedAccess%>"
        SelectCommand="SELECT OrderID, OrderDate, RequiredDate, ShippedDate FROM Orders WHERE EmployeeID=?"
        UpdateCommand="UPDATE Orders SET ShippedDate=? WHERE OrderID = ?">
        <SelectParameters>
          <asp:QueryStringParameter Name="empId" QueryStringField="empId" />
        </SelectParameters>
      </asp:SqlDataSource>

      <asp:GridView
        id ="GridView1"
        runat="server"
        DataSourceID="MyAccessDataSource"
        AllowPaging="True"
        PageSize="10"
        AutoGenerateColumns="False">
          <columns>
            <asp:TemplateField HeaderText="">
              <ItemTemplate>
                <asp:CheckBox runat="server" />
              </ItemTemplate>
            </asp:TemplateField>
            <asp:BoundField HeaderText="Order" DataField="OrderID" />
            <asp:BoundField HeaderText="Order Date" DataField="OrderDate" />
            <asp:BoundField HeaderText="Required Date" DataField="RequiredDate" />
            <asp:BoundField HeaderText="Shipped Date" DataField="ShippedDate" />
          </columns>
      </asp:GridView>

      <asp:Button
        id="Button1"
        runat="server"
        Text="Update the Selected Records As Shipped"
        OnClick="UpdateRecords" />

      <asp:Label id="Label1" runat="server" />

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

Remarks

Можно использовать класс QueryStringParameter для привязки значения поля, которое передается как часть строки запроса HTTP-запроса к параметру, который используется в параметризованном запросе или команде.You can use the QueryStringParameter class to bind the value of a field that is passed as part of an HTTP request query string to a parameter that is used in a parameterized query or command. Поле извлекается из коллекции QueryString.The field is retrieved from the QueryString collection.

Элементы управления, которые привязывают данные к параметру, могут вызывать исключение при ссылке на QueryStringParameter объект, но соответствующие пары "имя-значение" строки запроса не передаются.Controls that bind data to the parameter might throw an exception if a QueryStringParameter object is referenced, but no corresponding query-string name/value pair is passed. Аналогичным образом они могут не отображать данные, если имя поля строки запроса передается без соответствующего значения.Similarly, they might display no data if the query-string field name is passed without a corresponding value. Чтобы избежать этих ситуаций, при необходимости задайте свойство DefaultValue.To avoid these situations, set the DefaultValue property where appropriate.

Класс QueryStringParameter предоставляет свойство QueryStringField, которое определяет имя значения строки запроса для привязки.The QueryStringParameter class provides the QueryStringField property, which identifies the name of the query string value to bind to. Он также предоставляет свойства, унаследованные от класса Parameter.It also provides the properties that are inherited from the Parameter class.

Important

Класс QueryStringParameter не проверяет передаваемое значение; Он предоставляет необработанное значение.The QueryStringParameter class does not validate the value that is passed; it provides the raw value. Однако можно проверить значение QueryStringParameter объекта в элементе управления источника данных.However, you can validate the value of a QueryStringParameter object in a data source control. Для этого обработайте событие Selecting, Updating, Insertingили Deleting элемента управления источниками данных и проверьте значение параметра в обработчике событий.To do so, handle the Selecting, Updating, Inserting, or Deleting event of the data source control and check the parameter value in the event handler. Если значение параметра не проходит проверочные тесты, можно отменить операцию с данными, задав для свойства Cancel связанного CancelEventArgs класса значение true.If the value of the parameter does not pass the validation tests, you can cancel the data operation by setting the Cancel property of the associated CancelEventArgs class to true.

Constructors

QueryStringParameter()

Инициализирует новый безымянный экземпляр класса QueryStringParameter.Initializes a new unnamed instance of the QueryStringParameter class.

QueryStringParameter(QueryStringParameter)

Инициализирует новый экземпляр класса QueryStringParameter значениями экземпляра, заданного параметром original.Initializes a new instance of the QueryStringParameter class, using the values of the instance that is specified by the original parameter.

QueryStringParameter(String, DbType, String)

Инициализирует новый именованный экземпляр класса QueryStringParameter, используя указанные поле строки запроса и тип данных параметра.Initializes a new named instance of the QueryStringParameter class, using the specified query-string field and the data type of the parameter.

QueryStringParameter(String, String)

Инициализирует новый именованный экземпляр класса QueryStringParameter, используя заданную строку для обозначения поля строки запроса, к которому выполняется привязка.Initializes a new named instance of the QueryStringParameter class, using the specified string to identify which query-string field to bind to.

QueryStringParameter(String, TypeCode, String)

Инициализирует новый именованный и строго типизированный экземпляр класса QueryStringParameter, используя заданную строку для обозначения поля строки запроса, к которому выполняется привязка.Initializes a new named and strongly typed instance of the QueryStringParameter class, using the specified string to identify which query-string field to bind to.

Properties

ConvertEmptyStringToNull

Возвращает или задает значение, указывающее на необходимость преобразования значения, к которому привязан объект Parameter в null, если его значение равно Empty.Gets or sets a value indicating whether the value that the Parameter object is bound to should be converted to null if it is Empty.

(Inherited from Parameter)
DbType

Возвращает или задает тип базы данных параметра.Gets or sets the database type of the parameter.

(Inherited from Parameter)
DefaultValue

Задает значение по умолчанию для параметра, если значение, к которому привязан параметр, должно быть инициализировано при вызове метода Evaluate(HttpContext, Control).Specifies a default value for the parameter, should the value that the parameter is bound to be uninitialized when the Evaluate(HttpContext, Control) method is called.

(Inherited from Parameter)
Direction

Указывает, используется ли объект Parameter для привязки значения к элементу управления или же элемент управления можно использовать для изменения значения.Indicates whether the Parameter object is used to bind a value to a control, or the control can be used to change the value.

(Inherited from Parameter)
IsTrackingViewState

Получает значение, указывающее сохраняет ли объект Parameter изменения в данных о состоянии представления.Gets a value indicating whether the Parameter object is saving changes to its view state.

(Inherited from Parameter)
Name

Возвращает или задает имя параметра.Gets or sets the name of the parameter.

(Inherited from Parameter)
QueryStringField

Возвращает или задает имя поля строки запроса, к которому привязывается параметр.Gets or sets the name of the query-string field that the parameter binds to.

Size

Возвращает или задает размер параметра.Gets or sets the size of the parameter.

(Inherited from Parameter)
Type

Возвращает или задает тип параметра.Gets or sets the type of the parameter.

(Inherited from Parameter)
ValidateInput

Получает или задает значение, указывающее, проверяется ли значение параметра строки запроса.Gets or sets whether the value of the query string parameter is being validated or not.

ViewState

Возвращает словарь сведений о состоянии, позволяющих сохранять и восстанавливать состояние представления объекта Parameter при нескольких запросах одной и той же страницы.Gets a dictionary of state information that allows you to save and restore the view state of a Parameter object across multiple requests for the same page.

(Inherited from Parameter)

Methods

Clone()

Возвращает дубликат текущего экземпляра QueryStringParameter.Returns a duplicate of the current QueryStringParameter instance.

Equals(Object)

Определяет, равен ли заданный объект текущему объекту.Determines whether the specified object is equal to the current object.

(Inherited from Object)
Evaluate(HttpContext, Control)

Обновляет и возвращает значение объекта QueryStringParameter.Updates and returns the value of the QueryStringParameter object.

GetDatabaseType()

Возвращает значение DbType, эквивалентное типу среды CLR текущего экземпляра Parameter.Gets the DbType value that is equivalent to the CLR type of the current Parameter instance.

(Inherited from Parameter)
GetHashCode()

Служит хэш-функцией по умолчанию.Serves as the default hash function.

(Inherited from Object)
GetType()

Возвращает объект Type для текущего экземпляра.Gets the Type of the current instance.

(Inherited from Object)
LoadViewState(Object)

Восстанавливает сохраненное раннее состояние представления источника данных.Restores the data source view's previously saved view state.

(Inherited from Parameter)
MemberwiseClone()

Создает неполную копию текущего объекта Object.Creates a shallow copy of the current Object.

(Inherited from Object)
OnParameterChanged()

Вызывает метод OnParametersChanged(EventArgs) коллекции ParameterCollection, содержащей объект Parameter.Calls the OnParametersChanged(EventArgs) method of the ParameterCollection collection that contains the Parameter object.

(Inherited from Parameter)
SaveViewState()

Сохраняет изменения в данных о состоянии представления объекта Parameter после обратной передачи страницы на сервер.Saves the changes to the Parameter object's view state since the time the page was posted back to the server.

(Inherited from Parameter)
SetDirty()

Обозначает объект Parameter как подлежащий записи его состояния в данные о состоянии представления.Marks the Parameter object so its state will be recorded in view state.

(Inherited from Parameter)
ToString()

Преобразует значение этого экземпляра в эквивалентное ему строковое представление.Converts the value of this instance to its equivalent string representation.

(Inherited from Parameter)
TrackViewState()

Инициирует отслеживание объектом Parameter изменений в состоянии его представления, благодаря чему их можно сохранить для этого объекта ViewState элемента управления и хранить их для всех запросов одной и той же страницы.Causes the Parameter object to track changes to its view state so they can be stored in the control's ViewState object and persisted across requests for the same page.

(Inherited from Parameter)

Explicit Interface Implementations

ICloneable.Clone()

Возвращает дубликат текущего экземпляра Parameter.Returns a duplicate of the current Parameter instance.

(Inherited from Parameter)
IStateManager.IsTrackingViewState

Получает значение, указывающее сохраняет ли объект Parameter изменения в данных о состоянии представления.Gets a value indicating whether the Parameter object is saving changes to its view state.

(Inherited from Parameter)
IStateManager.LoadViewState(Object)

Восстанавливает сохраненное раннее состояние представления источника данных.Restores the data source view's previously saved view state.

(Inherited from Parameter)
IStateManager.SaveViewState()

Сохраняет изменения в данных о состоянии представления объекта Parameter после обратной передачи страницы на сервер.Saves the changes to the Parameter object's view state since the time the page was posted back to the server.

(Inherited from Parameter)
IStateManager.TrackViewState()

Инициирует отслеживание объектом Parameter изменений в состоянии его представления, благодаря чему их можно сохранить для этого объекта ViewState элемента управления и хранить их для всех запросов одной и той же страницы.Causes the Parameter object to track changes to its view state so they can be stored in the control's ViewState object and persisted across requests for the same page.

(Inherited from Parameter)

Applies to

See also