QueryStringParameter Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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
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 Selecting
evento , Updating
Inserting
, 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 |
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 |
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) |