[英]C# how to return only one value from the list into a ComBox? Instead of all
我的目標是將CustomerName
的單個值返回到 ComboBox。
這就是我從數據庫中獲取數據的方式:
public class DataAccess
{
public List<ComplaintModel> FindOrderNumber(string orderNumber)
{
using(SqlConnection conn = new SqlConnection(ConnectionString.MJMconnString))
{
var output = conn.Query<ComplaintModel>($@"
SELECT
TRIM(p.description) as Product,
c.name AS CustomerName,
FROM SalesOrder so JOIN SalesOrderLine sol ON
so.id = sol.salesOrderID JOIN Customer c ON
so.customerID = c.id JOIN Product p ON
sol.productID = p.id WHERE so.number = '{orderNumber}'").ToList();
return output;
}
}
}
這將是 output(使用 Excel 向您展示一個粗略的想法):
所以組合框看起來像這樣:
快速結論
特定OrderNumber
的客戶名稱將始終相同,但產品會有所不同。
形式
在我的表單中,我加載了Product
和Customer
組合框。 (注意:我知道您可能正在考慮為Customer
使用 TextBox 而不是 ComboBox ,它只是需要)。
List<ComplaintModel> OrderNumber = new List<ComplaintModel>();
public void searchButton_Click(object sender, EventArgs e)
{
clearBindings();
DataAccess db = new DataAccess();
// Search Order Number that is specified in a text box
OrderNumber = db.FindOrderNumber(orderNumber.Text);
// List all products
product.DataSource = OrderNumber;
product.DisplayMember = "Product";
// Show customer name - but as [0] instead of all.
customer_name.DataSource = OrderNumber;
customer_name.DisplayMember = "CustomerName";
}
所需 output 的 combobox
這是我的 model
public class ComplaintModel
{
public string CustomerName { get; set; }
public string Product { get; set; }
}
題
如何將CustomerName
的單個值檢索到 ComboBox 中?
您需要創建:客戶 class,訂單 class。
然后您需要為兩個組合框創建兩個列表: List<Customer> customers
for customer combobox List<Order> orders
for orders combobox 以顯示所選客戶的訂單(在 combobox 更改事件上)。
public class Customer
{
public string Id {get;set;}
public string Name {get;set;}
public List<Order> Orders {get;set;}
}
public class Order
{
public string Id {get;set;}
public string Name {get;set;}
public int CustomerId {get;set;}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.