Udostępnij za pośrednictwem


SqlDataSource.SelectParameters Właściwość

Definicja

Pobiera kolekcję parametrów zawierającą parametry używane przez SelectCommand właściwość z SqlDataSourceView obiektu skojarzonego z kontrolką SqlDataSource .

public:
 property System::Web::UI::WebControls::ParameterCollection ^ SelectParameters { System::Web::UI::WebControls::ParameterCollection ^ get(); };
[System.Web.UI.PersistenceMode(System.Web.UI.PersistenceMode.InnerProperty)]
public System.Web.UI.WebControls.ParameterCollection SelectParameters { get; }
[<System.Web.UI.PersistenceMode(System.Web.UI.PersistenceMode.InnerProperty)>]
member this.SelectParameters : System.Web.UI.WebControls.ParameterCollection
Public ReadOnly Property SelectParameters As ParameterCollection

Wartość właściwości

Element ParameterCollection zawierający parametry używane przez SelectCommand właściwość .

Atrybuty

Przykłady

Poniższy przykład kodu przedstawia sposób pobierania danych z bazy danych Northwind w programie Microsoft SQL Server przez ustawienie SelectCommand właściwości na zapytanie SQL. Zapytanie SQL jest sparametryzowane, a symbol zastępczy we SelectCommand właściwości jest dopasowywany do obiektu dodanego ControlParameterSelectParameters do kolekcji. Kontrolka DropDownList , z którą ControlParameter jest powiązana, działa jako filtr dla tego, co jest wyświetlane w kontrolce ListBox .

Aby uzyskać informacje o innych typach parametrów, których można użyć, zobacz Parameter omówienie klasy.

Uwaga

Ponieważ parametr jest używany w klauzuli WHERE, użycie SelectParameters właściwości w przykładzie kodu jest funkcjonalnie równoważne użyciu FilterExpression właściwości i FilterParameters .

<!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" runat="server">

      <p><asp:dropdownlist
          id="DropDownList1"
          runat="server"
          autopostback="True">
          <asp:listitem selected="True">Sales Representative</asp:listitem>
          <asp:listitem>Sales Manager</asp:listitem>
          <asp:listitem>Vice President, Sales</asp:listitem>
      </asp:dropdownlist></p>

      <asp:sqldatasource
          id="SqlDataSource1"
          runat="server"
          connectionstring="<%$ ConnectionStrings:MyNorthwind%>"
          selectcommand="SELECT LastName FROM Employees WHERE Title = @Title">
          <selectparameters>
              <asp:controlparameter name="Title" controlid="DropDownList1" propertyname="SelectedValue"/>
          </selectparameters>
      </asp:sqldatasource>

      <p><asp:listbox
          id="ListBox1"
          runat="server"
          datasourceid="SqlDataSource1"
          datatextfield="LastName">
      </asp:listbox></p>

    </form>
  </body>
</html>
<!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" runat="server">

      <p><asp:dropdownlist
          id="DropDownList1"
          runat="server"
          autopostback="True">
          <asp:listitem selected="True">Sales Representative</asp:listitem>
          <asp:listitem>Sales Manager</asp:listitem>
          <asp:listitem>Vice President, Sales</asp:listitem>
      </asp:dropdownlist></p>

      <asp:sqldatasource
          id="SqlDataSource1"
          runat="server"
          connectionstring="<%$ ConnectionStrings:MyNorthwind%>"
          selectcommand="SELECT LastName FROM Employees WHERE Title = @Title">
          <selectparameters>
              <asp:controlparameter name="Title" controlid="DropDownList1" propertyname="SelectedValue"/>
          </selectparameters>
      </asp:sqldatasource>

      <p><asp:listbox
          id="ListBox1"
          runat="server"
          datasourceid="SqlDataSource1"
          datatextfield="LastName">
      </asp:listbox></p>

    </form>
  </body>
</html>

Uwagi

SelectCommand Jeśli właściwość zawiera sparametryzowane zapytanie SQL, SelectParameters kolekcja zawiera wszystkie Parameter obiekty, które odpowiadają symbolom zastępczym parametru w ciągu SQL.

W zależności od dostawcy ADO.NET kolejność parametrów w SelectParameters kolekcji może być ważna. Dostawcy System.Data.OleDb i System.Data.Odbc kojarzą parametry w kolekcji zgodnie z kolejnością wyświetlania parametrów w sparametryzowanym zapytaniu SQL. Dostawca System.Data.SqlClient , który jest domyślnym dostawcą ADO.NET dla SqlDataSource kontrolki, kojarzy parametry w kolekcji, pasując do nazwy parametru z aliasem zastępczym w zapytaniu SQL. Aby uzyskać więcej informacji na temat sparametryzowanych zapytań SQL i poleceń, zobacz Using Parameters with the SqlDataSource Control (Używanie parametrów z kontrolką SqlDataSource).

Właściwość SelectParameters pobiera SelectParameters właściwość zawartą przez SqlDataSourceView obiekt skojarzony z kontrolką SqlDataSource .

Ważne

Wartości są wstawiane do parametrów bez walidacji, co jest potencjalnym zagrożeniem bezpieczeństwa. Użyj zdarzenia, Selecting aby zweryfikować wartości parametrów przed wykonaniem zapytania. Aby uzyskać więcej informacji, zobacz Script Exploits Overview (Omówienie luk w zabezpieczeniach skryptów).

Dotyczy

Zobacz też