c# - 统计销售数量并在列表视图中显示 C#
问题描述
我有以下代码需要列出(在 ListView 中)每个产品、产品类型和购买该产品的客户数量。我已经尝试过了,但它不起作用。
我不确定是否需要创建另一个类,然后定义列表以及需要包含在 ListViewItems 中的内容。我是 C# 编码的新手,但能够使用类似的方法显示数据,但我以前不需要进行计算。任何帮助,将不胜感激。如果需要,我可以提供文件(项目和 SQL)。
namespace Acme
{
public partial class frmMainForm : Form
{
public frmMainForm()
{
InitializeComponent();
}
//Not sure if the following is correct//
private void DisplaySales()
{
string selectQuery;
selectQuery = "SELECT Products.ProductName, ProductTypes.ProductType, COUNT(Sales.ProductID) as SALES,";
selectQuery = selectQuery + "FROM Products INNER JOIN ProductTypes ON Products.ProductTypeID,";
selectQuery = selectQuery + "ProductTypes.ProductTypeID INNER JOIN, ";
selectQuery = selectQuery + "Sales ON Sales.ProductID = Products.ProductID GROUP BY Products.ProductName ";
selectQuery = selectQuery + "ProductTypes.ProductType, Sales.ProductID";
selectQuery = selectQuery + " " + GlobalVariables.salesSearchCriteria;
SqlConnection conn = ConnectionManager.DatabaseConnection();
SqlDataReader rdr = null;
try
{
conn.Open();
SqlCommand cmd = new SqlCommand(selectQuery, conn);
rdr = cmd.ExecuteReader();
while (rdr.Read())
{
//Not sure if I need to create a seperate Class and then define the list (Class - ProductSales??)
//Also need to include ListviewItems ??????
}
if (rdr != null)
rdr.Close();
conn.Close();
}
catch (Exception ex)
{
MessageBox.Show("Unsuccessful" + ex);
}
}
解决方案
创建产品类,并获取如下示例数据
SqlDataReader reader = command.ExecuteReader();
List<Product> lstProduct = new List<Product>();
if (reader.HasRows)
{
while (reader.Read())
{
Product product = new Product();
product.ProductName = reader.GetString(0);
...
lstProduct.add(product);
}
}
// Do what you want with lstProduct