QueryStringParameter Klasa

Definicja

Wiąże wartość pola ciągu zapytania żądania HTTP z obiektem parametru.

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
Dziedziczenie
QueryStringParameter

Przykłady

W poniższym przykładzie pokazano, jak utworzyć QueryStringParameter obiekt do użycia jako filtr podczas wyświetlania danych w kontrolce GridView . Obiekt jest dodany QueryStringParameter do AccessDataSource kolekcji kontrolki FilterParameters . Obiekt parametru wiąże wartość pola ciągu zapytania o nazwie country z jego FilterExpression ciągiem. Ponieważ dla parametru nie DefaultValue określono żadnej właściwości, jeśli żadne pole o nazwie country nie zostanie przekazane z ciągiem zapytania, AccessDataSource kontrolka zgłasza NullReferenceException wyjątek. Jeśli pole o nazwie country jest przekazywane, ale nie ma wartości, kontrolka GridView nie wyświetla żadnych danych.

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

W poniższym przykładzie pokazano, jak utworzyć QueryStringParameter obiekt do wyświetlania danych z bazy danych programu Access przy użyciu sparametryzowanego zapytania SQL. Obiekt AccessDataSource pobiera rekordy, które są następnie wyświetlane w kontrolce GridView . Kontrolka GridView jest również edytowalna i umożliwia użytkownikom aktualizowanie stanu zamówień w tabeli Zamówienia firmy 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>

Uwagi

Za pomocą QueryStringParameter klasy można powiązać wartość pola przekazanego jako część ciągu zapytania żądania HTTP do parametru używanego w sparametryzowanym zapytaniu lub poleceniu. Pole jest pobierane z kolekcji QueryString .

Kontrolki, które wiążą dane z parametrem, mogą zgłaszać wyjątek, jeśli QueryStringParameter obiekt jest przywoływane, ale nie przekazano odpowiedniej pary nazwa/wartość ciągu zapytania. Podobnie mogą wyświetlać żadne dane, jeśli nazwa pola ciągu zapytania jest przekazywana bez odpowiedniej wartości. Aby uniknąć tych sytuacji, ustaw właściwość w DefaultValue odpowiednim miejscu.

Klasa QueryStringParameter udostępnia QueryStringField właściwość, która identyfikuje nazwę wartości ciągu zapytania do powiązania. Udostępnia również właściwości dziedziczone z Parameter klasy.

Ważne

Klasa QueryStringParameter nie weryfikuje przekazanej wartości. Udostępnia ona nieprzetworzone wartości. Można jednak zweryfikować wartość QueryStringParameter obiektu w kontrolce źródła danych. W tym celu obsłuż Selectingzdarzenie , , UpdatingInsertinglub Deleting kontrolki źródła danych i sprawdź wartość parametru w procedurze obsługi zdarzeń. Jeśli wartość parametru nie przejdzie testów weryfikacyjnych, możesz anulować operację danych, ustawiając Cancel właściwość skojarzonej CancelEventArgs klasy na true.

Konstruktory

QueryStringParameter()

Inicjuje nowe nienazwane wystąpienie QueryStringParameter klasy.

QueryStringParameter(QueryStringParameter)

Inicjuje nowe wystąpienie QueryStringParameter klasy przy użyciu wartości wystąpienia określonego original przez parametr .

QueryStringParameter(String, DbType, String)

Inicjuje nowe nazwane wystąpienie QueryStringParameter klasy przy użyciu określonego pola ciągu zapytania i typu danych parametru.

QueryStringParameter(String, String)

Inicjuje nowe nazwane wystąpienie QueryStringParameter klasy przy użyciu określonego ciągu w celu zidentyfikowania pola ciągu zapytania, z którym ma być powiązane.

QueryStringParameter(String, TypeCode, String)

Inicjuje nowe nazwane i silnie typizowane wystąpienie QueryStringParameter klasy przy użyciu określonego ciągu w celu zidentyfikowania pola ciągu zapytania, z którym ma być powiązane.

Właściwości

ConvertEmptyStringToNull

Pobiera lub ustawia wartość wskazującą, Parameter czy wartość, którą obiekt jest powiązany, powinna zostać przekonwertowana na null wartość , jeśli jest Emptyto .

(Odziedziczone po Parameter)
DbType

Pobiera lub ustawia typ bazy danych parametru.

(Odziedziczone po Parameter)
DefaultValue

Określa wartość domyślną parametru, jeśli wartość parametru jest powiązana z niezainicjowaną, gdy Evaluate(HttpContext, Control) metoda jest wywoływana.

(Odziedziczone po Parameter)
Direction

Wskazuje, czy Parameter obiekt jest używany do powiązania wartości z kontrolką, czy kontrolki można użyć do zmiany wartości.

(Odziedziczone po Parameter)
IsTrackingViewState

Pobiera wartość wskazującą, czy Parameter obiekt zapisuje zmiany w stanie widoku.

(Odziedziczone po Parameter)
Name

Pobiera lub ustawia nazwę parametru.

(Odziedziczone po Parameter)
QueryStringField

Pobiera lub ustawia nazwę pola ciągu zapytania powiązanego z parametrem.

Size

Pobiera lub ustawia rozmiar parametru.

(Odziedziczone po Parameter)
Type

Pobiera lub ustawia typ parametru.

(Odziedziczone po Parameter)
ValidateInput

Pobiera lub ustawia, czy wartość parametru ciągu zapytania jest weryfikowana, czy nie.

ViewState

Pobiera słownik informacji o stanie, który umożliwia zapisanie i przywrócenie stanu Parameter widoku obiektu na wielu żądaniach dla tej samej strony.

(Odziedziczone po Parameter)

Metody

Clone()

Zwraca duplikat bieżącego QueryStringParameter wystąpienia.

Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
Evaluate(HttpContext, Control)

Aktualizacje i zwraca wartość QueryStringParameter obiektu.

GetDatabaseType()

DbType Pobiera wartość równoważną typowi CLR bieżącego Parameter wystąpienia.

(Odziedziczone po Parameter)
GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetType()

Type Pobiera bieżące wystąpienie.

(Odziedziczone po Object)
LoadViewState(Object)

Przywraca wcześniej zapisany stan widoku źródła danych.

(Odziedziczone po Parameter)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
OnParameterChanged()

Wywołuje metodę OnParametersChanged(EventArgs) kolekcji ParameterCollection zawierającej Parameter obiekt.

(Odziedziczone po Parameter)
SaveViewState()

Zapisuje zmiany w Parameter stanie widoku obiektu od czasu opublikowania strony z powrotem na serwerze.

(Odziedziczone po Parameter)
SetDirty()

Oznacza obiekt tak Parameter , aby jego stan był rejestrowany w stanie widoku.

(Odziedziczone po Parameter)
ToString()

Konwertuje wartość tego wystąpienia na jego równoważną reprezentację w postaci ciągu.

(Odziedziczone po Parameter)
TrackViewState()

Parameter Powoduje, że obiekt śledzi zmiany w stanie widoku, dzięki czemu można je przechowywać w obiekcie kontrolki ViewState i utrwalać w żądaniach dla tej samej strony.

(Odziedziczone po Parameter)

Jawne implementacje interfejsu

ICloneable.Clone()

Zwraca duplikat bieżącego Parameter wystąpienia.

(Odziedziczone po Parameter)
IStateManager.IsTrackingViewState

Pobiera wartość wskazującą, czy Parameter obiekt zapisuje zmiany w stanie widoku.

(Odziedziczone po Parameter)
IStateManager.LoadViewState(Object)

Przywraca wcześniej zapisany stan widoku źródła danych.

(Odziedziczone po Parameter)
IStateManager.SaveViewState()

Zapisuje zmiany w Parameter stanie widoku obiektu od czasu opublikowania strony z powrotem na serwerze.

(Odziedziczone po Parameter)
IStateManager.TrackViewState()

Parameter Powoduje, że obiekt śledzi zmiany w stanie widoku, dzięki czemu można je przechowywać w obiekcie kontrolki ViewState i utrwalać w żądaniach dla tej samej strony.

(Odziedziczone po Parameter)

Dotyczy

Zobacz też