代码 asp.net C# OLEDB、Cookie(如果其他)

本文关键字:如果 其他 Cookie asp net OLEDB 代码 | 更新日期: 2023-09-27 17:55:39

有人可以帮助理解这段代码吗?

protected void Page_Load(object sender, EventArgs e)
    {
        Database database = new Database();
        OleDbConnection conn = database.connectDatabase();
        if (Request.Cookies["BesteldeArtikelen"] == null)
        {
            lbl_leeg.Text = "Er zijn nog geen bestelde artikelen";
        }
        else
        {
            HttpCookie best = Request.Cookies["BesteldeArtikelen"];
            int aantal_bestel = best.Values.AllKeys.Length;
            int[] bestelde = new int[aantal_bestel];
            int index = 0;
            foreach (string art_id in best.Values.AllKeys) 
            {
                int aantalbesteld = int.Parse(aantalVoorArtikel(int.Parse(art_id)));
                int artikel_id = int.Parse(art_id); // moet getalletje zijn
                if (aantalbesteld != 0)  
                {
                    bestelde[index] = artikel_id;
                }
                index++;
            }
            OleDbCommand cmd = new OleDbCommand();
            cmd.Connection = conn;
            cmd.CommandText = "SELECT artikel_id, naam, prijs, vegetarische FROM artikel WHERE artikel_id IN (" +
                String.Join(", ", bestelde) + ")";

            try
            {
                conn.Open();
                OleDbDataReader reader = cmd.ExecuteReader();
                GridView1.DataSource = reader;
                GridView1.DataBind();
            }
            catch (Exception error)
            {
                errorMessage.Text = error.ToString();
            }
            finally
            {
                conn.Close();
            }
        }
    }

还有这部分代码我不太明白:

public string aantalVoorArtikel(object id)
    {
        int artikel_id = (int)id;
        if (Request.Cookies["BesteldeArtikelen"] != null &&
            Request.Cookies["BesteldeArtikelen"][artikel_id.ToString()] != null)
        {
            return Request.Cookies["BesteldeArtikelen"][artikel_id.ToString()];
        }
        else
        {
            return "0";
        }
    }

代码 asp.net C# OLEDB、Cookie(如果其他)

它从 cookie 中提取值并构建一个 int 数组。(如果 cookie 值为空,则显示一条消息)然后,在查询数据库时,将 int 数组用作 SQL IN 运算符的值。然后将结果集绑定到 GridView。