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.

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 un QueryStringParameter objeto que se usará como filtro al mostrar datos en un GridView control . El objeto se agrega QueryStringParameter a la AccessDataSource colección del FilterParameters control. El objeto de parámetro enlaza el valor del campo de cadena de consulta denominado country a su FilterExpression cadena. Dado que no se especifica ninguna DefaultValue propiedad para el parámetro , si no se pasa ningún campo denominado country con la cadena de consulta, el AccessDataSource control produce una NullReferenceException excepción. Si se pasa un campo denominado country pero no tiene ningún valor, el GridView control no muestra datos.

<%@ 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 un QueryStringParameter objeto para mostrar datos de una base de datos de Access mediante una consulta SQL parametrizada. El AccessDataSource objeto recupera los registros que a continuación se muestran en un GridView control . El GridView control también es editable y permite a los usuarios actualizar el estado de los pedidos en la tabla Pedidos de Northwind Traders.

<%@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 usar 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 usa en una consulta o comando con parámetros. El campo se recupera de la QueryString colección.

Los controles que enlazan datos al parámetro pueden producir una excepción si se hace referencia a un QueryStringParameter objeto, pero no se pasa ningún par de nombre y valor de cadena de consulta correspondiente. Del mismo modo, podrían no mostrar datos si el nombre del campo de cadena de consulta se pasa sin un valor correspondiente. Para evitar estas situaciones, establezca la DefaultValue propiedad cuando corresponda.

La QueryStringParameter clase proporciona la QueryStringField propiedad , que identifica el nombre del valor de cadena de consulta al que se va a enlazar. También proporciona las propiedades que se heredan de la Parameter clase .

Importante

La QueryStringParameter clase no valida el valor que se pasa; proporciona el valor sin procesar. Sin embargo, puede validar el valor de un QueryStringParameter objeto en un control de origen de datos. Para ello, controle el Selectingevento , Updating, Insertingo Deleting del control de origen de datos y compruebe el valor del parámetro en el controlador de eventos. Si el valor del parámetro no supera las pruebas de validación, puede cancelar la operación de datos estableciendo la Cancel propiedad de la clase asociada CancelEventArgs en true.

Constructores

QueryStringParameter()

Inicializa una nueva instancia sin nombre de la clase QueryStringParameter.

QueryStringParameter(QueryStringParameter)

Inicializa una nueva instancia de la clase QueryStringParameter, utilizando los valores de la instancia especificada por el parámetro original.

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.

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.

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.

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.

(Heredado de Parameter)
DbType

Obtiene o establece el tipo de base de datos del parámetro.

(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).

(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.

(Heredado de Parameter)
IsTrackingViewState

Obtiene un valor que indica si el objeto Parameter está guardando los cambios en su estado de vista.

(Heredado de Parameter)
Name

Obtiene o establece el nombre del parámetro.

(Heredado de Parameter)
QueryStringField

Obtiene o establece el nombre del campo de cadena de consulta al que se enlaza el parámetro.

Size

Obtiene o establece el tamaño del parámetro.

(Heredado de Parameter)
Type

Obtiene o establece el tipo de parámetro.

(Heredado de Parameter)
ValidateInput

Obtiene o establece si el valor del parámetro de cadena de consulta se valida o no.

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.

(Heredado de Parameter)

Métodos

Clone()

Devuelve un duplicado de la instancia QueryStringParameter actual.

Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.

(Heredado de Object)
Evaluate(HttpContext, Control)

Actualiza y devuelve el valor del objeto QueryStringParameter.

GetDatabaseType()

Obtiene el valor DbType que es equivalente al tipo CLR de la instancia Parameter actual.

(Heredado de Parameter)
GetHashCode()

Sirve como la función hash predeterminada.

(Heredado de Object)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
LoadViewState(Object)

Restaura la vista del origen de datos tal y como se guardó previamente.

(Heredado de Parameter)
MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
OnParameterChanged()

Llama al método OnParametersChanged(EventArgs) de la colección ParameterCollection que contiene el objeto Parameter.

(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.

(Heredado de Parameter)
SetDirty()

Marca el objeto Parameter para que su estado se registre en el estado de vista.

(Heredado de Parameter)
ToString()

Convierte el valor de esta instancia en la representación de cadena equivalente.

(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.

(Heredado de Parameter)

Implementaciones de interfaz explícitas

ICloneable.Clone()

Devuelve un duplicado de la instancia Parameter actual.

(Heredado de Parameter)
IStateManager.IsTrackingViewState

Obtiene un valor que indica si el objeto Parameter está guardando los cambios en su estado de vista.

(Heredado de Parameter)
IStateManager.LoadViewState(Object)

Restaura la vista del origen de datos tal y como se guardó previamente.

(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.

(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.

(Heredado de Parameter)

Se aplica a

Consulte también