如何获取并分配整列数据库到单个按钮的文本?

问题描述:

我想获取表中整个列的所有值,并将它们分配给各个按钮文本。如何获取并分配整列数据库到单个按钮的文本?

这是我迄今取得的成就。

  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指定一个值,我如何得到所有值?

+0

如果我理解正确,那么你可以创建一个字符串变量并将值附加到它:var x =“”; X + =读者[0]的ToString(); X + =读者[1]的ToString(); ...等 – Hobroker

+0

nope不能工作... –

将此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. 
} 

而且不要忘记关闭的读者。关闭()

+0

不,它需要最后一列并将其分配给第一个按钮。不起作用... –

+0

不工作@Rahautos –

+0

只是不使用reader.Close(),它不会以这种方式工作... –