QueryStringParameter Klasse

Definition

Bindet den Wert des Felds der Abfragezeichenfolge einer HTTP-Anforderung an ein Parameterobjekt.

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

Beispiele

Das folgende Beispiel zeigt, wie Sie ein QueryStringParameter -Objekt erstellen, das als Filter verwendet wird, wenn Sie Daten in einem GridView Steuerelement anzeigen. Sie fügen das QueryStringParameter -Objekt der AccessDataSource -Auflistung des Steuerelements FilterParameters hinzu. Das Parameterobjekt bindet den Wert des Abfragezeichenfolgenfelds mit dem Namen country an seine FilterExpression Zeichenfolge. Da für den Parameter keine DefaultValue Eigenschaft angegeben wird, löst das Steuerelement eine Ausnahme ausNullReferenceException, AccessDataSource wenn kein Feld mit dem Namen mit country der Abfragezeichenfolge übergeben wird. Wenn ein Feld mit dem Namen country übergeben wird, aber keinen Wert aufweist, zeigt das GridView Steuerelement keine Daten an.

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

Das folgende Beispiel zeigt, wie Sie mithilfe einer parametrisierten SQL-Abfrage ein QueryStringParameter Objekt zum Anzeigen von Daten aus einer Access-Datenbank erstellen. Das AccessDataSource -Objekt ruft Datensätze ab, die dann in einem GridView -Steuerelement angezeigt werden. Das GridView Steuerelement kann auch bearbeitet werden und ermöglicht Benutzern, die status von Aufträgen in der Tabelle Northwind Traders Orders zu aktualisieren.

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

Hinweise

Sie können die QueryStringParameter -Klasse verwenden, um den Wert eines Felds, das als Teil einer HTTP-Anforderungsabfragezeichenfolge übergeben wird, an einen Parameter zu binden, der in einer parametrisierten Abfrage oder einem Befehl verwendet wird. Das Feld wird aus der QueryString Auflistung abgerufen.

Steuerelemente, die Daten an den Parameter binden, können eine Ausnahme auslösen, wenn auf ein QueryStringParameter Objekt verwiesen wird, aber kein entsprechendes Name/Wert-Paar der Abfragezeichenfolge übergeben wird. Ebenso werden möglicherweise keine Daten angezeigt, wenn der Name des Abfragezeichenfolgenfelds ohne einen entsprechenden Wert übergeben wird. Um diese Situationen zu vermeiden, legen Sie ggf. die DefaultValue -Eigenschaft fest.

Die QueryStringParameter -Klasse stellt die QueryStringField -Eigenschaft bereit, die den Namen des Abfragezeichenfolgenwerts angibt, an den gebunden werden soll. Außerdem werden die Eigenschaften bereitgestellt, die von der Parameter -Klasse geerbt werden.

Wichtig

Die QueryStringParameter -Klasse überprüft nicht den übergebenen Wert, sie stellt den Rohwert bereit. Sie können jedoch den Wert eines QueryStringParameter Objekts in einem Datenquellensteuerelement überprüfen. Behandeln Sie hierzu das SelectingEreignis , Updating, Insertingoder Deleting des Datenquellensteuerelements, und überprüfen Sie den Parameterwert im Ereignishandler. Wenn der Wert des Parameters die Validierungstests nicht besteht, können Sie den Datenvorgang abbrechen, indem Sie die Cancel -Eigenschaft der zugeordneten CancelEventArgs Klasse auf truefestlegen.

Konstruktoren

QueryStringParameter()

Initialisiert eine neue unbenannte Instanz der QueryStringParameter-Klasse.

QueryStringParameter(QueryStringParameter)

Initialisiert eine neue Instanz der QueryStringParameter-Klasse, wobei die Werte der Instanz verwendet werden, die vom original-Parameter angegeben wird.

QueryStringParameter(String, DbType, String)

Initialisiert eine neue benannte Instanz der QueryStringParameter-Klasse, wobei das angegebene Abfragezeichenfolgenfeld und der Datentyp des Parameters verwendet werden.

QueryStringParameter(String, String)

Initialisiert eine neue benannte Instanz der QueryStringParameter-Klasse, wobei mit der angegebenen Zeichenfolge das Feld der Abfragezeichenfolge angegeben wird, an das die Bindung erfolgen soll.

QueryStringParameter(String, TypeCode, String)

Initialisiert eine neue benannte und stark typisierte Instanz der QueryStringParameter-Klasse, wobei die angegebene Zeichenfolge verwendet wird, um das Feld der Abfragezeichenfolge zu identifizieren, an das die Bindung erfolgen soll.

Eigenschaften

ConvertEmptyStringToNull

Ruft einen Wert ab oder legt einen Wert fest, der angibt, ob der Wert, an den das Parameter-Objekt gebunden ist, nach null konvertiert werden soll, wenn er Empty ist.

(Geerbt von Parameter)
DbType

Ruft den Datenbanktyp des Parameters ab oder legt diesen fest.

(Geerbt von Parameter)
DefaultValue

Gibt einen Standardwert für den Parameter an, wenn der Wert, an den der Parameter gebunden ist, beim Aufrufen der Evaluate(HttpContext, Control)-Methode nicht initialisiert ist.

(Geerbt von Parameter)
Direction

Gibt an, ob das Parameter-Objekt zum Binden eines Werts an ein Steuerelement oder das Steuerelement zum Ändern des Werts verwendet werden kann.

(Geerbt von Parameter)
IsTrackingViewState

Ruft einen Wert ab, der angibt, ob das Parameter-Objekt Änderungen des Ansichtszustands speichert.

(Geerbt von Parameter)
Name

Ruft den Namen des Parameters ab oder legt ihn fest.

(Geerbt von Parameter)
QueryStringField

Ruft den Namen des Abfragezeichenfolgenfelds ab, an das der Parameter gebunden wird, oder legt diesen fest.

Size

Ruft die Größe des Parameters ab oder legt sie fest.

(Geerbt von Parameter)
Type

Ruft den Typ des Parameters ab oder legt ihn fest.

(Geerbt von Parameter)
ValidateInput

Ruft ab oder legt fest, ob der Wert des Abfragezeichenfolgenparameters validiert wird oder nicht.

ViewState

Ruft ein Wörterbuch mit Zustandsinformationen ab, mit dem Sie den Ansichtszustand eines Parameter-Objekts über mehrere Anforderungen für dieselbe Seite hinweg speichern und wiederherstellen können.

(Geerbt von Parameter)

Methoden

Clone()

Gibt ein Duplikat der aktuellen QueryStringParameter-Instanz zurück.

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
Evaluate(HttpContext, Control)

Aktualisiert den Wert des QueryStringParameter-Objekts und gibt ihn zurück.

GetDatabaseType()

Ruft den DbType-Wert ab, der dem CLR-Typ der aktuellen Parameter-Instanz entspricht.

(Geerbt von Parameter)
GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
LoadViewState(Object)

Stellt den früher gespeicherten Ansichtszustand der Datenquellenansicht wieder her.

(Geerbt von Parameter)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
OnParameterChanged()

Ruft die OnParametersChanged(EventArgs)-Methode der ParameterCollection-Auflistung auf, die das Parameter-Objekt enthält.

(Geerbt von Parameter)
SaveViewState()

Speichert die Änderungen am Ansichtszustand des Parameter-Objekts seit dem Zeitpunkt, zu dem die Seite zurück an den Server gesendet wurde.

(Geerbt von Parameter)
SetDirty()

Markiert das Parameter-Objekt, damit sein Zustand im Ansichtszustand aufgezeichnet wird.

(Geerbt von Parameter)
ToString()

Konvertiert den Wert dieser Instanz in die entsprechende Zeichenfolgendarstellung.

(Geerbt von Parameter)
TrackViewState()

Bewirkt, dass das Parameter-Objekt Änderungen an ihrem Ansichtszustand nachverfolgt, damit sie im ViewState-Objekt des Steuerelements gespeichert und über Anforderungen der gleichen Seite hinweg beibehalten werden.

(Geerbt von Parameter)

Explizite Schnittstellenimplementierungen

ICloneable.Clone()

Gibt ein Duplikat der aktuellen Parameter-Instanz zurück.

(Geerbt von Parameter)
IStateManager.IsTrackingViewState

Ruft einen Wert ab, der angibt, ob das Parameter-Objekt Änderungen des Ansichtszustands speichert.

(Geerbt von Parameter)
IStateManager.LoadViewState(Object)

Stellt den früher gespeicherten Ansichtszustand der Datenquellenansicht wieder her.

(Geerbt von Parameter)
IStateManager.SaveViewState()

Speichert die Änderungen am Ansichtszustand des Parameter-Objekts seit dem Zeitpunkt, zu dem die Seite zurück an den Server gesendet wurde.

(Geerbt von Parameter)
IStateManager.TrackViewState()

Bewirkt, dass das Parameter-Objekt Änderungen an ihrem Ansichtszustand nachverfolgt, damit sie im ViewState-Objekt des Steuerelements gespeichert und über Anforderungen der gleichen Seite hinweg beibehalten werden.

(Geerbt von Parameter)

Gilt für:

Weitere Informationen