我写的代码是正确的,但我不知道问题出在哪里。
代码:
private void AddCategory()
{
string qry = "select * from category";
SqlCommand cmd = new SqlCommand(qry, MainClass.con);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);
categoryPanel.Controls.Clear();
if (dt.Rows.Count > 0)
{
foreach (DataRow row in dt.Rows)
{
//Button b = new Button();
Guna.UI.WinForms.GunaButton b = new Guna.UI.WinForms.GunaButton();
b.BackColor = Color.FromArgb(50, 55, 89);
b.Size = new Size(134, 45);
//b.ButtonMode = Guna.UI.WinForms.Enums.ButtonMode.RadioButton;
// b. = Guna.UI.WinForms.GunaRadioButton;
b.Text = row["catName"].ToString();
categoryPanel.Controls.Add(b);
}
}
else
{
Label lbl = new Label();
lbl.Text = "No Category Found!";
categoryPanel.Controls.Add(lbl);
}
}
数据库:
结果:
我希望结果是所有类别作为按钮
根据我的测试,我重现了您的问题,我只能从数据库表生成一个按钮。
我发现你没有给出Location属性,所以你遇到了问题。
请使用以下代码进行修改。
int i = 0;
if (dt.Rows.Count > 0)
{
foreach (DataRow row in dt.Rows)
{
Button b = new Button();
//Guna.UI.WinForms.GunaButton b = new Guna.UI.WinForms.GunaButton();
b.BackColor = Color.FromArgb(50, 55, 89);
b.Size = new Size(134, 45);
b.Location = new Point(100, 100 + 80 * i);
//b.ButtonMode = Guna.UI.WinForms.Enums.ButtonMode.RadioButton;
// b. = Guna.UI.WinForms.GunaRadioButton;
b.Text = row["Name"].ToString();
panel1.Controls.Add(b);
i++;
}
}
else
{
Label lbl = new Label();
lbl.Text = "No Category Found!";
panel1.Controls.Add(lbl);
}
您可以看到以下结果: