vb.net - 如何从访问数据库中获取具有数量的畅销产品并显示在标签上
问题描述
我正在做一个POS系统。在那,我必须在仪表板上包含前 3 种销量最高的产品,但我不知道该怎么做。请帮我进行编码,数据应该检索表单访问数据库。
这就是我为获得销量最高的 1 项所做的工作。我还需要获得前 2 项和第 3 项。任何帮助
con = New OleDbConnection(cs)
con.Open()
Dim ct As String = "SELECT TOP 3 ProductName, Sum(Quantity) as Quantity FROM ProductSoldDB group by ProductName order by SUM(Quantity)"
cmd = New OleDbCommand(ct, con)
rdr = cmd.ExecuteReader()
While rdr.Read
lblProduct1Name.Text = rdr("ProductName")
lblQTYProduct1.Text = rdr("Quantity")
End While
If Not rdr Is Nothing Then
rdr.Close()
End If
con.Close()
解决方案
假设您有 3 个面板来显示排名前 3 的销售产品,并且每个面板都有这样的级别:面板 1 - 标签产品名称 - lblProduct1Name ,标签数量名称 -lblQTYProduct1
面板 2 - 标签产品名称 - lblProduct2Name ,标签数量名称 -lblQTYProduct2
面板 3 - 标签产品名称 - lblProduct3Name ,标签数量名称 -lblQTYProduct3
我们将在每次迭代中获得 lblProductName 和 lblQTYProduct 并为它们设置值。
最终代码如下:
con = New OleDbConnection(cs)
con.Open()
Dim ct As String = "SELECT TOP 3 ProductName, Sum(Quantity) as Quantity FROM ProductSoldDB group by ProductName order by SUM(Quantity) Desc"
cmd = New OleDbCommand(ct, con)
rdr = cmd.ExecuteReader()
Dim index As Integer = 1
While rdr.Read
Dim ctrlProduct As Control = Me.Controls.Find("lblProduct" + index.ToString() + "Name", True).FirstOrDefault()
ctrlProduct.Text = rdr("ProductName")
Dim ctrlQuantity As Control = Me.Controls.Find("lblQTYProduct" + index.ToString(), True).FirstOrDefault()
ctrlQuantity.Text = rdr("Quantity").ToString()
index = index + 1
End While
If Not rdr Is Nothing Then
rdr.Close()
End If
con.Close()
推荐阅读
- php - 为什么我不能写“
我正在尝试
PHP
,VSCode
但是当我输入<?PHP echo ("Something") ?>
我猜,打开和关闭 PHP 标记的颜色为红色,通常表示其中
**error**
- arrays - 如何在颤振中解析复杂的json
- angular - 单击并拖动触发方法(角度)
- python - 同时使用 openpyxl 库加载 .xlsx 文件时出错
- php - php中的警告:无法打开流:没有这样的文件/目录
- scala - 当隐式 def tupleOrderingDesc:Ordering[Tuple2[String,Int]] 将被触发
- python-3.x - 通过 google api 客户端从 Google Tag Manager 获取变量信息(要设置的字段)
- java - 如何在 Java 中加载、访问和使用 C++ DLL 函数?
- c# - 将 IConfiguration 转换为 ConfigurationManager
- reactjs - 以制表符作为分隔符的导出 CSV 按钮