Compartilhar via


QueryStringParameter Classe

Definição

Associa o valor de um campo de cadeia de consulta da solicitação HTTP a um 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
Herança
QueryStringParameter

Exemplos

O exemplo a seguir mostra como criar um QueryStringParameter objeto a ser usado como um filtro quando você exibe dados em um GridView controle . Você adiciona o QueryStringParameter objeto à AccessDataSource coleção do FilterParameters controle. O objeto de parâmetro associa o valor do campo query-string nomeado country à sua FilterExpression cadeia de caracteres. Como nenhuma DefaultValue propriedade é especificada para o parâmetro , se nenhum campo nomeado country for passado com a cadeia de caracteres de consulta, o AccessDataSource controle gerará uma NullReferenceException exceção. Se um campo chamado country for passado, mas não tiver valor, o GridView controle não exibirá nenhum dado.

<%@ 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>

O exemplo a seguir mostra como criar um QueryStringParameter objeto para exibir dados de um banco de dados do Access usando uma consulta SQL parametrizada. O AccessDataSource objeto recupera registros que são exibidos em um GridView controle . O GridView controle também é editável e permite que os usuários atualizem o status dos pedidos na tabela Northwind Traders Orders.

<%@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>

Comentários

Você pode usar a QueryStringParameter classe para associar o valor de um campo que é passado como parte de uma cadeia de caracteres de consulta de solicitação HTTP a um parâmetro usado em uma consulta ou comando parametrizado. O campo é recuperado da QueryString coleção.

Controles que associam dados ao parâmetro poderão gerar uma exceção se um QueryStringParameter objeto for referenciado, mas nenhum par nome/valor de cadeia de caracteres de consulta correspondente for passado. Da mesma forma, eles poderão não exibir dados se o nome do campo de cadeia de caracteres de consulta for passado sem um valor correspondente. Para evitar essas situações, defina a DefaultValue propriedade quando apropriado.

A QueryStringParameter classe fornece a QueryStringField propriedade , que identifica o nome do valor da cadeia de caracteres de consulta ao qual associar. Ele também fornece as propriedades herdadas da Parameter classe .

Importante

A QueryStringParameter classe não valida o valor que é passado; ela fornece o valor bruto. No entanto, você pode validar o valor de um QueryStringParameter objeto em um controle de fonte de dados. Para fazer isso, manipule o Selectingevento , UpdatingInserting, ou Deleting do controle da fonte de dados e verifique o valor do parâmetro no manipulador de eventos. Se o valor do parâmetro não passar nos testes de validação, você poderá cancelar a operação de dados definindo a Cancel propriedade da classe associada CancelEventArgs como true.

Construtores

QueryStringParameter()

Inicializa uma nova instância não nomeada da classe QueryStringParameter.

QueryStringParameter(QueryStringParameter)

Inicializa uma nova instância da classe QueryStringParameter usando os valores da instância especificada pelo parâmetro original.

QueryStringParameter(String, DbType, String)

Inicializa uma nova instância nomeada da classe QueryStringParameter, usando o campo de cadeia de caracteres de consulta especificado e o tipo de dados do parâmetro.

QueryStringParameter(String, String)

Inicializa uma nova instância nomeada da classe QueryStringParameter, usando a cadeia de caracteres especificada para identificar o campo de cadeia de caracteres de consulta ao qual associar.

QueryStringParameter(String, TypeCode, String)

Inicializa uma nova instância nomeada e fortemente tipada da classe QueryStringParameter, usando a cadeia de caracteres especificada para identificar o campo de cadeia de caracteres de consulta ao qual associar.

Propriedades

ConvertEmptyStringToNull

Obtém ou define um valor que indica se o valor ao qual o objeto Parameter está associado deverá ser convertido em null se ele for Empty.

(Herdado de Parameter)
DbType

Obtém ou define o tipo de banco de dados do parâmetro.

(Herdado de Parameter)
DefaultValue

Especifica um valor padrão para o parâmetro, caso o valor a que o parâmetro esteja associado não devesse ser inicializado quando o método Evaluate(HttpContext, Control) for chamado.

(Herdado de Parameter)
Direction

Indica se o objeto Parameter é usado para associar um valor a um controle ou o controle pode ser usado para alterar o valor.

(Herdado de Parameter)
IsTrackingViewState

Obtém um valor que indica se o objeto Parameter está salvando alterações no estado de exibição.

(Herdado de Parameter)
Name

Obtém ou define o nome do parâmetro.

(Herdado de Parameter)
QueryStringField

Obtém ou define o nome do campo da cadeia de caracteres de consulta ao qual o parâmetro está associado.

Size

Obtém ou define o tamanho do parâmetro.

(Herdado de Parameter)
Type

Obtém ou define o tipo do parâmetro.

(Herdado de Parameter)
ValidateInput

Obtém ou define se o valor do parâmetro de cadeia de caracteres de consulta está sendo validado ou não.

ViewState

Obtém um dicionário de informações de estado que permite salvar e restaurar o estado de exibição de um objeto Parameter em várias solicitações da mesma página.

(Herdado de Parameter)

Métodos

Clone()

Retorna uma duplicata da instância de QueryStringParameter atual.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
Evaluate(HttpContext, Control)

Atualiza e retorna o valor do objeto QueryStringParameter.

GetDatabaseType()

Obtém o valor DbType que é equivalente ao tipo CLR da instância Parameter atual.

(Herdado de Parameter)
GetHashCode()

Serve como a função de hash padrão.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
LoadViewState(Object)

Restaura o estado de exibição salvo anteriormente da exibição de fonte de dados.

(Herdado de Parameter)
MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
OnParameterChanged()

Chama o método OnParametersChanged(EventArgs) da coleção ParameterCollection que contém o objeto Parameter.

(Herdado de Parameter)
SaveViewState()

Salva as alterações ao estado de exibição do objeto Parameter desde a hora em que a página foi postada de volta no servidor.

(Herdado de Parameter)
SetDirty()

Marca o objeto Parameter de modo que seu estado seja registrado no estado de exibição.

(Herdado de Parameter)
ToString()

Converte o valor dessa instância na representação da cadeia de caracteres equivalente.

(Herdado de Parameter)
TrackViewState()

Faz com que o objeto Parameter controle as alterações a seu estado de exibição de modo que elas possam ser armazenadas no objeto ViewState do controle e persistidas entre solicitações para a mesma página.

(Herdado de Parameter)

Implantações explícitas de interface

ICloneable.Clone()

Retorna uma duplicata da instância de Parameter atual.

(Herdado de Parameter)
IStateManager.IsTrackingViewState

Obtém um valor que indica se o objeto Parameter está salvando alterações no estado de exibição.

(Herdado de Parameter)
IStateManager.LoadViewState(Object)

Restaura o estado de exibição salvo anteriormente da exibição de fonte de dados.

(Herdado de Parameter)
IStateManager.SaveViewState()

Salva as alterações ao estado de exibição do objeto Parameter desde a hora em que a página foi postada de volta no servidor.

(Herdado de Parameter)
IStateManager.TrackViewState()

Faz com que o objeto Parameter controle as alterações a seu estado de exibição de modo que elas possam ser armazenadas no objeto ViewState do controle e persistidas entre solicitações para a mesma página.

(Herdado de Parameter)

Aplica-se a

Confira também