Asp.net Sepet Uygulaması
Ben bir ASP.Net E-ticaret sitesi yapıyorum, fakat sepeteat buton içeriğini ve kullanıcı veya oturum bazlı sepetdetay sayfasını yazamadım, bana yardımcı olabilirmisiniz??
Bahsettiğin sayfa SepetDetay sayfasını görmediğimiz için bilemiyorum. Sepete Ata basınca veritabanına ekliyorsa komut doğrudur. Redirect de olunca SepetDetaya gelirse komut tamamen doğrudur. Gerisi SepetDetay sayfada olanlara bağlı
sepet detay sayfası şu şekilde: SqlConnection cnn; protected void Page_Load(object sender, EventArgs e) { cnn = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionWind"].ConnectionString); if (IsPostBack) return; SepetGetir(); } private void SepetGetir() { if(Session["sepet"] !=null) { cnn.Open(); SqlDataAdapter da = new SqlDataAdapter("select s.ID,ü.ÜrünAdi,ü.Fiyat,ü.Stok,s.Adet from Ürün ü join Sepet s on ü.ID=s.ÜrünID", ConfigurationManager.ConnectionStrings["ConnectionWind"].ConnectionString); DataTable dt = new DataTable(); da.Fill(dt); dt = ataTable)Session["sepet"]; DataList1.DataSource = dt.DefaultView; DataList1.DataBind(); cnn.Close(); } } protected void DataList1_ItemCommand(object source, DataListCommandEventArgs e) { if(e.CommandName.ToString()=="sil") { Sil(e.CommandArgument.ToString()); SepetGetir(); } } public void Sil(string ID) { DataTable dt = new DataTable(); if(HttpContext.Current.Session["sepet"] !=null) { dt = ataTable)HttpContext.Current.Session["sepet"]; for (int i = 0; i < dt.Rows.Count; i++) { if(dt.Rows["ID"].ToString()==ID) { dt.Rows.Delete(); HttpContext.Current.Session["sepet"] = dt; break; } } } } protected void btnSiparis_Click(object sender, EventArgs e) { ifataList1 == null) { SepetGetir(); } else { Response.Redirect("Adres.aspx"); } }
yukarıda yazdığım kod sepetdetay.aspx sayfasına ait, projeyi çalıştırdığımda neden datalist i göremiyorum?? sadece siparis ver butonu çıkıyor..(acaba sepetgetir methodunun içine yazdığım sorgumu yanlış oldu?)
Mesaj 08.12.2015 15:36:10 tarihinde Burçin tarafından düzenlenmiştir.
Burçin şunu dedi: sepet detay sayfası şu şekilde: SqlConnection cnn; protected void Page_Load(object sender, EventArgs e) protected void Page_Load(object sender, EventArgs e) { cnn = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionWind"].ConnectionString); if (IsPostBack) return; SepetGetir(); } private void SepetGetir() { if(Session["sepet"] !=null) { cnn.Open(); SqlDataAdapter da = new SqlDataAdapter("select s.ID,ü.ÜrünAdi,ü.Fiyat,ü.Stok,s.Adet from Ürün ü join Sepet s on ü.ID=s.ÜrünID", ConfigurationManager.ConnectionStrings["ConnectionWind"].ConnectionString); DataTable dt = new DataTable(); da.Fill(dt); dt = <img src=../Resimler/Smiley/7.gif>ataTable)Session["sepet"]; DataList1.DataSource = dt.DefaultView; DataList1.DataBind(); cnn.Close(); } } protected void DataList1_ItemCommand(object source, DataListCommandEventArgs e) { if(e.CommandName.ToString()=="sil") { Sil(e.CommandArgument.ToString()); SepetGetir(); } } public void Sil(string ID) { DataTable dt = new DataTable(); if(HttpContext.Current.Session["sepet"] !=null) { dt = <img src=../Resimler/Smiley/7.gif>ataTable)HttpContext.Current.Session["sepet"]; for (int i = 0; i < dt.Rows.Count; i++) { if(dt.Rows<i>["ID"].ToString()==ID) { dt.Rows<i>.Delete(); HttpContext.Current.Session["sepet"] = dt; break; } } } } protected void btnSiparis_Click(object sender, EventArgs e) { if<img src=../Resimler/Smiley/7.gif>ataList1 == null) { SepetGetir(); } else { Response.Redirect("Adres.aspx"); } } |
SepetGetir metodunu şöyle düzeltir misin: http://paste.ubuntu.com/13835639/
dediğiniz gibi yapınca sepete at butonuna basınca sadece postback oluyo fakat bu sefer sepetdetay sayfası açılmıyor??, yani benim demek istediğim sepeteat butonuna basınca sepetdetay sayfasına gitsin ordaki datalistte sepete attığım ürünü görebileyim..
Mesaj 09.12.2015 00:18:00 tarihinde Burçin tarafından düzenlenmiştir.
Burçin şunu dedi: dediğiniz gibi yapınca sepete at butonuna basınca sadece postback oluyo fakat bu sefer sepetdetay sayfası açılmıyor??, yani benim demek istediğim sepeteat butonuna basınca sepetdetay sayfasına gitsin ordaki datalistte sepete attığım ürünü görebileyim.. Mesaj 09.12.2015 00:18:00 tarihinde Burçin tarafından düzenlenmiştir. |
Şevkini kırmak istemem ama bu çok basit bir şey. Önceki gönderinde dedin ki Sepete At butonuna basınca ürünü veritabanındaki sepet tablosuna ekliyor. Yapman gereken şeyler şu:
1. Sepete At butonuna basılınca insert yapılıyor, connection.close olmadan önce Response.Redirect("SepetDetay.aspx"); yazıp yönlenmesini sağla.
2. Veritabanında olan sepetteki veriyi datalistte göster. Yani bu da basit bir SQL sorgusu. Şöyle yapardım: Select * from Sepet Where KullanıcıID = '"+Request.QueryString["UserID"]+"'. Bu yani. Sepetteki veri kullanıcıya göre gelecek sonuçta. Hangi kullanıcıyla giriş yapılmışsa onun sepeti gelmeli değil mi? Bu kadar komut yazıp yapamaman ilginç geliyor bana.
O şekilde yaptığım halde bile gelmiyor, ben bir de sepetdetay.aspx in sayfa tasarımı kodlarını göndereyim size;
AD
FIYAT
ADET
SIL
<%#Eval("UrunAdı") %>
<%#Eval("Fiyat") %>
<%#Eval("Adet") %>
Mesaj 09.12.2015 12:01:14 tarihinde Burçin tarafından düzenlenmiştir.