【发布时间】:2020-11-04 11:03:59
【问题描述】:
我今天有一个艰难的。我正在使用 C# 在 Windows 窗体中创建一个应用程序,我应该制作一个应用程序来显示每个订单及其状态、日期和全价。这一切都得到了照顾。第二种形式是订单详细信息,我应该在组合框中包含 OrderID、ProductName、UnitPrice 和 Quantity 列。我已经设法创建了所有这些,使用 Dapper 通过 SQL 设置它们的值,但是我很难让组合框显示 ProductID 的值。
为了简化:我希望组合框显示产品名称,其 ProductID 与订单详细信息中给出的名称匹配。如果我更改组合框中的产品,我需要它获取组合框 ProductID 值并在订单详细信息中更改它。如果订单是新订单,没有详细信息,则默认设置 ProductID 为 1。
组合框位于使用 Dapper 创建的订单详细信息列表的 DataGridView 内部。其他一切都像魅力一样,我只是在组合框上遇到了很多麻烦。
这是一些代码,如果需要我会添加更多:
这是组合框本身的代码
private void fillcombobox()
{
DataGridViewComboBoxColumn combo = new DataGridViewComboBoxColumn();
combo.HeaderText = "ProductName";
DataAccess dt = new DataAccess();
products = dt.GetAllProducts();
combo.DataSource = products;
combo.DisplayMember = "ProductName";
combo.ValueMember = "ProductID";
orderdetailsGridView.Columns.Add(combo);
combo.DisplayIndex = 0;
}
这里是 OrderDetails 类
public class OrderDetails
{
public int OrderID { get; set; }
public int ProductID { get; set; }
public decimal UnitPrice { get; set; }
public int Quantity { get; set; }
}
这是产品类
public class Product
{
public int ProductID { get; set; }
public string ProductName { get; set; }
public decimal UnitPrice { get; set; }
public int UnitsInStock { get; set; }
}
这里是 GetAllProducts 的查询
public List<Product> GetAllProducts()
{
using (IDbConnection connection = new System.Data.SqlClient.SqlConnection(Helper.CnnVal("ShopDB")))
{
var output = connection.Query<Product>("select * from Products").ToList();
return output;
}
}
【问题讨论】:
-
您能否显示您对 dt.GetAllProducts() 的查询。作为具有特定订单 ID 的子表单,我假设其中有一个 where 子句仅用于查看一个订单。请编辑您现有的帖子并添加查询。
-
@DRapp 来了!谢谢你看我的问题! :D