我一直在 youtube 上关注本教程并陷入其中。
在这里,我必须根据产品类型在 TabControl 标签页上动态显示数据库中的产品,但我似乎无法根据标签页产品类型过滤产品,并且所有产品都显示在每种产品类型上,如下所示。
请参阅下面的屏幕截图以获取数据库和应用程序,我们将不胜感激有关此问题的任何帮助。
将产品类型显示为标签页的代码
private void CreateTabPages()
{
con.Open();
SqlDataAdapter sda = new SqlDataAdapter("SELECT DISTINCT ProductType, Description FROM TblProductType", con);
DataTable dt = new DataTable();
sda.Fill(dt);
foreach (DataRow dr in dt.Rows)
{
tabControl1.TabPages.Add(dr["ProductType"].ToString(),dr["Description"].ToString());
}
//var tabID = (from DataRow dr in dt.Rows
// select (Int32)dr["TabID"]).Distinct();
con.Close();
更新代码以显示产品
private void AddProductsToTabbedPanel()
{
foreach (TabPage tp in tabControl1.TabPages)
{
con.Open();
SqlDataAdapter sdaProductType = new SqlDataAdapter("SELECT ProductType FROM TblProductType WHERE Description =" + tp.Text, con);
DataTable dtForProductType = new DataTable();
sdaProductType.Fill(dtForProductType);
string currentProductType = (string)dtForProductType.Rows[0]["ProductType"];
SqlDataAdapter sda = new SqlDataAdapter("SELECT DISTINCT Description FROM TblProduct WHERE ProductType =" + currentProductType, con);
DataTable dt = new DataTable();
sda.Fill(dt);
FlowLayoutPanel flp = new FlowLayoutPanel();
flp.Dock = DockStyle.Fill;
foreach (DataRow dr in dt.Rows)
{
Button b = new Button();
b.Size = new Size(100, 100);
b.Text = dr["Description"].ToString();
flp.Controls.Add(b);
}
tp.Controls.Add(flp);
con.Close();
}
}