购物车项目保存在 SQL 数据库中。
我想将所有 CartItems 放在一个 List 中并转移到 Instance.Items。
The Instance变量正在保存到会话中。
代码如下。
public class ShoppingCart
{
public List<CartItem> Items { get; private set; }
public static SqlConnection conn = new SqlConnection(connStr.connString);
public static readonly ShoppingCart Instance;
static ShoppingCart()
{
if (HttpContext.Current.Session["ASPNETShoppingCart"] == null)
{
Instance = new ShoppingCart();
Instance.Items = new List<CartItem>();
HttpContext.Current.Session["ASPNETShoppingCart"] = Instance;
}
else
{
Instance = (ShoppingCart)HttpContext.Current.Session["ASPNETShoppingCart"];
}
}
返回 List 的代码。我想将从该函数返回的列表保存到 Instance.Items。这样就可以保存到session中了。
public static List<CartItem> loadCart(String CustomerId)
{
String sql = "Select * from Cart where CustomerId='" + CustomerId + "'";
SqlCommand cmd = new SqlCommand(sql, conn);
List<CartItem> lstCart = new List<CartItem>();
try
{
conn.Open();
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
CartItem itm = new CartItem(Convert.ToInt32(reader["ProductId"].ToString()));
itm.Quantity = Convert.ToInt32(reader["Quantity"].ToString());
lstCart.Add(itm);
}
}
catch (Exception ex)
{ }
finally
{
conn.Close();
}
return lstCart;
}
如果您将整个对象提交给会话,则这些项目应与该对象一起存储在会话中。
为什么不做这样的事情呢?:
public class ShoppingCart
{
public List<CartItem> Items { get; private set; }
public static SqlConnection conn = new SqlConnection(connStr.connString);
public static readonly ShoppingCart Instance;
static ShoppingCart RetrieveShoppingCart()
{
if (HttpContext.Current.Session["ASPNETShoppingCart"] == null)
{
Instance = new ShoppingCart();
Instance.Items = new List<CartItem>();
HttpContext.Current.Session["ASPNETShoppingCart"] = Instance;
}
else
{
Instance = (ShoppingCart)HttpContext.Current.Session["ASPNETShoppingCart"];
}
return Instance;
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)