QueryStringParameter Clase

Definición

Enlaza el valor de un campo de la cadena de consulta de la solicitud HTTP a un objeto de parámetro.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
Herencia
QueryStringParameter

Ejemplos

En el ejemplo siguiente se muestra cómo crear QueryStringParameter un objeto para usarlo como filtro al mostrar los datos en un GridView control.The following example shows how to create a QueryStringParameter object to use as a filter when you display data in a GridView control. El QueryStringParameter objeto se agrega a la AccessDataSource colección del FilterParameters control.You add the QueryStringParameter object to the AccessDataSource control's FilterParameters collection. El objeto de parámetro enlaza el valor del campo de cadena de consulta denominado country a su FilterExpression cadena.The parameter object binds the value of the query-string field named country to its FilterExpression string. Dado que DefaultValue no se ha especificado ninguna propiedad para el parámetro, si country no se pasa ningún campo denominado con la AccessDataSource cadena de consulta, NullReferenceException el control produce una excepción.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. Si se pasa un country campo denominado pero no tiene ningún valor, GridView el control no muestra ningún dato.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>

En el ejemplo siguiente se muestra cómo crear QueryStringParameter un objeto para mostrar los datos de una base de datos de Access mediante una consulta SQL con parámetros.The following example shows how to create a QueryStringParameter object to display data from an Access database by using a parameterized SQL query. El AccessDataSource objeto recupera los registros que se muestran en un GridView control.The AccessDataSource object retrieves records that are then displayed in a GridView control. El GridView control también es editable y permite a los usuarios actualizar el estado de los pedidos en la tabla Orders de Northwind Traders.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>

Comentarios

Puede utilizar la QueryStringParameter clase para enlazar el valor de un campo que se pasa como parte de una cadena de consulta de solicitud HTTP a un parámetro que se utiliza en una consulta o un comando con parámetros.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. El campo se recupera de la QueryString colección.The field is retrieved from the QueryString collection.

Los controles que enlazan datos al parámetro pueden producir una excepción si QueryStringParameter se hace referencia a un objeto, pero no se pasa ningún par nombre/valor de cadena de consulta correspondiente.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. De forma similar, podrían no Mostrar datos si el nombre del campo de la cadena de consulta se pasa sin un valor correspondiente.Similarly, they might display no data if the query-string field name is passed without a corresponding value. Para evitar estas situaciones, establezca la DefaultValue propiedad según corresponda.To avoid these situations, set the DefaultValue property where appropriate.

La QueryStringParameter clase proporciona la QueryStringField propiedad, que identifica el nombre del valor de cadena de consulta al que se va a enlazar.The QueryStringParameter class provides the QueryStringField property, which identifies the name of the query string value to bind to. También proporciona las propiedades que se heredan de la Parameter clase.It also provides the properties that are inherited from the Parameter class.

Importante

La QueryStringParameter clase no valida el valor que se pasa; proporciona el valor sin formato.The QueryStringParameter class does not validate the value that is passed; it provides the raw value. Sin embargo, puede validar el valor de un QueryStringParameter objeto en un control de origen de datos.However, you can validate the value of a QueryStringParameter object in a data source control. Para ello, controle el Selectingevento Updating, Inserting, o Deleting del control de origen de datos y compruebe el valor del parámetro en el controlador de eventos.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. Si el valor del parámetro no pasa las pruebas de validación, puede cancelar la operación de datos estableciendo la Cancel propiedad de la clase asociada CancelEventArgs en 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.

Constructores

QueryStringParameter()

Inicializa una nueva instancia sin nombre de la clase QueryStringParameter.Initializes a new unnamed instance of the QueryStringParameter class.

QueryStringParameter(QueryStringParameter)

Inicializa una nueva instancia de la clase QueryStringParameter, utilizando los valores de la instancia especificada por el parámetro 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)

Inicializa una nueva instancia con nombre de la clase QueryStringParameter, utilizando el campo de cadena de consulta especificado y el tipo de datos del parámetro.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)

Inicializa una nueva instancia con nombre de la clase QueryStringParameter, utilizando la cadena especificada para identificar el campo de cadena de consulta al que se va a enlazar.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)

Inicializa una nueva instancia, fuertemente tipada y nombre, de la clase QueryStringParameter, utilizando la cadena especificada para identificar el campo de cadena de consulta al que se va a enlazar.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.

Propiedades

ConvertEmptyStringToNull

Obtiene o establece un valor que indica si el valor al que está enlazado el objeto Parameter debe convertirse a null si es 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.

(Heredado de Parameter)
DbType

Obtiene o establece el tipo de base de datos del parámetro.Gets or sets the database type of the parameter.

(Heredado de Parameter)
DefaultValue

Especifica un valor predeterminado para el parámetro, si el valor al que está enlazado el parámetro no debe estar inicializado cuando se llame al método 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.

(Heredado de Parameter)
Direction

Indica si el objeto Parameter se utiliza para enlazar un valor a un control o si se puede utilizar el control para cambiar el valor.Indicates whether the Parameter object is used to bind a value to a control, or the control can be used to change the value.

(Heredado de Parameter)
IsTrackingViewState

Obtiene un valor que indica si el objeto Parameter está guardando los cambios en su estado de vista.Gets a value indicating whether the Parameter object is saving changes to its view state.

(Heredado de Parameter)
Name

Obtiene o establece el nombre del parámetro.Gets or sets the name of the parameter.

(Heredado de Parameter)
QueryStringField

Obtiene o establece el nombre del campo de cadena de consulta al que se enlaza el parámetro.Gets or sets the name of the query-string field that the parameter binds to.

Size

Obtiene o establece el tamaño del parámetro.Gets or sets the size of the parameter.

(Heredado de Parameter)
Type

Obtiene o establece el tipo del parámetro.Gets or sets the type of the parameter.

(Heredado de Parameter)
ValidateInput

Obtiene o establece si el valor del parámetro de cadena de consulta se valida o no.Gets or sets whether the value of the query string parameter is being validated or not.

ViewState

Obtiene un diccionario con información de estado que permite guardar y restaurar el estado de vista de un objeto Parameter en las distintas solicitudes de la misma página.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.

(Heredado de Parameter)

Métodos

Clone()

Devuelve un duplicado de la instancia QueryStringParameter actual.Returns a duplicate of the current QueryStringParameter instance.

Equals(Object)

Determina si el objeto especificado es igual al objeto actual.Determines whether the specified object is equal to the current object.

(Heredado de Object)
Evaluate(HttpContext, Control)

Actualiza y devuelve el valor del objeto QueryStringParameter.Updates and returns the value of the QueryStringParameter object.

GetDatabaseType()

Obtiene el valor DbType que es equivalente al tipo CLR de la instancia Parameter actual.Gets the DbType value that is equivalent to the CLR type of the current Parameter instance.

(Heredado de Parameter)
GetHashCode()

Sirve como función hash predeterminada.Serves as the default hash function.

(Heredado de Object)
GetType()

Obtiene el Type de la instancia actual.Gets the Type of the current instance.

(Heredado de Object)
LoadViewState(Object)

Restaura la vista del origen de datos tal y como se guardó previamente.Restores the data source view's previously saved view state.

(Heredado de Parameter)
MemberwiseClone()

Crea una copia superficial del Object actual.Creates a shallow copy of the current Object.

(Heredado de Object)
OnParameterChanged()

Llama al método OnParametersChanged(EventArgs) de la colección ParameterCollection que contiene el objeto Parameter.Calls the OnParametersChanged(EventArgs) method of the ParameterCollection collection that contains the Parameter object.

(Heredado de Parameter)
SaveViewState()

Guarda los cambios realizados en el estado de la vista del objeto Parameter desde el momento en que se devolvió la página al servidor.Saves the changes to the Parameter object's view state since the time the page was posted back to the server.

(Heredado de Parameter)
SetDirty()

Marca el objeto Parameter para que su estado se registre en el estado de vista.Marks the Parameter object so its state will be recorded in view state.

(Heredado de Parameter)
ToString()

Convierte el valor de esta instancia en la representación de cadena equivalente.Converts the value of this instance to its equivalent string representation.

(Heredado de Parameter)
TrackViewState()

Hace que el objeto Parameter realice el seguimiento de los cambios en su estado de vista, de modo que puedan almacenarse en el objeto ViewState del control y mantenerse en todas las solicitudes de la misma página.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.

(Heredado de Parameter)

Implementaciones de interfaz explícitas

ICloneable.Clone()

Devuelve un duplicado de la instancia Parameter actual.Returns a duplicate of the current Parameter instance.

(Heredado de Parameter)
IStateManager.IsTrackingViewState

Obtiene un valor que indica si el objeto Parameter está guardando los cambios en su estado de vista.Gets a value indicating whether the Parameter object is saving changes to its view state.

(Heredado de Parameter)
IStateManager.LoadViewState(Object)

Restaura la vista del origen de datos tal y como se guardó previamente.Restores the data source view's previously saved view state.

(Heredado de Parameter)
IStateManager.SaveViewState()

Guarda los cambios realizados en el estado de la vista del objeto Parameter desde el momento en que se devolvió la página al servidor.Saves the changes to the Parameter object's view state since the time the page was posted back to the server.

(Heredado de Parameter)
IStateManager.TrackViewState()

Hace que el objeto Parameter realice el seguimiento de los cambios en su estado de vista, de modo que puedan almacenarse en el objeto ViewState del control y mantenerse en todas las solicitudes de la misma página.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.

(Heredado de Parameter)

Se aplica a

Consulte también: