我遇到了一个问题,我想用列表中的项目填充组合框。该列表从我的数据库中获取项目。
问题是组合框仅填充数据库中的最后一条记录。
示例:如果我的数据库中有 5 条记录有 5 个不同的 ID,如下所示:1、2、3、4、5。然后组合框只向我显示 ID 5,五次。像这样:5-5-5-5-5。我想要的是:1-2-3-4-5。
这可能是一个小错误,我尝试研究和测试不同的东西,但没有任何效果。将不胜感激任何帮助。提前致谢。
下面的代码来自我认为问题所在的数据库类,它用数据库中的项目填充了我的列表:
public static List<Product> getProducts()
{
List<Product> listProducts= new List<Product>();
try
{
connection = new SqlConnection("Data Source=localhost\\SQLEXPRESS;Initial Catalog=DB_Products;Integrated Security=SSPI;");
connection.Open();
SqlCommand selectProductNumber = new SqlCommand(@"Select ProductNumber FROM Product", connection);
SqlDataReader dr = selectProductNumber.ExecuteReader();
while (dr.Read())
{
Product product = new Product();
product.ProductNumber = dr["ProductNumber"].ToString();
listProducts.Add(product);
}
dr.Close();
dr.Dispose();
return listProducts;
}
finally
{
if (connection != null)
{
connection.Close();
}
}
}
这是填充组合框的方法以及我使用这些方法的位置:
private ProductList productList = new ProductList();
private void FillComboBox()
{
comboBox.Items.Clear();
for (int i = 0; i < productList.Count; i++)
{
comboBox.Items.Add(productList[i].GetProductNumber(" \t "));
}
}
private void Form1_Load(object sender, EventArgs e)
{
productList.Fill();
FillComboBox();
}
从我的 ProductList 类:
public void Fill()
{
productList = DB_class.getProducts();
}
public Product this[int index]
{
get
{
return productList[index];
}
}
public void Add(Product product)
{
productList.Add(product);
}
public int Count
{
get { return productList.Count; }
}
从我的产品类:
public string GetProductNumber(string showProductNumber)
{
return ProductNumber;
}