如何根据数据库结果动态添加面板

时间:2018-08-12 17:14:39

标签: c# sql

如何根据从数据库中获得的结果动态地添加面板和一些控件。 enter image description here

我想在面板中显示此datagridview的结果,但应根据结果将面板动态地并排添加。就像我在datagridview中有3个结果一样,因此应该动态添加3个面板。请指教。

1 个答案:

答案 0 :(得分:1)

您可以使用SqlConnection执行SELECT命令并获取所需的行,并为每行添加一个自定义面板,其中包含该行的信息。
我还建议您使用FlowLayoutPanel,以便它为您处理间距/位置。

在您的Form_Load中:

var conn = new SqlConnection("Your connection informations here");
conn.Open();

var command = new SqlCommand("Select * from YourTable", conn);

using (SqlDataReader reader = command.ExecuteReader())
{
    while (reader.Read())
    {
        // Pass the useful informations to your panel
        var pnl = new MyCustomPanel(reader["Id"].ToString(), reader["Property_Type1"].ToString());
        flowLayoutPanel1.Controls.Add(pnl);
    }
}

conn.Close();

您的自定义控件的构造器应该像这样,在其中您为每行设置面板控件的值:

public MyCustomPanel(string id, string propertyType1)
{
    txtId.Text = id;
    txtPropertyType1.Text = propertyType1;
}