SA.
ASP.NET alışveriş sistemi yapıyorum. Sepeti sessionlarla yaptım.
Sepete ürün ekleme kodlarım bunlar :
public **** Ekle(string id, string model, int adet, int fiyat)
{
if (!Page.IsPostBack)
{
DataTable dt = new DataTable(); // Sepeti tutacağımız bir dt oluşturuyoruz.
if (HttpContext.Current.Session["Sepet"] != null) // daha önceden sepet oluşturulmuşmu diye bakıyoruz.
{
dt = (DataTable)HttpContext.Current.Session["Sepet"]; // session varsa sessionu dt ye aktar.
}
else //session yok ise yani sepet daha önce oluşturulmamışsa eğeter dtyi oluşturuyoruz.
{
dt.Columns.Add("id"); // Dt ye id colonunu ekliyoruz.
dt.Columns.Add("Model");
dt.Columns.Add("Fiyat");
dt.Columns.Add("Adet");
dt.Columns.Add("Tutar");
}
bool varmi = Kontrol(id.ToString());//kontrol methoda gelen id değeri gönderdik böylece aynı id ye sahip olup olmadığını kontrol ediyor ürün varsa adeti arttırır.
if (varmi == false)
{
DataRow drow = dt.NewRow();
drow["id"] = id;
drow["Model"] = model;
drow["Fiyat"] = fiyat;
drow["Adet"] = adet;
drow["Tutar"] = (fiyat * adet).ToString();
dt.Rows.Add(drow);
}
else
{
//Artir(id, adet, fiyat);//eğer ürün varsa adetini arttır.
}
HttpContext.Current.Session["Sepet"] = dt;
}
}
public double SepetToplam()
{
double toplam = 0;
if (HttpContext.Current.Session["Sepet"] != null)
{
DataTable dt = new DataTable();
dt = (DataTable)HttpContext.Current.Session["Sepet"];
for (int i = 0; i < dt.Rows.Count; i++)
{
toplam += Convert.ToDouble(dt.Rows["Tutar"].ToString());
}
}
return toplam;
}
public **** Sil(string id)
{
DataTable dt = new DataTable();
if (HttpContext.Current.Session["Sepet"] != null)
{
dt = (DataTable)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;
}
}
}
}
private bool Kontrol(string id)
{
bool r = false;
DataTable dt = new DataTable();
if (HttpContext.Current.Session["Sepet"] != null)
{
for (int i = 0; i < dt.Rows.Count; i++)
{
if (dt.Rows["id"].ToString() == id)
{
r = true;
break;
}
}
}
return r;
}
private **** SepetGetir()
{
if (Session["Sepet"] != null)
{
DataTable dt = new DataTable();
dt = (DataTable)Session["Sepet"];
rptSepetCek.DataSource = dt.DefaultView;
rptSepetCek.DataBind();
lblToplam.Text = "TOPLAM : " + SepetToplam().ToString() + " TL";
}
}
protected **** rptSepetCek_ItemCommand(object source, RepeaterCommandEventArgs e)
{
if (e.CommandName.ToString() == "sil")//command name sil ise
{
Sil(e.CommandArgument.ToString());//yazdığımız sil methoduna o anki ürünün id değerini gönderiyoruz
SepetGetir();// sepetin son halini birdaha ekrana getiriyoruz
}
}
------------------------------------------------------------------------------------
Fakat bir sorunum var ben sepete istediğim kadar veri ekletiyorum burada sorun yok ama alışverişi tamamla kısmını nasıl yapacağımı bulamadım bi fikirde geliştiremedim. Fikri olan veya daha önce yapmış arkadaşlar lütfen bi yardım edermisiniz ?
ASP.NET alışveriş sistemi yapıyorum. Sepeti sessionlarla yaptım.
Sepete ürün ekleme kodlarım bunlar :
public **** Ekle(string id, string model, int adet, int fiyat)
{
if (!Page.IsPostBack)
{
DataTable dt = new DataTable(); // Sepeti tutacağımız bir dt oluşturuyoruz.
if (HttpContext.Current.Session["Sepet"] != null) // daha önceden sepet oluşturulmuşmu diye bakıyoruz.
{
dt = (DataTable)HttpContext.Current.Session["Sepet"]; // session varsa sessionu dt ye aktar.
}
else //session yok ise yani sepet daha önce oluşturulmamışsa eğeter dtyi oluşturuyoruz.
{
dt.Columns.Add("id"); // Dt ye id colonunu ekliyoruz.
dt.Columns.Add("Model");
dt.Columns.Add("Fiyat");
dt.Columns.Add("Adet");
dt.Columns.Add("Tutar");
}
bool varmi = Kontrol(id.ToString());//kontrol methoda gelen id değeri gönderdik böylece aynı id ye sahip olup olmadığını kontrol ediyor ürün varsa adeti arttırır.
if (varmi == false)
{
DataRow drow = dt.NewRow();
drow["id"] = id;
drow["Model"] = model;
drow["Fiyat"] = fiyat;
drow["Adet"] = adet;
drow["Tutar"] = (fiyat * adet).ToString();
dt.Rows.Add(drow);
}
else
{
//Artir(id, adet, fiyat);//eğer ürün varsa adetini arttır.
}
HttpContext.Current.Session["Sepet"] = dt;
}
}
public double SepetToplam()
{
double toplam = 0;
if (HttpContext.Current.Session["Sepet"] != null)
{
DataTable dt = new DataTable();
dt = (DataTable)HttpContext.Current.Session["Sepet"];
for (int i = 0; i < dt.Rows.Count; i++)
{
toplam += Convert.ToDouble(dt.Rows["Tutar"].ToString());
}
}
return toplam;
}
public **** Sil(string id)
{
DataTable dt = new DataTable();
if (HttpContext.Current.Session["Sepet"] != null)
{
dt = (DataTable)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;
}
}
}
}
private bool Kontrol(string id)
{
bool r = false;
DataTable dt = new DataTable();
if (HttpContext.Current.Session["Sepet"] != null)
{
for (int i = 0; i < dt.Rows.Count; i++)
{
if (dt.Rows["id"].ToString() == id)
{
r = true;
break;
}
}
}
return r;
}
private **** SepetGetir()
{
if (Session["Sepet"] != null)
{
DataTable dt = new DataTable();
dt = (DataTable)Session["Sepet"];
rptSepetCek.DataSource = dt.DefaultView;
rptSepetCek.DataBind();
lblToplam.Text = "TOPLAM : " + SepetToplam().ToString() + " TL";
}
}
protected **** rptSepetCek_ItemCommand(object source, RepeaterCommandEventArgs e)
{
if (e.CommandName.ToString() == "sil")//command name sil ise
{
Sil(e.CommandArgument.ToString());//yazdığımız sil methoduna o anki ürünün id değerini gönderiyoruz
SepetGetir();// sepetin son halini birdaha ekrana getiriyoruz
}
}
------------------------------------------------------------------------------------
Fakat bir sorunum var ben sepete istediğim kadar veri ekletiyorum burada sorun yok ama alışverişi tamamla kısmını nasıl yapacağımı bulamadım bi fikirde geliştiremedim. Fikri olan veya daha önce yapmış arkadaşlar lütfen bi yardım edermisiniz ?