gpt4 book ai didi

c# - 将 List 保存到 ASP.NET 中的 session

转载 作者:行者123 更新时间:2023-11-30 18:05:30 26 4
gpt4 key购买 nike

CartItems 保存在 SQL 数据库中。

我想将所有 CartItems 放在一个列表中并传输到 Instance.Items。

Instance 变量正在保存到 session 中。

代码如下。

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;
}

最佳答案

如果您将整个对象提交给 session ,则项目应存储在与对象的 session 中。

为什么不做这样的事情呢?:

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;
}
}

关于c# - 将 List<CartItem> 保存到 ASP.NET 中的 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5564359/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com