Asp.net Query String Kullanımı

Asp.net Query String Kullanımı

Kaynak : www.webbilgileri.com

Asp.net Query String Kullanımı

  Bu makalemizde Asp.net uygulamalarında kullanılan Ouery string kodu açıklamaya çalışacağız.QueryString kodu makalegöster gibi sayfalarımızda kullanıdığımız bir koddur QueryString gelen değer ile veritabanından gelen değeri karşılaştırıp veritabanındaki verilerin detaylarına gitmemizi sağlar.
  Öncelikle makale adında bir veritabanımız olduğunu varsayalım. makale veritabanımızın alanları: makaleid , Baslik, yazar, makale
SQL veritabanı için:
makaleler.aspx.cs:

 protected void Page_Load(object sender, EventArgs e)
  {
    string bg = ConfigurationManager.ConnectionStrings["LocalSqlserver"].ConnectionString;
    SqlConnection baglanti = new SqlConnection(bg);
    SqlCommand komut = new SqlCommand("Select  * From makale", baglanti);
    DataTable veriTablosu = new DataTable();
    SqlDataAdapter veriAdaptoru = new SqlDataAdapter(komut);   
    baglanti.Open();
    veriAdaptoru.Fill(veriTablosu);
    SqlDataReader oku = komut.ExecuteReader();
    if (oku.Read())
    {
    DataList1.DataSource = veriTablosu;
    DataList1.DataBind();
    }
    baglanti.Close();
  }
  Bu şekilde datalist kontrolümüzü doldurduk ve
makaleler.aspx:
    <asp:DataList ID="DataList1" runat="server" DataKeyField="makaleid">
        <ItemTemplate>
           <table border="0">
           <tr><asp:HyperLink ID="HyperLink1" runat="server" Text ='<%# Eval("Baslik") %>' NavigateUrl ='<%# "~/makalegoster.aspx?Makaleid="+Eval("Makaleid")%>'>HyperLink</asp:HyperLink></td></tr>                 
           </table>    
         </ItemTemplate>
         <AlternatingItemStyle BackColor="Gainsboro" />
     </asp:DataList>

 Şeklinde datalistimize eklediğimiz hyperlinle makalegoster.aspx sayfamıza makaleid'sine gönderiyoruz.Makalegöster sayfamızdaki kod:

makalegoster.aspx.cs:

 protected void Page_Load(object sender, EventArgs e)
  {
    string bg = ConfigurationManager.ConnectionStrings["LocalSqlserver"].ConnectionString;
    SqlConnection baglanti = new SqlConnection(bg);
    SqlCommand komut = new SqlCommand("Select * From makale where makaleid= @ Makaleid", baglanti);
    komut.Parameters.AddWithValue("@Makaleid", Convert.ToInt32(Request.QueryString["makaleid"]));
    komut.Connection = baglanti;
    SqlDataAdapter veriAdaptoru = new SqlDataAdapter(komut);
    DataTable veriTablosu = new DataTable();
    baglanti.Open();
    veriAdaptoru.Fill(veriTablosu);
    SqlDataReader oku = komut.ExecuteReader();
     {
        if (oku.Read())
   {
      Response.Write("<br/>"+oku["makale"]);
   }
     }
  }
 Görüldüğü gibi where ile query string'ten gelen değeri veritabanında makaleid değeri ile karşılaştırdık ve o makaleid'ye ait detayları sayfamıza yazdırdı.
 web.config dosyasındaki connectionString bloğunu kendinize göre ayarlayınız.
<connectionStrings>
     
<add name="LocalSqlserver"
       connectionString="Data Source=.\SQLEXPRESS;Integrated Security=True; User Instance=True;AttachDBFilename=|DataDirectory|aspnetdb.mdf;" providerName="System.Data.SqlClient">
     
</add>
  </connectionStrings>


Access Veri tabanı için:
   App_Data içinde aspNetDb.mdb adında bir veri tabanımız olduğunu var sayalım.makale veritabanımızın alanları: makaleid , Baslik, yazar, makale
makaleler.aspx.cs:
 protected void Page_Load(object sender, EventArgs e)
  {
      
    OleDbConnection baglanti = new OleDbConnection("Provider=Microsoft.Jet.Oledb.4.0; Data Source=" + Server.MapPath("~/App_Data\\ASPNetDB.mdb"));
    OleDbCommand komut = new OleDbCommand("select * From makale where makaleid = @ makaleid", baglanti);
    komut.Parameters.AddWithValue("@Makaleid", Convert.ToInt32(Request.QueryString["makaleid"]));
    DataSet Mydataset = new DataSet();
    OleDbDataAdapter MYdataAdap = new OleDbDataAdapter(komut);
    baglanti.Open();
    veriAdaptoru.Fill(veriTablosu);
    OleDbDataReader oku = komut.ExecuteReader();
    if (oku.Read())
    {
      DataList1.DataSource = veriTablosu;
      DataList1.DataBind();
    }
    baglanti.Close();
  }
  Bu şekilde datalist kontrolümüzü doldurduk ve
makaleler.aspx :
    <asp:DataList ID="DataList1" runat="server" DataKeyField="makaleid">
        <ItemTemplate>
           <table border="0">
           <tr><asp:HyperLink ID="HyperLink1" runat="server" Text ='<%# Eval("Baslik") %>' NavigateUrl ='<%# "~/makalegoster.aspx?Makaleid="+Eval("Makaleid")%>'>HyperLink</asp:HyperLink></td></tr>                 
           </table>    
         </ItemTemplate>
         <AlternatingItemStyle BackColor="Gainsboro" />
     </asp:DataList>

 Şeklinde datalistimize eklediğimiz hyperlinle makalegoster.aspx sayfamıza makaleid'sine gönderiyoruz.Makalegöster sayfamızdaki kod:
makalegoster.aspx.cs:
 protected void Page_Load(object sender, EventArgs e)
  {
  
    OleDbConnection baglanti = new OleDbConnection("provider=microsoft.jet.oledb.4.0; data source=" + Server.MapPath("~/App_Data/aspNetDb.mdb"));
    string strsql="Select * from makale where (makaleid = @ makaleid";
    OleDbCommand komut=new OleDbCommand(strsql,baglanti);
    komut.Parameters.AddWithValue("@makaleid",Convert.ToInt32(Request.QueryString["makaleid"]));
    komut.Connection=baglanti;
    baglanti.Open();
    OleDbDataReader oku=komut.ExecuteReader();
    {
        if(oku.Read())
        {
            Response.Write("<br/>"+oku["makale"]);
        }
    }
  }
  Görüldüğü gibi where ile query string'ten gelen değeri veritabanında makaleid değeri ile karşılaştırdık ve o makaleid'ye ait detayları sayfamıza yazdırdı.

Yorumlar