我有一个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.*/
}
答案 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();
}