如何获取并分配整列数据库到单个按钮的文本?
我想获取表中整个列的所有值,并将它们分配给各个按钮文本。如何获取并分配整列数据库到单个按钮的文本?
这是我迄今取得的成就。
string query = "SELECT type FROM service";
MySqlCommand command = new MySqlCommand(query, con);
var reader = command.ExecuteReader();
if (reader.Read())
{
button5.Text = reader[0].ToString();
button6.Text = reader[1].ToString();
button7.Text = reader[2].ToString();
button8.Text = reader[3].ToString();
button9.Text = reader[4].ToString();
button10.Text = reader[5].ToString();
button11.Text = reader[6].ToString();
button14.Text = reader[7].ToString();
button15.Text = reader[8].ToString();
button16.Text = reader[9].ToString();
button17.Text = reader[10].ToString();
button18.Text = reader[11].ToString();
} con.Close();
我只能给button5指定一个值,我如何得到所有值?
将此if(reader.Read())
更改为while(reader.Read())
。
如果检查行是否存在,同时遍历阅读器。
您可以创建按钮的排列:
Button[] btnArray = {Button5, Button6,... and so on}
然后使用while条件:
int i=0;
while(reader.Read())
{
String name = reader.GetString(0);
btnArray[i].Text = name;
++i;
if(i == btnArray.Length) break; //Jus in case there are more values in reader than in array.
}
而且不要忘记关闭的读者。关闭()
不,它需要最后一列并将其分配给第一个按钮。不起作用... –
不工作@Rahautos –
只是不使用reader.Close(),它不会以这种方式工作... –
如果我理解正确,那么你可以创建一个字符串变量并将值附加到它:var x =“”; X + =读者[0]的ToString(); X + =读者[1]的ToString(); ...等 – Hobroker
nope不能工作... –