QueryStringParameter Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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
Beispiele
Das folgende Beispiel zeigt, wie Sie ein QueryStringParameter Objekt erstellen, das als Filter verwendet werden kann, 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 keine DefaultValue Eigenschaft für den Parameter 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 hat, 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, den 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 Abfragezeichenfolgennamen-Wert-Paar wird übergeben. Ebenso können sie keine Daten anzeigen, wenn der Name des Abfragezeichenfolgenfelds ohne einen entsprechenden Wert übergeben wird. Um diese Situationen zu vermeiden, legen Sie die DefaultValue -Eigenschaft gegebenenfalls 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 den übergebenen Wert nicht. Sie stellt den Rohwert bereit. Sie können jedoch den Wert eines QueryStringParameter Objekts in einem Datenquellensteuerelement überprüfen. Behandeln Sie hierzu das Selecting
Ereignis , Updating
, oder Inserting
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 true
festlegen.
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 |
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 |
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) |