Parameter Sınıf

Tanım

Veri kaynağı denetimlerinin uygulama değişkenlerine, kullanıcı kimliklerine ve seçimlerine ve diğer verilere bağlanmak için kullandığı bir mekanizma sağlar. Tüm ASP.NET parametre türleri için temel sınıf görevi görür.

public ref class Parameter : ICloneable, System::Web::UI::IStateManager
public class Parameter : ICloneable, System.Web.UI.IStateManager
type Parameter = class
    interface ICloneable
    interface IStateManager
Public Class Parameter
Implements ICloneable, IStateManager
Devralma
Parameter
Türetilmiş
Uygulamalar

Örnekler

Aşağıdaki örnekte, sql sorgusunun Where yan tümcesinde bir DropDownList denetimin seçili değerinin nasıl kullanılacağı gösterilmektedir. Örnek, sınıfından ControlParameter türetilen sınıfını ControlParameter kullanır.

öğesi, SelectCommand değerinin gitmesi gereken "@Title" adlı bir parametreyle sorguyu DropDownList1 tanımlar. ControlParameter öğesi, "@Title" yer tutucusunun denetimin özelliğinin SelectedValueDropDownList1 değeriyle değiştirileceğini belirtir. ControlParameter öğesi, denetimin SelectParameters koleksiyonuna SqlDataSource eklenir.

<!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>

Aşağıdaki örnek öncekine benzer, ancak işaretleme yerine kod kullanır. Sayfa ilk kez yüklendiğinde, denetimin DropDownList seçili değeri yoktur ve DefaultValue nesnenin Parameter özelliği kullanılır.

<%@ Page Language="C#" CodeFile="param1acs.aspx.cs" Inherits="param1acs_aspx" %>
<!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">
    <div>
        <asp:DropDownList
          runat="server"
          AutoPostBack="True"
          id="DropDownList1">
            <asp:ListItem Value="USA">USA</asp:ListItem>
            <asp:ListItem Value="UK">UK</asp:ListItem>
         </asp:DropDownList>

        <asp:DataGrid
          runat="server"
          id="DataGrid1" />    
    </div>
    </form>
</body>
</html>
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="param1avb.aspx.vb" Inherits="param1avb_aspx" %>
<!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">
    <div>
        <asp:DropDownList
          runat="server"
          AutoPostBack="True"
          id="DropDownList1">
            <asp:ListItem Value="USA">USA</asp:ListItem>
            <asp:ListItem Value="UK">UK</asp:ListItem>
         </asp:DropDownList>

        <asp:DataGrid
          runat="server"
          id="DataGrid1" />    
    </div>
    </form>
</body>
</html>

Aşağıdaki kod, önceki örnekteki sayfanın arka planındaki kod sınıfını gösterir.

public partial class param1acs_aspx : System.Web.UI.Page 
{
    private void Page_Load(object sender, System.EventArgs e)
    {
        SqlDataSource sqlSource = new SqlDataSource(
          ConfigurationManager.ConnectionStrings["MyNorthwind"].ConnectionString,
          "SELECT FirstName, LastName FROM Employees WHERE Country = @country;");

        ControlParameter country = new ControlParameter();
        country.Name = "country";
        country.Type = TypeCode.String;
        country.ControlID = "DropDownList1";
        country.PropertyName = "SelectedValue";

        // If the DefaultValue is not set, the DataGrid does not
        // display anything on the first page load. This is because
        // on the first page load, the DropDownList has no
        // selected item, and the ControlParameter evaluates to
        // String.Empty.
        country.DefaultValue = "USA";

        sqlSource.SelectParameters.Add(country);

        // Add the SqlDataSource to the page controls collection.
        Page.Controls.Add(sqlSource);

        DataGrid1.DataSource = sqlSource;
        DataGrid1.DataBind();
    }
}
Partial Class param1avb_aspx
   Inherits System.Web.UI.Page
    Private Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)

        Dim sqlSource As SqlDataSource

        sqlSource = New SqlDataSource(ConfigurationManager.ConnectionStrings("MyNorthwind").ConnectionString, "SELECT FirstName, LastName FROM Employees WHERE Country = @country;")
        Dim country As New ControlParameter()
        country.Name = "country"
        country.Type = TypeCode.String
        country.ControlID = "DropDownList1"
        country.PropertyName = "SelectedValue"
        ' If the DefaultValue is not set, the DataGrid does not
        ' display anything on the first page load. This is because
        ' on the first page load, the DropDownList has no
        ' selected item, and the ControlParameter evaluates to
        ' String.Empty.
        country.DefaultValue = "USA"
        sqlSource.SelectParameters.Add(country)

        ' Add the SqlDataSource to the page controls collection.
        Page.Controls.Add(sqlSource)


        DataGrid1.DataSource = sqlSource
        DataGrid1.DataBind()

    End Sub
End Class

Aşağıdaki kod örneği, veri bağlama senaryolarında veri kaynağı denetimleri ve diğer denetimler tarafından kullanılabilecek yeni bir parametre türü oluşturmak için sınıfının nasıl genişletildiğini Parameter gösterir. Veri kaynağı denetimi, herhangi bir StaticParameter nesnenin (genellikle Web Forms sayfasında bildirilen bir dize) değerine bağlanmak için bir parametre kullanabilir.

namespace Samples.AspNet {

  using System;
  using System.ComponentModel;
  using System.Security.Permissions;
  using System.Web;
  using System.Web.UI;
  using System.Web.UI.WebControls;

  [AspNetHostingPermission(SecurityAction.Demand, Level=AspNetHostingPermissionLevel.Minimal)]
  public class StaticParameter : Parameter {

    public StaticParameter() {
    }
    // The StaticParameter(string, object) constructor
    // initializes the DataValue property and calls the
    // Parameter(string) constructor to initialize the Name property.
    public StaticParameter(string name, object value) : base(name) {
      DataValue = value;
    }
    // The StaticParameter(string, TypeCode, object) constructor
    // initializes the DataValue property and calls the
    // Parameter(string, TypeCode) constructor to initialize the Name and
    // Type properties.
    public StaticParameter(string name, TypeCode type, object value) : base(name, type) {
      DataValue = value;
    }
    // The StaticParameter copy constructor is provided to ensure that
    // the state contained in the DataValue property is copied to new
    // instances of the class.
    protected StaticParameter(StaticParameter original) : base(original) {
      DataValue = original.DataValue;
    }

    // The Clone method is overridden to call the
    // StaticParameter copy constructor, so that the data in
    // the DataValue property is correctly transferred to the
    // new instance of the StaticParameter.
    protected override Parameter Clone() {
      return new StaticParameter(this);
    }
    // The DataValue can be any arbitrary object and is stored in ViewState.
    public object DataValue {
      get {
        return ViewState["Value"];
      }
      set {
        ViewState["Value"] = value;
      }
    }
    // The Value property is a type safe convenience property
    // used when the StaticParameter represents string data.
    // It gets the string value of the DataValue property, and
    // sets the DataValue property directly.
    public string Value {
      get {
        object o = DataValue;
        if (o == null || !(o is string))
          return String.Empty;
        return (string)o;
      }
      set {
        DataValue = value;
        OnParameterChanged();
      }
    }

    // The Evaluate method is overridden to return the
    // DataValue property instead of the DefaultValue.
    protected override object Evaluate(HttpContext context, Control control) {

      if (context.Request == null)
          return null;

      return DataValue;
    }
  }
}
Imports System.ComponentModel
Imports System.Security.Permissions
Imports System.Web
Imports System.Web.UI
Imports System.Web.UI.WebControls

Namespace Samples.AspNet

<AspNetHostingPermission(SecurityAction.Demand, Level:=AspNetHostingPermissionLevel.Minimal)> _
Public Class StaticParameter
   Inherits Parameter


   Public Sub New()
   End Sub

  ' The StaticParameter(string, object) constructor
  ' initializes the DataValue property and calls the
  ' Parameter(string) constructor to initialize the Name property.
   Public Sub New(name As String, value As Object)
      MyBase.New(name)
      DataValue = value
   End Sub

   ' The StaticParameter(string, TypeCode, object) constructor
   ' initializes the DataValue property and calls the
   ' Parameter(string, TypeCode) constructor to initialize the Name and
   ' Type properties.
   Public Sub New(name As String, type As TypeCode, value As Object)
      MyBase.New(name, type)
      DataValue = value
   End Sub
   ' The StaticParameter copy constructor is provided to ensure that
   ' the state contained in the DataValue property is copied to new
   ' instances of the class.
   Protected Sub New(original As StaticParameter)
      MyBase.New(original)
      DataValue = original.DataValue
   End Sub

   ' The Clone method is overridden to call the
   ' StaticParameter copy constructor, so that the data in
   ' the DataValue property is correctly transferred to the
   ' new instance of the StaticParameter.
   Protected Overrides Function Clone() As Parameter
      Return New StaticParameter(Me)
   End Function

   ' The DataValue can be any arbitrary object and is stored in ViewState.
   Public Property DataValue() As Object
      Get
         Return ViewState("Value")
      End Get
      Set
         ViewState("Value") = value
      End Set
   End Property
   ' The Value property is a type safe convenience property
   ' used when the StaticParameter represents string data.
   ' It gets the string value of the DataValue property, and
   ' sets the DataValue property directly.
   Public Property Value() As String
      Get
         Dim o As Object = DataValue
         If o Is Nothing OrElse Not TypeOf o Is String Then
            Return String.Empty
         End If
         Return CStr(o)
      End Get
      Set
         DataValue = value
         OnParameterChanged()
      End Set
   End Property
   ' The Evaluate method is overridden to return the
   ' DataValue property instead of the DefaultValue.
   Protected Overrides Function Evaluate(context As HttpContext, control As Control) As Object
      If context Is Nothing Then
          Return Nothing
      Else
          Return DataValue
      End If
   End Function
End Class

End Namespace ' Samples.AspNet

Açıklamalar

Parameter sınıfı parametreli SQL sorgusundaki bir parametreyi, filtreleme ifadesini veya ASP.NET veri kaynağı denetiminin verileri seçmek, filtrelemek veya değiştirmek için kullandığı bir iş nesnesi yöntemi çağrısını temsil eder. Parameter nesneleri bir ParameterCollection nesnenin içinde yer alır. Parameter nesneleri, temsil ettikleri değişkenlerin değerlerini verilerle etkileşime geçmek için bir veri kaynağı denetimi tarafından kullanılan yönteme bağlamak için çalışma zamanında değerlendirilir.

Web tabanlı veri uygulamaları oluşturmak için veri kaynağı ve veriye bağlı denetimlerle türetilen Parameter sınıfları kullanın. Bu parametre sınıfları, Web uygulamalarında bulunan belirli türlerdeki değerleri SQL sorgu dizelerindeki yer tutuculara, iş nesnesi yöntemi parametrelerine ve daha fazlasına bağlamak için veri kaynağı denetimleri tarafından kullanılır. Aşağıdaki tabloda, ASP.NET dahil edilen parametre türleri listelenmiştir.

ControlParameter Bir Web sunucusu denetiminin tüm ortak özelliğini bağlar.
FormParameter Form alanını bağlar.
SessionParameter Oturum durumu alanını bağlar.
RouteParameter Yol URL'si parametresini bağlar.
CookieParameter Tanımlama bilgisi alanını bağlar.
QueryStringParameter Bir sorgu dizesi parametresi bağlar.
ProfileParameter Profil alanını bağlar.

Kendi özel parametre türlerinizi uygulamak istediğinizde temel Parameter sınıfı genişletin.

Parameternesneleri çok basittir: bir ve Type özelliğine sahiptirlerName, bildirim temelli olarak temsil edilebilirler ve birden çok HTTP isteğinde durumu izleyebilirler. Bir parametrenin bir DefaultValue değere bağlı olduğu, ancak değerin çalışma zamanında değerlendirildiğinde null olduğu durumlar için tüm parametreler bir özelliği destekler.

Veri kaynağı denetimine sahip bir nesne koleksiyonu Parameter kullanılırken bunların koleksiyondaki sırası önemli olabilir. Parametrelerin nasıl kullanıldığı hakkında daha fazla bilgi için bkz. SqlDataSource Denetimiyle Parametreleri Kullanma ve ObjectDataSource Denetimiyle Parametreleri Kullanma.

Oluşturucular

Parameter()

sınıfının yeni bir varsayılan örneğini Parameter başlatır.

Parameter(Parameter)

Özgün, belirtilen örneğin değerleriyle sınıfının yeni bir örneğini Parameter başlatır.

Parameter(String)

Belirtilen adı kullanarak sınıfının yeni bir örneğini Parameter başlatır.

Parameter(String, DbType)

Belirtilen adı ve veritabanı türünü kullanarak sınıfının yeni bir örneğini Parameter başlatır.

Parameter(String, DbType, String)

Belirtilen adı, belirtilen veritabanı türünü ve özelliği için belirtilen değeri kullanarak sınıfının yeni bir örneğini ParameterDefaultValue başlatır.

Parameter(String, TypeCode)

Belirtilen adı ve türü kullanarak sınıfının yeni bir örneğini Parameter başlatır.

Parameter(String, TypeCode, String)

Belirtilen adı, belirtilen türü ve özelliği için belirtilen dizeyi kullanarak sınıfın yeni bir örneğini ParameterDefaultValue başlatır.

Özellikler

ConvertEmptyStringToNull

Nesnenin bağlı olduğu değerin Parameter ise Emptydeğerine dönüştürülmesi null gerekip gerekmediğini belirten bir değer alır veya ayarlar.

DbType

Parametresinin veritabanı türünü alır veya ayarlar.

DefaultValue

yöntemi çağrıldığında Evaluate(HttpContext, Control) parametrenin başlatılmamış olarak bağlı olduğu değerin parametresi için varsayılan değeri belirtir.

Direction

Nesnenin Parameter bir değeri denetime bağlamak için kullanılıp kullanılmadığını veya denetimin değeri değiştirmek için kullanılıp kullanılamayacağını gösterir.

IsTrackingViewState

Nesnenin Parameter görünüm durumundaki değişiklikleri kaydedip kaydetmediğini belirten bir değer alır.

Name

Parametrenin adını alır veya ayarlar.

Size

Parametresinin boyutunu alır veya ayarlar.

Type

Parametrenin türünü alır veya ayarlar.

ViewState

Aynı sayfa için birden çok istekte bir nesnenin görünüm durumunu kaydetmenizi ve geri yüklemenizi sağlayan durum Parameter bilgileri sözlüğü alır.

Yöntemler

Clone()

Geçerli Parameter örneğin bir kopyasını döndürür.

ConvertDbTypeToTypeCode(DbType)

Bir DbType değeri eşdeğer TypeCode bir değere dönüştürür.

ConvertTypeCodeToDbType(TypeCode)

Bir TypeCode değeri eşdeğer DbType bir değere dönüştürür.

Equals(Object)

Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler.

(Devralındığı yer: Object)
Evaluate(HttpContext, Control)

Güncelleştirmeler ve nesnesinin Parameter değerini döndürür.

GetDatabaseType()

DbType Geçerli Parameter örneğin CLR türüne eşdeğer değeri alır.

GetHashCode()

Varsayılan karma işlevi işlevi görür.

(Devralındığı yer: Object)
GetType()

Type Geçerli örneğini alır.

(Devralındığı yer: Object)
LoadViewState(Object)

Veri kaynağı görünümünün daha önce kaydedilmiş görünüm durumunu geri yükler.

MemberwiseClone()

Geçerli Objectöğesinin sığ bir kopyasını oluşturur.

(Devralındığı yer: Object)
OnParameterChanged()

OnParametersChanged(EventArgs) nesnesini içeren Parameter koleksiyonun ParameterCollection yöntemini çağırır.

SaveViewState()

Sayfanın sunucuya Parameter geri gönderildiği zamandan bu yana nesnenin görünüm durumundaki değişiklikleri kaydeder.

SetDirty()

Nesnenin durumunun Parameter görünüm durumunda kaydedileceği şekilde işaretler.

ToString()

Bu örneğinin değerini eşdeğer dize gösterimine dönüştürür.

TrackViewState()

Nesnenin görünüm durumundaki Parameter değişiklikleri izlemesine neden olur, böylece bunlar denetimin ViewState nesnesinde depolanabilir ve aynı sayfaya yönelik istekler arasında kalıcı hale getirilir.

Belirtik Arabirim Kullanımları

ICloneable.Clone()

Geçerli Parameter örneğin bir kopyasını döndürür.

IStateManager.IsTrackingViewState

Nesnenin Parameter görünüm durumundaki değişiklikleri kaydedip kaydetmediğini belirten bir değer alır.

IStateManager.LoadViewState(Object)

Veri kaynağı görünümünün daha önce kaydedilmiş görünüm durumunu geri yükler.

IStateManager.SaveViewState()

Sayfanın sunucuya Parameter geri gönderildiği zamandan bu yana nesnenin görünüm durumundaki değişiklikleri kaydeder.

IStateManager.TrackViewState()

Nesnenin görünüm durumundaki Parameter değişiklikleri izlemesine neden olur, böylece bunlar denetimin ViewState nesnesinde depolanabilir ve aynı sayfaya yönelik istekler arasında kalıcı hale getirilir.

Şunlara uygulanır

Ayrıca bkz.