Ana Sayfa » Ders Notları ve Örnekler » ASP.NET » Sorgu Dizesi - QueryString

Uyarılar :
  • Bu sayfada yazılanlar yeniden yayınlanamaz.
  • Bu örnek ders sırasındaki anlatımlardan derlenmiştir. Özellikle bir makale şeklinde yazılmamıştır. Bilgilerde eksiklikler bulunabilir.
  • Sayfayı test etmek isterseniz "SorguDizesi_QueryString.aspx" adıyla kaydediniz.

QueryString (Sorgu Dizesi), tarayıcının adres çubuğunda görüntülenmek istenin sayfanın yolu ve adıyla birlikte bir soru işaretinden sonra yazılan kısımdır. Örneğin;

    http://www.turkegitim.net/SorguDizesi_QueryString.aspx?adi=ali&soyadi=ünlü

şeklindeki bir adresteki soru işaretinden sonra gelen;

    adi=ali&soyadi=ünlü

kısmı sorgu dizesidir.

Sorgu dizesi anahtar ve değer çiftleri içerir. Örneğimizdeki "adi" anahtar, değeri ise "ali" metnidir. QueryString 1'den fazla anahtar içeriyorsa sonraki işaretler bir & işaretinden sonra yazılır. Örneğimizde ikinci anahtar "soyadi", değeri ise "ünlü" metnidir.

Sorgu dizesi kullanımı, bir sayfaya veri gönderme yollarından birisidir. Sayfa kendine örnekteki şekilde gelen sorgu dizezindesi anahtar ve değerlere Page nesnesinin Request (istek) özelliğinin QueryString isimli NameValueCollection (isim değer koleksiyonu) türünden özelliği vasıtasıyla ulaşır.

QueryString özelliğinin "Get" metodu ile bir anahtarın mevcut olup olmadığını test edebiliriz. Get, anahtar mevcutsa değerini, aksi halde "null" döndürür. Alttaki örnekte de görüldüğü gibi kullanımı;

    if (Request.QueryString.Get("adi") == null) ... 

şeklindedir.

Üstteki gibi bir sınama yaptıktan sonra eğer anahtar mevcut ise, değerini (örnekte "ali" metni) almak için;

    Request.QueryString["adi"];

şeklinde bir ifade kullanırız.

Örnek :

<%@ Page Language="C#"  %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

    void Page_Load(Object o, EventArgs e)
	{
	
	    // Mesaj için kullanılan Label'e bir ön değer ata...
	    
	    lblMesaj.Text = "Sorgu dizesinden gelen 'adi' anahtarının değeri :";

	    // Eğer sorgu dizesinde (QueryString) "adi" isimli bir anahtar yoksa...
	    
	    if (Request.QueryString.Get("adi") == null)

	        // Mesaj Label'inin Text değerine anahtar ve değer gelmediğini bildiren bir mesaj ekle
	        
	        lblMesaj.Text += "(Sorgu dizesinde 'adi' isimli bir anahtar yok)";

        // Sorgu dizesinde "adi" isimli bir anahtar varsa...
        
        else

            // Sorgu dizesinde "adi" anahtarı varsa değerini mesaj Label'ine ekle.
            
            lblMesaj.Text += Request.QueryString["adi"];

	}    

</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
       
       <asp:Label ID="lblMesaj" runat="server" />
       
       <br />
       
       <a href="SorguDizesi_QueryString.aspx?adi=ali&soyadi=ünlü">Sorgu Dizesi Gönder</a>
       
       <br />(Sayfa ilk kez çalıştırıldığında adres çubuğunda bir sorgu dizesi
       olmadığından bir değer görüntülenmeyecektir. Sayfayı sorgu dizesi (QueryString)
       ile çağırmak için üstteki bağlantıyı tıklayın.)

    </form>
</body>
</html>
İletişim : hazirsite@gmail.com