Witam,
mam problem z dodawaniem produktów do koszyka. Po rejestracji nowego użytkownika próbuje dodać produkt do koszyka, niestety produkt nie zostaje dodany. Przy kolejnej próbie wszystko ok, produkt ląduje w koszyku. Może ktoś zerknąć i pomóc mi w jakiś sposób?
<%@ Page Title="" Language="C#" MasterPageFile="~/sklep.master" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %>
<%@ MasterType TypeName="sklep" %>
<%@ Register Assembly="Microsoft.Web.GeneratedImage" Namespace="Microsoft.Web" TagPrefix="cc1" %>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPl
aceHolder1" Runat="Server">
<asp:UpdateProgress ID="UpdateProgress1" runat="server" DisplayAfter="0"
AssociatedUpdatePanelID="upProdSzczeg
">
<ProgressTemplate>
<div>
Ładowanie...
</div>
</ProgressTemplate>
</asp:UpdateProgress>
<asp:UpdatePanel runat="server" ID="upProdSzczeg">
<ContentTemplate>
<asp:FormView runat="server" DataSourceID="SzczegolyProdZrodlo" ID="FormView1" DataKeyNames="ProdId"
EnableViewState="false">
<ItemTemplate>
<table style="font-size: 12px; width: 100%">
<tr>
<td style="width: 500px">
<b>
<span style="font-size: 18px">Szczegóły produktu</span>
</b>
</td><br /><br />
<td style="width: 250px" align="right">
Id produktu:
<asp:Label ID="lblProdId" runat="server" Text='<%# Eval("ProdId") %>'></asp:Label>
</td>
</tr>
<tr>
<td style="width: 500px">
Nazwa produktu:
<asp:Label ID="lblNazwaProd" runat="server" Text='<%# Eval("NazwaProd") %>'></asp:Label><br /><br />
Nazwa producenta:
<asp:Label ID="lblNazwaProducenta" runat="server" Text='<%# Eval("NazwaProducenta") %>'></asp:Label><br /><br />
Opis produktu:
<asp:Label ID="lblOpisProd" runat="server" Text='<%# Eval("OpisProd") %>'></asp:Label><br /><br />
Kategoria produktu:
<asp:Label ID="lblKategoria" runat="server" Text='<%# Eval("NazwaKat") %>'></asp:Label><br /><br />
Cena:
<asp:Label ID="lblCena" runat="server" Text='<%#String.Format("{0:##.00}", Eval("CenaSprzed")) %>'></asp:Label><br /><br />
Dostępna ilość produktu:
<asp:Label ID="lblIloscProd" runat="server" Text='<%# Eval("IloscProd") %>'></asp:Label><br /><br />
Uwagi:
<asp:Label ID="lblUwagi" runat="server" Text='<%# Eval("Uwagi") %>'></asp:Label><br /><br />
</td>
<td style="width: 250px" align="right">
<asp:Panel runat="server" ID="pnlZdjecie">
<cc1:GeneratedImage ID="GeneratedImage1" runat="server"
ImageHandlerUrl="~/Zdjecia.ashx" width="220" height="270" >
<Parameters>
<cc1:ImageParameter Name="imageid" Value='<%# Eval("ZdjId") %>'/>
</Parameters>
</cc1:GeneratedImage><br />
</asp:Panel>
</td>
</tr></table>
</ItemTemplate>
</asp:FormView>
<asp:SqlDataSource ID="SzczegolyProdZrodlo" runat="server"
SelectCommand="SELECT Produkt.ProdId, Produkt.NazwaProd, Produkt.NazwaProducenta, Produkt.OpisProd, Produkt.IloscProd, Kategorie.NazwaKat, Produkt.CenaSprzed, Produkt.Uwagi, Zdjecia.ZdjId FROM Produkt, Kategorie, Zdjecia WHERE (Produkt.KatId=Kategorie.KatId) AND (Produkt.ProdId=@ProdId) AND (Produkt.ZdjId=Zdjecia.ZdjId)"
ConnectionString="<%$ ConnectionStrings:svConnectionString %>" >
<SelectParameters>
<asp:QueryStringParameter Name="ProdId" QueryStringField="ProdId" DefaultValue="1" />
</SelectParameters>
</asp:SqlDataSource>
</ContentTemplate>
</asp:UpdatePanel>
<asp:Button runat="server" Text="Dodaj do koszyka" ID="btnDodajDoKosz"
onclick="btnDodajDoKosz_Click" />
</asp:Content>
using System;
using System.Collections;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.Security;
using sklepvenditaTableAdapters;
using System.Configuration;
using System.Web.UI.HtmlControls;
using System.Data;
using System.Web.UI.WebControls.WebParts;
using System.Data.SqlClient;
public partial class Default2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
try
{
if (!Page.User.Identity.IsAuthenticated)
{
this.Master.Informacja.Text = ">> Szczegóły produktu";
this.Master.KomunikatBledu.ForeColor = System.Drawing.Color.Green;
this.Master.KomunikatBledu.Text = "** Aby dodać produkt do koszyka, powinieneś być zalogowany!";
btnDodajDoKosz.Visible = false;
}
}
catch
{
this.Master.Informacja.Text = ">> Szczegóły produktu";
}
}
protected void btnDodajDoKosz_Click(object sender, EventArgs e)
{
if (Page.User.Identity.IsAuthenticated)
{
if (Page.User.IsInRole("Klient"))
{
KoszykTableAdapter polKoszyk = new KoszykTableAdapter();
MembershipUser obiektUzyt = Membership.GetUser();
Guid uzytkownik = (Guid)obiektUzyt.ProviderUserKey;
sklepvendita.KoszykDataTable Koszyk = polKoszyk.CzyIstnieje(uzytkownik);
object KoszId = null;
if (Koszyk.Rows.Count == 0)
{
KoszId = polKoszyk.WstawDoKoszyk(uzytkownik);
}
else
{
KoszId = int.Parse(Koszyk.Rows[0]["KoszId
"
]
.ToString
(
)
)
;
}
int ProdId = int.Parse(Request.QueryString[
"ProdId
"
]
.ToString
(
)
)
;
ProduktTableAdapter polProdukty = new ProduktTableAdapter();
sklepvendita.ProduktDataTable Produkty;
Produkty = polProdukty.PobierzProduktyId(ProdId);
decimal Cena = decimal.Parse(Produkty.Rows[0]
[
"CenaSprzed
"
]
.ToString
(
)
)
;
KoszSzczegolyTableAdapter polKoszSzczeg = new KoszSzczegolyTableAdapter();
sklepvendita.KoszSzczegolyDataTable KoszSzczeg = polKoszSzczeg.CzyJestProd1(uzytkownik, ProdId);
if (KoszSzczeg.Rows.Count == 0)
{
polKoszSzczeg.DodajDoKoszyka(int
.Parse
(KoszId
.ToString
(
)
)
, ProdId, 1, Cena, DateTime.Now);
}
else
{
int nowaIlosc = int.Parse(KoszSzczeg.Rows[0]["IloscZam
"
]
.ToString
(
)
) + 1;
decimal nowaCena = nowaIlosc * Cena;
int KoszSzczegId = int.Parse(KoszSzczeg.Rows[0]["Ko
szSzc
zegId
"
]
.ToString
(
)
)
;
polKoszSzczeg.AktProdKosz(nowaIlosc, nowaCena, DateTime.Now, KoszSzczegId);
}
Response.Redirect("Default5.aspx
?UserId
=
" + uzytkownik.ToString());
}
else
{
this.Master.KomunikatBledu.Text = "Aby móc kupować, musisz się zalogować";
this.Master.KomunikatBledu.ForeColor = System.Drawing.Color.Red;
}
}
else
{
this.Master.KomunikatBledu.Text = "** Zaloguj się, aby dokonać zakupu";
this.Master.KomunikatBledu.ForeColor = System.Drawing.Color.Red;
}
}
}