如何使用数据库中的特定数据显示警报消息

本文关键字:显示 数据 消息 何使用 数据库 | 更新日期: 2023-09-27 18:05:12

实际上我想制作一个带有特定数据的警报消息,例如'product 1已达到其级别'。我不能这样做,所以我尝试了另一种方法来显示警报消息,但没有在其中使用特定的pid。

下面是我的代码:
SqlConnection connection = new SqlConnection("Data Source=aaaVAIO;InitialCatalog=System;Integrated Security=True");
SqlCommand abc = new SqlCommand("select pid, case when (Pamount <= SafetyStock) then 'has reached its limit!' end as Alert from Product ", connection);
try
    {
        connection.Open();
        SqlDataReader rdr = abc.ExecuteReader();
        while (rdr.Read())
        {
            ListBox1.Items.Add(rdr["alert"].ToString());
            foreach (ListItem li in ListBox1.Items)
            {
                if (li.Text.Equals("Limit stock has been reached"))
                {
                    ClientScriptManager def= Page.ClientScript;
                      {
                        string strconfirm = "<script>if(window.confirm('Limit Stock has been reached!')){window.location.href='/Inventory system/Manager/Updateproductdetails.aspx'}</script>";
                        def.RegisterClientScriptBlock(this.GetType(), "Confirm", strconfirm, false);
                      }
                }
            }
         }
         rdr.Close();
     }

在上面的代码中,我将sqlcommand输出存储在list box中,然后警报消息将根据列表内容显示警报消息。如果列表框中出现库存已达到限制消息,则会弹出警告消息。

实际上我想让它更具体,它显示了达到其极限的特定pid。例如,警报消息将显示消息'Product 1已达到其极限'

请建议我解决这个问题的方法。我应该先在gridview中存储值吗?或者有其他方法吗?提前谢谢你。

如何使用数据库中的特定数据显示警报消息

您可以将sql查询更改为仅显示金额为<=的项目到safetyStock:

SqlCommand abc = new SqlCommand("select pid from Product where Pamount <= SafetyStock", connection);

然后你的循环把它改成这样:

 while (rdr.Read())
            {
                ClientScriptManager def = Page.ClientScript;
                {
                    string strconfirm = "<script>if(window.confirm('Product " + rdr["pid"] + " has reached its limit')){window.location.href='/Inventory system/Manager/Updateproductdetails.aspx'}</script>";
                    def.RegisterClientScriptBlock(this.GetType(), "Confirm", strconfirm, false);
                }
            }