从db获取值并分配按钮文本

时间:2015-02-20 13:56:48

标签: c#

我有一个deptarment表,有5行。我有一个select命令,它从department表中单独获取dept_name列。我想逐个将这些值(row [“Dept_Name”]。tostring())分配给每个按钮。 例如:如果我的输出是 DEPT1 DEPT2 dept3 dept4 dept5

我想将按钮的文本值(设计中已有5个按钮)分配为button1.text =“dept1”; button2.text =“dept2”; button3.text =“dept3”;等等。

我如何实现它。 我使用了以下代码。

           MySqlConnection con = new MySqlConnection(myconnectionstring);
        string getdept = "SELECT DEPT_NAME FROM DEPTARTMENT";
        con.Open();
        MySqlCommand cmd = new MySqlCommand(getdept,con);
        MySqlDataAdapter adapter = new MySqlDataAdapter(cmd);
        DataTable dt = new DataTable();
        adapter.Fill(dt);
        foreach (DataRow Row in dt.Rows)
        {

            Button1.Text = Row["DEPT_NAME"].ToString();
       /* i am stuck at this part on how to each row to a separte button text.*/

        }

3 个答案:

答案 0 :(得分:2)

无需迭代:

Button1.Text = dt.Rows[0]["DEPT_NAME"].ToString();
Button2.Text = dt.Rows[1]["DEPT_NAME"].ToString();
Button3.Text = dt.Rows[2]["DEPT_NAME"].ToString();
Button4.Text = dt.Rows[3]["DEPT_NAME"].ToString();
Button5.Text = dt.Rows[4]["DEPT_NAME"].ToString();

答案 1 :(得分:1)

您可以使用for - 循环和Controls.Find

for(int i = 0; i < dt.Rows.Count; i++)
{
    string buttonName = "Button" + i.ToString();
    Control[] buttons = this.Controls.Find(buttonName, false);
    if(buttons.Length == 1 && buttons[0] is Button)
    {
        Button btn = (Button) buttons[0];
        btn.Text = dt.Rows[i].Field<string>("DEPT_NAME");
    }
    else throw new Exception("Something went wrong!");
}

答案 2 :(得分:0)

请参阅this post,您可以

var i = 0;
foreach (DataRow Row in dt.Rows)
{
    i++;
    var button = Page.GetControl("Button" + i) as Button;
    button.Text = Row["DEPT_NAME"].ToString();
}